Abstracts
 

Home Up Who We Are Contact Form Our Services Methodology Enabling Products Modernization Links

 

 

Home
Up
Abstracts
It's Not Magic
Software Archeology
Don Estes CV

 

Abstract:

"It's Not Magic," an essay on the design of automated modernization projects.

Abstract: When there is residual value in a legacy application, an automated modernization project can extract and use that value in a highly cost/effective manner. Of course, in some cases this is futile, but in many if not most projects it has significant technical and financial merit. There are 3 important technical strategies:

  1. When the business rules expressed in a legacy system still fit the business process, but have a problem with software infrastructure (e.g., database, "green screen" interface, language, hardware platform, etc.), there is usually a fast, cheap and low risk way to deal with the problem, applying technology to renovate the code base into supporting the target configuration.
     
  2. When legacy systems partially fit the current business process but need significant functional expansion or modification, a re-engineering approach may make more sense. This way the original system is reproduced identically in totally new technology, then re-factored according to agile principles to meet the new requirements. Though counterintuitive to some, this approach is faster, cheaper and lower risk than taking a blank sheet of paper and starting over - because at every point in the project you have a fully functional system.
     
  3. When maintenance costs are high in a legacy application, it is possible to logically restructure the application to reduce the effort of maintenance programming. This is usually very cost/effective. Depending on how bad the code is, maintenance cost reductions of as much as 40% are possible, though this approach has the best results for the worst systems.

In the 3 cases known to us of a replacement/rewrite project experiencing a catastrophic failure, this approach would have avoided that result as well as saving a ton of money. Fortunately, catastrophic failures are rare. For more common are cost overruns and projects that are cancelled well before reaching catastrophic proportions. Leveraging legacy assets to break a project into small, manageable chunks is an inexpensive way to assure on time/on budget delivery.


Abstract:

"From Legacy to BPM", Cutter Consortium Enterprise Architecture Service Executive Update, Volume 8, number 21-22, November, 2005.  Complementary copy available after registration from:  http://www.cutter.com/offers/legacyBPM.html

Abstract: Replacements for existing systems fail or experience substantial cost/delivery time overruns because of a failure to appreciate the formal complexity of the problem, and therefore fail to derive practical risk mitigation procedures. Most attempts to address this fundamental failure fall into the category of doing the same thing again, only more so.

The theory behind this article takes an obvious but usually overlooked point: the system being replaced, whatever its faults or shortcomings, nevertheless works. We recommend that, first, technological leverage be applied to introduce global changes to the application that will result in demonstrably identical functionality but resting on a modernized software and hardware infrastructure. Then, second, we recommend applying the underlying principle of agile programming and project management methodologies: make small, incremental changes that can be controlled and - most importantly - will always demonstrate a working system at the end of each short development cycle.

Baby steps will get you where you want to go faster, safer, and probably cheaper than giant leaps into the unknown.