My major objections to Agile come from what I view as the
unmitigated stupidity of its three most important tenets:
A maniacal emphasis on ―just getting something
working‖ as opposed to thinking something through,
designing how it should work, and getting something
Requiring detailed estimates of how long it‘s going to
take to implement some piece of functionality.
An insane reliance on – and limitation to
implementing features for – user stories (AKA
scenarios), which yield fragmented feature sets as
opposed to designing for well -reasoned
Agile, scrums and user stories are spreading like a tumor across sw building organizations. Imposed (not proposed) as the new process to solve software project management and execution, managers like it because it is a way of micro-management, the team is focused on one scrum after the other and project effort is estimated continuously. At least that is the theory. Reality is quite different, as Peter smartly points out:
On the Agile projects I‘ve worked on, the planning process is just a big ―everyone‘s in on it but the boss‖ joke:
Boss man: You, copiously large engineering unit over there, how long will it take you to create the huzzy-bub for the what‘s-a-ma-whosits?
Me: Well, boss man, I thought long and hard about this, and after consulting with my team members and the folks in test, I‘m confident I can have it done mid-way through Sprint 832.
Boss man: Well done! That‘s what I like, a compliant and focused, if slightly overweight, engineering unit. Do you have milestones for that?
Me: Oh, yes, boss man. I do. I definitely do! It‘ll take 2 days to modify the frobnitz, 3 days to code-up the blortz-fart, 2 days to test the blortz-fart and frobnitz together, 2 days to modify the frazzle-blow, oh… no need to bore you with the details, great one… I‘ll just put it all in our Online Agile Super Planner, oh mighty master.
Boss man: Well done! I like specific milestones. Why can‘t the rest of you give me nice, clear, specific milestones like the fat guy over there with the ponytail. Whatever his name is.
Of course, I‘d written all the code already, during the previous sprint. I just hadn‘t checked it in. So, during Spring 832, I could update the Online Agile Super Planner to indicate that I hit all my milestones, while I worked on whatever it was I wanted to commit for the next sprint.
Quite interesting and, if I was a manager, I would be quite afraid. Software development is, most of the time, not lineal, nor trivial. Serious software managers have read the mythical man-month or peopleware and know that what matters most is to have a solid and motivated team. Lately the Agile manifesto has landed in the company I work. Sadly, it has been imposed to a very small team (less than 4) with the aim of fixing most of the things that went wrong before: accurate effort estimates, on time delivery, requirement elicitation thru user-stories, mitigate bugs re-opening, … Instead of analyzing what caused those problmes, they applied prescribed agile medicine. The root casuses: Insuficient skills to do the job and lack of commitment (motivation), I doubt Agile will fix.
Bottom line > “A fool with a tool, is still a fool”. If you (manager) follow models blindly, you’re the fool.