I was re-reading the introductory chapter of Information Systems Transformation: Architecture-Driven Modernization Case Studies*. One of the great contributions of this section are the numbers. Among other things, Bill Ulrich looks at the risks associated with various forms of software system replacement as well as a wide variety of ways of estimating the cost of such replacements.
I will skip the statistics on failed or under-delivering projects. What I want to do is synthesize out a rule of thumb for replacement costs.
The book's case studies focus on a variety of approaches to making use of existing assets to improve the quality and reduce the cost of a modernization project. Without adopting these methods an enterprise has only a few choices: identify and deploy a commercial off-the-shelf (COTS) replacement or do a greenfield rewrite.
While the single most critical element is selecting a COTS replacement is its alignment to requirements, it is important to remember the following rule of thumb:
- The typical cost to implement an ERP system is 5x the purchase price.
Does this generalize to other COTS products? In many cases for smaller packages I would expect this to be a high ratio. But normally there is substantial overhead that needs to be allocated to integration with other corporate systems and data sources, testing, and training of the users in what are going to inevitably be modified business processes.
There are a lot of ways to estimate the cost of a greenfield replacement effort and Ulrich enumerates a number of them. While some of the studies referenced go back a ways and the labor costs may not take into account modern best-shore costs these are worth keeping in the back of your head and adjusting to circumstances.
Different studies have come up with significantly different costs to produce fully tested and deployed software. But the range is instructive.
The cost to replace a line of code is quoted to range from $18 to $45. And a typical developer is capable of producing 3000 lines of tested, deployed code in a year. Thus, for an application consisting of 1 million lines of code:
- Development cost would be between $18M and 45M.
- The time to rewrite with a staff of 30 developers would be on the order of 5-10 years.
The lower number assumes the selection of languages and use of tools to generate a 2x acceleration.
A slightly different way to come at this is to consider that large portions of old applications are house-keeping, with only about 30% of the code devoted to business logic. Assuming that tools and frameworks can automate the creation of 70% of the code and we are able to contract for the low rate of $18/loc, then
- The absolute lowest replacement cost for a 1M loc application would be $5.4 million.
- The calendar time to rewrite would be at best 3.3 years with a staff of 30 developers.
These are big numbers. That is why HP has taken such pains to identify alternatives and accelerators to enable a more cost effective approach to these Application Transformation projects.
* Information System Transformations: Architecture Driven Modernization Case Studies. William Ulrich and Phillip Newcomb, Editors. Elsevier, 2010.
Plug: be sure to read the MIUR Case Study chapter written by myself and my co-author, Tom Laszewski!