Every few years, the technology innovations continue to change the way we write, use, and maintain software solutions. In the last decade, the rise of AI, cloud computing, and open source technology solutions completely transformed the information technology. Software can now be written with less effort, deployed without building any physical infrastructure, and delivered to millions of users with relatively lesser effort.
The ever changing technology landscape continually obligates the technology professionals, to keep up with the pace and modernize our existing software and services. An organization’s need to change its software and services could be driven by its business need improving economy, create new product, etc.. The need could also be a matter of survival for the organization as the underlying software or hardware technology ages toward sunset.
Migration is the process through which an organization updates the code, data, or infrastructure.
Migration could be as simple as upgrading the database to a more recent version or as complex as moving the infrastructure from on premise datacenter to public cloud such as AWS. For complex scenarios, completing the migration without having any negative impact to the ongoing business or operation is by no means, an easy affair. The cost and effort often puts enormous strain on the profitability of an organization, disrupts their daily operations, and in the worst case end could up destroying the organization. There are three main sources of the high risk and challenges that are associated with the migrations:
Techical Debt
Martin Fowler defines cruft as the “deficiencies in internal quality that make it harder than it would ideally be to modify and extend the system further“. Ward Cunningham describes Technical debt as a mindset of thinking cruft as a financial liability that needs to be paid over time. Examples of technical debt could be lack of unit tests, missing documentation, customized code that can only run on a specific piece of hardware, or a bloated database that have not had a cleaning done for a long time and cannot be backed up.
Case study: I have worked in a migration project where the technical debt was not calculated accurately ahead of time. This caused the project to take three times the time and cost and resulted in the technical lead leaving the organization.
The Three Cs - communication, collaboration, and coordination
Unless the engineering team is in a small flat organization, the software migration will often require support from other teams and needs to coordinate their efforts closely with those other teams. The priorities and the goals of each team is different, so, unless all the managers and upper management is fully focused on making the migration a success, the migration project is likely to fail or face significant hurdles.
Case study: I have worked in a migration project where the success of the migration project required a different team to run a re-indexing process to which they initially agreed but refused to do it at the end of the project because of the cost. This caused the migration project to almost fail and caused various career consequences for the members of the team who was in charge of the migration.
TCO - total cost of ownership
The total cost of ownership of completing a migration is notoriously difficult to measure. The technical, the product, and the business wings of any organization need to work hand in hand to achieve the common goal of that organization. Every stage of the migration process has associated cost such as time and resources and has opportunity cost. Since there are uncertainties that plague the planned work, the total cost cannot be accurately measured ahead of time.
Case study: I have worked in an on-prem to cloud migration project which was delayed by 1 year because of inaccurate accounting of the total work that needed to be completed. The project kept going for ever, the upper management could not get an approximate date of completion, and this migration delay caused several other projects to get delayed for unforeseen amount of time causing significant customer dissatisfaction and negative economic impact.
But, why do you, the reader would care about these nuances? Surely, you have a team of very strong engineers and run a tight ship. Hear me out, like the sailors sailing through uncharted seas, be afraid, be very afraid. You may end up paying more than you have bargained for. To be continued …