I had reason to revist some of the thinking behind my book on Software Migration, the key lesson of which is that the drivers and hence the tactics for Software migrations vary. I worked with colleagues at Sun Microsystems in writing a book, which while called “Migrating to the Solaris Operating System”, and thus maybe past its best, it had a tag line of “The discipline of UNIX-to-UNIX Migrations”. It’s available to buy on Amazon, or possibly available on the.net, the link I published in 2011, seems to have gone. The rest of this blog, highlights the super strategies and lists two gotchas.
In Chapter 3, we argued that there were a restricted set of things that can be done to move code off its current host. To some extent these can be combined, and they are,
- a full re-write
- maybe Reverse Engineering
- Rehosting – Technology Porting
- recompilation, emulators, portable environments
- windows hosted terminal emulators, client server implementations
- where reasonable current value and massive cost to change
- is it really still required
Clues as to which techniques were to be used can be derived by understanding
- if the business logic remains valid
- it the reasons for the project are IT driven, including skills and supply chain issues
- or if the reasons are based on business dissatisfaction
Prior to my time at Sun, I discovered the importance of ensuring that the business logic remains of value, if there is a case to redevelop the code or start from scratch, then budget holders will often spend the money on an internal project, rather than an external one, although much of this is around how useful the old business logic remains.
A final yet important insight is that you need the legal right to apply the techniques. Many 3rd party products are shipped without engineering rights, or with reverse engineering or decompliation rights explicitly excluded and thus while it may be technically possible to move the code, to do so would be in breach of licence.
The book was written by three of Sun’s premier migration project “Technical Design Authorities” and contains three case studies, with the source systems being Linux, HP/UX and Tru 64. The three authors, including me, conducted numerous projects and pursuits during their time at Sun.
Here is a copy of Chapter 3 in .pdf form.
Originally posted on the Citihub CTO blog, in November 2011, and re-posted here in March 2016.