I have been reading a lot of discussion recently regarding the use of different methods for planning, implementing, and managing projects. Many methodologies exist in the industry; two of them are:
- Traditional Waterfall (some would say PMI PMBoK but not necessarily) model
- Agile (SCRUM, Extreme, etc.)
I read a really good article last week in the Harvard Business Review Blog — A Better Project Model than the “Waterfall” by Jeff Gothelf. In this post he talked about needing a better model than the traditional waterfall model.
Here is a summary of Jeff’s post:
The main argument is that waterfall methodologies, which have been around for a long time, have a fatal flaw–they depend on accurate requirements. The problem with this dependence is that requirements are often wrong. He discusses giving teams the ability to work with clients to find out what the real requirements are. One of the quotes from his post that I really like was from Josh Seiden, who said, “In software development, reality bats last.” What he means is no matter how much planning or optimism there is about the software product being built, the only true project success is the reality of customers using it to solve real problems.
He goes on to share examples of Agile methods, in which teams use lists of features that are prioritized by product owners (not developers) to drive the project. In addition to prioritized lists, he suggests that each project team should be handed specific success criteria. These criteria must be quantifiable and directed to specific outcomes that meet customer’s needs.
My own opinion of this conversation is that it is not either black or white–waterfall vs. Agile. As both as PMP, certified in waterfall methods, and a PSM, certified in Agile Scrum methods, I contend that a blend of both methodologies is often the right answer. Agile requires small, bite sized “sprints” with smaller teams in order to produce results. However, many projects are quite large, with as many as 300 people working at any one time. In these cases, running lots of small teams with sprints can become a project management nightmare. Using an approach that allows some portions of the project to use a more traditional waterfall method, and other parts of the project to use Agile, can make the overall project more management while still achieving the desired outcomes.
As I’ve stated in prior posts, requirements are not easy to capture, especially in complex software products. There are many techniques today (including Agile) which allow us to work with real users and discover the true requirements and needs and the measurable outcomes that must be produced. One such technique, Performance DNA, is used by my organization to ensure that all requirements are identified and linked back to prioritized outcomes.
In closing, as an experienced project manager who is certified in both methodologies, I am suggesting that “either/or” is not the right discussion. Instead, I propose that a combination of waterfall and Agile is more likely to be the right approach.
Do you have experience using a blend of waterfall and agile, or do you prefer one over the other?