Clean Slate Development? Or Iterative Transformation?

This can be a tough question.  The desire to rebuild a software system from scratch is difficult to resist, but duplicating complex software is almost impossible.  (from Grady Booch’s On Architecture podcast series).  The software industry’s project failure rate has improved in the last decade as software teams adopt agile methods and iterative strategies for improving their software systems and architectures.

In general, rewriting your system from scratch can be an appropriate decision when:

  1. You have no other option.  The legacy app is too brittle.  You can’t touch it without significant risk of disruption
  2. Failure is an acceptable option.  You have unlimited resources or a solid portfolio of projects to hedge the high-risk, clean slate, long-term project
  3. The primary project objective is self-actualization

value-of-iterative-over-rewrite

With ‘clean slate’ projects:

• Delivery of new capability is deferred, along with the ROI of the new capability (consider the time value of new capability)

• Hidden costs include the substantial effort required for parity capability and stabilization of new code, new issues, and new constraints

• Accurate schedules and cost estimates are virtually impossible

 

With iterative transformation of your software system:

• Your resources focus on new capability (vs parity capability and stabilization of a new system)

• Uncertainty and risk are managed through short, well-defined iterations

• Your customers realize the value of new capability sooner

• Early and frequent delivery provides an effective feedback loop, leading to course corrections and additional value

-Donny

Leave a Reply