Gen AI Engineering Days 2024
Ontdek meer
Over deze vacature
The results are in: developers are strategically lazy
The results are in: developers are strategically lazy
There is mounting evidence to suggest that developers get lazy... a lot. But is it fair to accuse developers of laziness when they're only trying to streamline processes?
Apparently laziness is inherent in the programming world. There isn’t a lot of manual labour going on when developers are ‘in the zone’. But it’s worth asking whether the habits of programmers are actually lazy, or in fact an array of efficient and time-saving measures aimed at improving their work and preserving their motivation.
The key here is that the ‘laziness’ can actually be strategic, to save developers from doing things twice in a row, or writing the same kind of code.
An older article by summarises precisely what we mean when we declare programmers to be strategically lazy. The automatic reaction in needing to complete a task repeatedly is to find a way to automate the process.
Whenever they’re writing code doing the same thing, they’re on the hunt for a library. In short, programmers’ lives are to eliminating repetivity.
There’s also the DRY () principle to consider. In software engineering, this is aimed at reducing the repetition of information by creating an abstraction that can be used another time. However, with the input of several programmers, a project can contain piles and piles of abstractions, resulting in uncertainty about what the code is actually doing. There’s a great piece by Jean-Baptiste Quéru over on Google+ that elegantly describes the complexities of the layering that occurs .
SEE ALSO:You are what you eat (and code)
Repetition is therefore the natural enemy of any developer. The programming profession is often viewed in stark contrast to “normal” jobs that include repetitive and monotonous tasks which define the character of the work. Thinking about professions in this way could help us figure out why the ‘lazy’ tag has been proverbially attached to the programming line of work.
There are a slew of supporters for the good = lazy equation in programming. Philipp Lenssen suggests in his article “Why Good Programmers are Lazy and Dumb” that only lazy programmers will want to write the kind of tools that might replace them in the end. He also touches on the repetition theme, noting that:
Lazy, because only a lazy programmer will avoid writing monotonous, repetitive code – thus avoiding redundancy, the enemy of software maintenance and flexible refactoring. Mostly, the tools and processes that come out of this endeavor fired by will speed up the production.
Edgar Hassler also to the debate, proclaiming that developers can be champions of recycling and re-use of code. The savvy developer will recognise what components should be recycled and save time, but warns us that poor choices may lead to components stuck into frameworks that are never used.
The bottom line for our commentators is that without lazy programming, innovation and growth within the discipline just wouldn’t exist. Not only is the idea of laziness in programming encouraged, but the consequence of hard work could actually result in impacts on programmer productivity, as Teller claims. Decision fatigue is another common symptom of too much hard work when it comes to programming, so let’s take a moment to feel for the guys working 13 hours a day at the next big start-up.
Well, it seems that laziness is all good and can lead to great things. Except of course if you follow the …
Thanks to commenter Marty G, we have been reminded of the three great virtues of a programmer, as coined by Larry Wall. Numero uno is laziness:
The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful and document what you wrote so you don’t have to answer so many questions about it.
More articles on this topic
Creating value, AI operational design, and enhancing industry standards Charting the Way Forward for AI-Native Software Organizations
Enhance innovation by giving developers the freedom to experiment Why Developer-Centric AI Will Transform Business
Women, Leadership, and Innovation: A Q&A with Lauren Nagel "High-scaling cloud architecture has empowered founders and creators — especially women — to keep moving forward with their ideas."
UI/UX Designers and Software Developers: Future Proof Your Career Unleash Your Potential: Lucrative Niches for Web Design and Development in 2025 and Beyond
More articles on this topic
Creating value, AI operational design, and enhancing industry standards Charting the Way Forward for AI-Native Software Organizations
Enhance innovation by giving developers the freedom to experiment Why Developer-Centric AI Will Transform Business
Women, Leadership, and Innovation: A Q&A with Lauren Nagel "High-scaling cloud architecture has empowered founders and creators — especially women — to keep moving forward with their ideas."
UI/UX Designers and Software Developers: Future Proof Your Career Unleash Your Potential: Lucrative Niches for Web Design and Development in 2025 and Beyond
Gen AI Engineering Days 2024
Live on 29 & 30. October 2024 13:00 – 16:30 CEST