Blaming Agile for software stagnation puts the wrong villain in the wrong play
Moxie Marlinspike criticized Agile methodologies for stifling innovation, but the article argues that innovation has evolved since 2004, with mismanagement being the real issue, not Agile itself.
Read original articleMoxie Marlinspike's recent keynote at Black Hat criticized Agile methodologies for stifling innovation in software development over the past two decades. He argued that programmers have lost their understanding of the craft, attributing this stagnation to Agile's constraints. However, the article counters that innovation has not ceased; rather, it has evolved, citing advancements in technology since 2004, such as the rise of smartphones and cloud services. The author emphasizes that Agile itself is not the culprit; mismanagement of any methodology can hinder creativity. Furthermore, the software landscape has improved significantly, with fewer crashes and better user experiences compared to the past. The article suggests that the perception of stagnation may stem from a narrow focus on old problems rather than embracing new tools and approaches. It calls for a fresh perspective on digital technology, highlighting areas like accessibility and data transparency as ripe for innovation. Ultimately, the piece argues that the real challenge lies in adapting to new methodologies and recognizing the potential for revolutionary software advancements, rather than blaming Agile for perceived shortcomings.
- Moxie Marlinspike criticized Agile for hindering software innovation.
- The article argues that innovation has evolved, not stagnated, since 2004.
- Mismanagement, rather than Agile itself, is blamed for creativity issues.
- The software landscape has improved significantly in terms of stability and user experience.
- New opportunities for innovation exist, particularly in areas like accessibility and data transparency.
Related
The software world is destroying itself (2018)
The software development industry faces sustainability challenges like application size growth and performance issues. Emphasizing efficient coding, it urges reevaluation of practices for quality improvement and environmental impact reduction.
Our Users Deserve a Bill of Rights
The author critiques the tech industry's neglect of end users, advocating for a "User Bill of Rights" to ensure accountability and balance between innovation and stability in software development.
How I Program in 2024
Kartik Agaram reflects on his programming journey, advocating for minimalist software design, emphasizing simplicity, context awareness, and the potential benefits of data-oriented design to improve software quality and adaptability.
Scrum is the Symptom, not the Problem
Adam Ard critiques Scrum as a micro-management tool that undermines developer productivity, arguing that corporate processes prioritize control over empowerment, necessitating engineers to seek ownership or freelance opportunities for true change.
Moxie Marlinspike: Agile is killing software innovation
Moxie Marlinspike criticized Agile development for stifling software innovation, claiming it limits developers' understanding of technologies and may increase failure rates in projects by isolating teams.
If anything, we used to have much fewer, but much more competent, developers, and with the explosion of demand, the bar was lowered to include the (many more) less competent people. The only way the less competent people can produce usable software is if things are made easier, and they struggle with understanding the systems more deeply.
All the sins Marlinspike ascribes to Agile - siloing, big picture blindness,
suppression of skills acquisition - are explicitly addressed by devops, which
is entirely compatible with Agile.
That being said, Moxie doesn't seem to clarify what _he_ means by "agile," either: Anybody who is managing an engineering organization will have some kind of
management philosophy that is in some way downstream of, derivative of, in
the zone of, or somehow related to agile [...] [1]
- but given that both his remarks and TFA's recapitulation of those remarks tend to revolve around technical practices, and abstraction in particular, let's try to bring an infamous example to bear to illuminate what exactly Moxie meant by "onboarding people into software by putting them into black box abstraction layers:" Ron Jeffries' sudoku solver attempt (found at [2] and discussed ad nauseam here on HN [3]) using an array of technical practices often espoused by the "software craftsmanship"/eXtreme Programming constellation of Agile: TDD, obsessive refactoring and renaming, and object-orientation to the extreme, hoping that if you soak the problem in sufficiently many layers of abstraction, the solution will just magically fall out. Five articles into Jeffries' saga and he is still refactoring and extracting objects; Peter Norvig's solution [4] by comparison is about 200 lines of Python, without a single class definition, in a shameless and brutalist (metaphorically) procedural style.I would venture to guess that it is the former style of programming, overladen with tangled object graphs and pigeonholing of problem domains into object-oriented solution spaces (which accompanies much of the old-school Agile Manifesto and eXtreme Programming crowds) that Moxie is rallying against. Norvig's solution, on the other hand, is indeed "wizardrous" and exhibits the quality of deeply understanding the problem that Moxie espouses. There are hardly any abstractions to hide behind in those 200 lines.
On a personal basis, I cut my teeth on eXtreme Programming and TDD and Uncle Bob and Fowler's "Refactoring", so I have seen their merits; unfortunately I feel that the craftsmanship movement these folks fostered has been co-opted, cargo culted, and diluted to the point of inefficacy.
[0] https://agilemanifesto.org/
[1] https://www.theregister.com/2024/08/09/marlinspike/
[2] https://ronjeffries.com/xprog/articles/oksudoku/
[3] https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
Related
The software world is destroying itself (2018)
The software development industry faces sustainability challenges like application size growth and performance issues. Emphasizing efficient coding, it urges reevaluation of practices for quality improvement and environmental impact reduction.
Our Users Deserve a Bill of Rights
The author critiques the tech industry's neglect of end users, advocating for a "User Bill of Rights" to ensure accountability and balance between innovation and stability in software development.
How I Program in 2024
Kartik Agaram reflects on his programming journey, advocating for minimalist software design, emphasizing simplicity, context awareness, and the potential benefits of data-oriented design to improve software quality and adaptability.
Scrum is the Symptom, not the Problem
Adam Ard critiques Scrum as a micro-management tool that undermines developer productivity, arguing that corporate processes prioritize control over empowerment, necessitating engineers to seek ownership or freelance opportunities for true change.
Moxie Marlinspike: Agile is killing software innovation
Moxie Marlinspike criticized Agile development for stifling software innovation, claiming it limits developers' understanding of technologies and may increase failure rates in projects by isolating teams.