Has Agile failed?
One of our senior developers posted something online asking this question. I think it’s telling it got his attention.
Agile has definitely failed…to make the world’s software vastly better by simply agreeing to work solely in two week increments. In fairness, it probably shipped a bunch of code faster than it would have been otherwise.
But does anyone want that code? Maaaaaybe? Agile doesn’t really help you there.
What I find most uninspiring about Agile is that it boils down to a defensive posture. “You business types can’t bring me clear requirements that don’t change. Instead, I’ll do whatever you want — for the next two weeks only.” (Shields up!) That doesn’t automatically add up to great software.
So, What Do We Do?
To paraphrase Bill Scott (engineering leader at PayPal and Netflix), Agile has no brain. It’s just a machine that cranks out code; something else needs to point it in the right direction.
Bill illustrated how his teams use a two-track approach in which a small design team uses lightweight methods to stay slightly ahead of a front-end dev team. Based on size of your team and the nature of your code base, you can split this up differently.
Silicon Valley veteran Marty Cagan uses the phrase “value risk” to address the reality that it isn’t certain customers will beat a path to your door. This is the type of risk mitigated by the Lean UX track running ahead of development.
Hey Man, I Just Work Here
For programmers that aren’t “managers” and can’t reassign people — or if they just want to see their work have more impact on the world — I like the perspective that coding is a craft; a master-able blend of art and science. Don’t think that anything outside of applied math isn’t your problem. “Shields up!” is only a leadership move if you’re in Starfleet.