Many executives have been led to believe that Agile is inherently less predictable than a waterfall approach. However, Agile, when wrapped in Lean-Thinking, can be more predictable because it enables working directly on the true causes of unpredictability in software development. Waterfall’s large projects and stage gate approach cause delays in feedback, workflow, testing and integration. These delays inherently create a significant amount of rework (redoing requirements, reworking code that missed requirements, finding bugs, thrashing during integration). This work, of course, is never planned for, hence the bad estimates. When the projects are de-scoped to meet time constraints, many of the less important features have already been done. This means a lower number of features are delivered and many of these were not of the highest value.
The key to having predictable results is to eliminate delay-induced work. This requires smaller batches of work that are properly sequenced in importance, properly formed teams (or groups of teams) and solid technical practices. Agile suggests additional methods such as Acceptance Test-Driven Development, automated testing and continuous integration. These directly improve understanding of requirements (through quick feedback), code quality and risk reduction.
Although waterfall and Agile approaches have different mindsets, some of Agile’s methods can be incorporated into a waterfall. For example, making both projects and planning cycles shorter. Improving methods will not make an organization Agile, but it may help set the stage for a true transformation.