The Difference Between Rewriting And Iteratively Replacing Software 

Rewriting and Iteratively Replacing software both end with the original software being completely replaced.  Since the result is the same, it can be difficult to understand why Iterative Replacement, or TheeSeeShipping is so much more effective and less risky.

When you rewrite software you leave the original code alone and build new software that does the same thing, but better.  You start with one piece of working code, build a second piece of working code, and then stop the first.  To your users, the change happens all at once, at the end of the project.

With Iterative Replacement, you always have exactly one piece of working code.  The “bad” parts are replaced one at a time, and go into production.  At the end of every release, there is exactly one system, the one in production.  User’s experience the change gradually over time and they will see value from the project all along the way.

Both paths end with the original code being 100% replaced.  With replacement, you can see that customer value comes much earlier.  

What the graphs don’t show is the risk of the project ending before the original code has been fully removed.  If a rewrite stops before 100%, your users get nothing.

Rewrites are always more risky, because they set up an all or nothing dynamic.

Leave a Reply

Site Footer

Discover more from Sherman On Software

Subscribe now to keep reading and get access to the full archive.

Continue reading