Since I’ve been spending a lot of time talking with people about Agile, I’ve felt the need to concoct new, vivid metaphors to explain Agile. Of course, you can often best explain something by contrasting it with what it’s not, and in this case, it got me thinking about the frustrations of non-Agile development:
- Very long project schedules. The more you throw into the release, the longer it gets.
- Unrealistic expectations of predictability and control. The more you develop, and the longer the schedule, the more your initial plan will contain inaccurate assumptions and expectations.
- Constant, top-down demands for compliance. Make the schedule. Meet the goals. Don’t tell us how unrealistic they are.
- Unhappy workers. The rank and file struggle to keep their superiors happy. Cutting corners to meet production schedules and goals is the natural result.
- Unhappy customers. The recipients of product development discover, to their chagrin, that a product built to meet the producer’s production targets don’t necessarily meet the consumers’ needs.
These complaints have a familiar ring. In miniature, technology companies have been repeating the mistakes of Soviet central planners, in creating the infamous "Five Year Plans" for economic development and production. And no, I’m not kidding in making this comparison.
Of course, there are huge differences between a software company and the Soviet Union. Middle managers aren’t quite the same as the CPSU officials who looked over the shoulders of every factory manager.
Still, some degree of similarity is there, however unintentional it obviously is. Maybe technology companies don’t create 3 million left shoes, with no corresponding right shoes, but they do create products that don’t quite address their target business problems. Certainly, no digruntled developer gets sent to Siberia for saying that the schedule and goals are unrealistic, but they’re often right in being cynical about meeting targets that no one believes are possible. (But everyone, of course, pays lip service to making them.) And, of course, rather than re-examining why the previous plan failed, many organizations focus instead on creating the next plan.
Agile isn’t a perfect alternative to waterfall. Everything in this universe has its advantages and disadvantages, including capitalism and Agile. And, as Agile advocates are right to say, Agile techniques aren’t necessarily a good fit for every project or organization. Still, it’s worth taking a longer look into why particular approaches to organizing and governing work keep falling flat on their faces.