Agile aficionados seem to have it out for the old faithful waterfall process. For years now, they have claimed that a requirements document can’t ever be complete, that you can’t possibly know everything upfront, and that waterfall’s guarantees of on-time delivery are false. Where do they get these crazy ideas?
After all, Winston W. Royce’s “Managing the Development of Large Software Systems” states that software starts out with two essential steps; analysis and then coding. Doing the analysis is the easy part. Get people together in a room, write down all the requirements, refine them and then have them approved with a formal signoff. Not bad! As long as you can guarantee that you know exactly what your customers want in the future, without ever seeing it, you’ll never go wrong. No problem, right?
While you’re at it, be sure to put a stop to all innovation in your industry on the planet, too. With innovation come new ideas, and with new ideas comes change. Your competitors are just going to have to stop developing their systems so you can release your three-year project. After you meet your deadline with all of the agreed upon requirements, you can all collectively consider what the next new thing should be.
As far as upfront planning goes, those touchy-feely agilists claim it’s impossible to know everything at the beginning of a project. What they don’t realize is that if you have enough time, you can figure out anything and become an expert at it. Plus, without perfect plans, how would you ever create the project schedule and determine the overall cost? Sure, if people change their minds somewhere during the project, it’s going more cost them a fortune. But, hey, some of us don’t work for free.
Finally, those Lego-crazed, note card-wielding agile lovers say that we can’t have it all. That we’ll have to choose which of these key elements is going to be flexible: date, features, quality, or cost. That’s just nuts. Of course we can guarantee we will deliver the agreed-upon system on time, on budget, and with exceptional quality. You just have to believe.
Now, you might be saying to yourself, “But Mitch, I’m not sure I can predict the future, or know what everything will cost up front, or design the perfect system in a set timebox.
Software is creative and it takes time to produce the art that is the work of the developer.” Why, that’s just balderdash! You’re starting to sound like one of those crazy agile folks.