Agile, Iterative Development, and Control Freaks

There is a persistent myth — particularly prevalent amongst control freaks— that if you get the requirements detailed enough, you can assembly-line your way through development.
Dig deep enough, and you’ll find that to them, Agile is the same as Iterative Development . Oh, they absolutely get the bit about “user feedback”, “short sprints”, “incremental releases”, and so on. However, in their minds, all of these steps apply only to the development process, i.e., you do all of these things after you’ve nailed down all the requirements, as shown below

From their perspective, you just iterate through the development cycle in a succession of sprints, in what is basically a linear progression. In each sprint, for example you cycle through Design → Development → Release → Review for 10% of the requirements, and at the end of 10 sprints, voila!you’re done! Oh, if you want to get a little pedantic, there might be an extra sprint or two at the end for “Change Management”, but the underlying concept is clear.
To belabor the obvious, that’s not how Agile works. The Requirements are part of the feedback loop, with their validation being part and parcel of the feedback loop. No matter how thorough your requirements gathering, you’re going to miss out on something, ranging from missed edge cases, to users who change their minds. Even more importantly, wouldn’t you like to validate your requirements repeatedly through the process, instead of running the risk of a single Pass/Fail at the end of the whole thing?
But, to a certain crowd, there are no such things as “failed hypotheses” or “wrong roads taken”, with these being symptoms of inefficiency, and not uncertainty. If you dig a bit deeper, you’ll find that this mindset stems from Predictability, Punishment, and Politics. Predictability in the sense of being able to nail down timeframes precisely (We will be *done* in 22 weeks), Punishment as what happens when these timeframes aren’t met, and the Politics of using the previous two to advance your career.
There is a strong whiff of assembly-lines here, assembly-lines from back in the Henry Ford days, where individuals had simple tasks, predictable routines, and little agency. Never mind that this model has been left in the dust for many many years (with the Auto Industry itself leading the way!). To the control freaks of the world, this is an ideal to aspire to .
You find this increasingly in StartupWorld™, thanks to the occasional enterprise refugee who has sought shelter therein, and brought their methods over with them. Mind you, you might also find it when you run into #CowboyDevelopers who have ascended to a position of power. In this case, it’s less about Predictability, and more about a Dunning-Kruger inspired unwillingness to believe that there might be any uncertainty involved in product development.
“Don’t worry about the big picture — I’ve got that. You just focus on your part”
 — 
#CowboyDeveloper in Charge
Either way, if you run into this, be afraid, be very very afraid. If you have any agency, either affect change, or find a new job — this one is probably not going to end well…

Comments

Popular posts from this blog

Erlang, Binaries, and Garbage Collection (Sigh)

Cannonball Tree!

Visualizing Prime Numbers