Ok…I have to do a follow-up to my article “Agile Software Development Project vs. Standard Software Development Project.” It was only posted a week ago and has already generated 20 comments. And many have been from Agile supporters who can’t even comprehend a scenario where a ‘standard’ or waterfall approach results in a successful project.
You would think I had just stated that Pete Maravich wasn’t the best ball handler in basketball (which he was) and that Cheap Trick wasn’t the greatest rock band in the world (which they are – and you can buy their new CD “The Latest” from Amazon here ...sorry for the plug, I know those guys, I know their families and they are hard-working and still at it – so buy the CD already!). Ok…where was I?
Oh yes, I was lightheartedly discussing reaction to my Agile vs. Waterfall article from 6/11/09. I’ve been reading all comments and have responded to many of them. However, based on the comments that have been coming through, I think I need to actually follow-up that article with this one to further clarify my thoughts, the question, and what I’ve learned so far.
My Agile/Iterative Process Background
Let’s start with the understanding that I’ve never worked in an organization that subscribed to Agile practices of software development or project management. I was leading an enterprise software re-write project that was utilizing an iterative development process for a large customer in Las Vegas when the company I was working for abruptly shut down. We were through requirements and ready for development so I was already seeing the benefits, but we weren’t able to complete the process.
My Standard/Waterfall Background
Let’s also acknowledge that I have worked very successfully as a Project Manager for 18 years now - all basically using the waterfall method for software development projects. Yes, I’ve seen some failures – both in projects I’ve led and in projects colleagues have led. Some have ended in a fiery death for the project and careers. But many have been wildly successful – I wouldn’t be here today if that weren’t true. I’ve led many small and many very large projects using standard waterfall methods that have ended with happy customers, on time deployment and on budget financial status (except, of course, for necessary change orders as a result of customer and project needs).
Being what I consider an intelligent individual as well as an experienced developer, project manager and IT professional, I can make the educated statement that any process that requires continual customer involvement, short sprints that test and rollout a solution every 2-4 weeks, and constant attention to evolving requirements is bound to have frequent success. The main problem with any waterfall approach is the fact that the project is based on an understanding the requirements are in place correctly at the beginning. That’s flawed – they are almost never correct or in enough detail when the project kick’s off. They usually evolve over the course of the project – with more detail and more surprises extracted along the way…unfortunately. Usually this requires re-work. Often it requires change orders. And sometimes it upsets the customer. All of that is known by everyone and completely understood by this author.
Finally, I’d like to restate my premise for all. If a software project has well-defined requirements up front with no need for further definition (yes, rarely, if ever happens…I know), and if the customer is continually involved and everything goes smoothly and your project is well staff with the right skill set…then if you used each method to run the project I am assuming that the overall project costs for the waterfall method would be less than with agile. This would primarily be because of less testing, overhead, etc.
I’m only asking for one hypothetical project, not the best way to run a project and not the best method across a portfolio of projects. Just one perfect project. Would it be cheaper to do waterfall than agile assuming no re-work, no re-starts, and no issues? My guess is “yes.” And that’s what I’m basically hearing in the comments. Your thoughts?