In Defense of Agile

I've been working under various incarnations of "Agile" for a very long time and have long ago concluded that it's a Cargo Cult. I'm not going to entertain No True Scotsman defenses; the way it's practiced "in the wild" is the best that it's advocates could do. They've had a decade and they need to reflect on the real-world outcomes without dismissing every failure as somehow invalid.

I only need to look at the 12 Principles of Agile to see everything starts going wrong. In practice, delivering "working" software early means throwing together worthless, hasty prototypes. Welcoming changing requirements rarely means welcoming changing software - just bolt random shit onto the hastily thrown together prototypes from before, like something out of The Pentagon Wars. Frequent delivery typically means breaking down cohesive tasks into smaller, heavily micromanaged tasks, none of which result in "working" software. Business people and developers working together typically means business people keeping their side of things a complete secret while pretending to know something about engineering by micromanaging the day to day activities of engineers. Building teams around "motivated" people typically means organizations no concerning themselves with engineer's job satisfaction and instead blame the victims for having to endure the soul-crushing Sisyphean business culture. I could go on and on.

The bottom line is that Agile is ultimately meaningless. It's just another set of business processes that ultimately fail to address the real problems with software development in the corporate world. I'd liken it to the idea of having the Catholic Church come up with a set of guidelines for artists during the Renaissance. The real problem with developing software are the customers and the stakeholders. Programmers, like artists of the Renaissance, have to take it upon themselves to go after a different subject matter.

/r/programming Thread Link - nic.ferrier.me.uk