Comment A couple of months back, Dutch computer scientist Erik Meijer gave an outspoken and distinctly anti-Agile talk at the Reaktor Dev Day in Finland.
“Agile is a cancer that we have to eliminate from the industry," said Meijer; harsh words for a methodology that started in the nineties as a lightweight alternative to bureaucratic and inflexible approaches to software development.
The Agile Manifesto is a statement from a number of development gurus espousing four principles:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
What is wrong with Agile? Meijer’s thesis is that “we talk too much about code, we don’t write enough code.”
Stand-up meetings in Scrum (a common Agile approach) are an annoying interruption at best, or at worst one of the mechanisms of “subtle control”, where managers drive a team while giving the illusion of shared leadership. “We should end Scrum and Agile,” he says. “We are developers. We write code.”
Even test driven development, where developers write tests first to subsequently verify the behaviour of their code, comes in for a beating. “This is so ridiculous. Do you think you can model the real failures that happen in production? No,” says Meijer.
He advocates instead a “move fast and break things” model, where software is deployed and errors fixed as they are discovered.
We need a “move fast and break things” model, says Meijer...
Meijer also managed to include a jab or two at Microsoft, his former employers, for “arrogance and deafness to the environment,” first with the Office Ribbon, and second with Windows 8. “It ignored the feedback loop, and it just produced output.”
However, not all of Meijer’s arguments stand up. The talk has been debunked by technical architect Nic Ferrier, formerly at ThoughtWorks, a software development company which uses Agile techniques.
“It's not Agile that sucks, and dragging programmers down. It's the inability of programmers and business people to understand each other,” he said.
Like Meijer though, Ferrier is no fan of Scrum. “Sprints are utterly ridiculous ways to produce software,” he says, referring to the short-term targets which form part of Scrum methodology.
Here's the thing. If you go to developer conferences and hear the like of Kent Beck or Martin Fowler (both Manifesto signatories) speak, you discover that the essence of Agile is less a particular way of developing software, and more an insistence that team members communicate with and respect each other, and that the “team” includes every stakeholder, including the users.
If Agile has failed, it is because of its success. As soon as smart Agile development teams started delivering good results, companies started coming up with tools to help others do it right. Businesses could buy into the illusion that Agile is a tool you can buy, and vendors were happy to profit.
Meijer quotes “pragmatic programmer” Dave Thomas, another Manifesto signatory:
“The word 'agile' has been subverted to the point where it is effectively meaningless, and what passes for an agile community seems to be largely an arena for consultants and vendors to hawk services and products.”
Is Agile bunk? No, but much of what is sold as Agile has little to do with what you find in the Agile Manifesto.®