If you hang around the tech industry long enough or if you work at a technology company that lasts long enough, you are sure to run into the debate of whether you should re-platform or rewrite something. This can take several forms including migrating from one platform to another, such as from Magento to OpenCart, or from one technology to another, e.g. MySQL to Manhattan such as Twitter did in 2014 or to whatever the new owner thinks is better than the current supposed “crazy stack.” To me there are at least two perspectives to consider when thinking about migrations or rewrites. One is the psychology or mindset of engineers and the second is the business case.
There are several psychological factors that may influence an engineer's desire to invest in a migration or rewrite of a platform. One reason may be a sense of accomplishment and pride in their work. Engineers often take pride in their ability to solve complex problems and build innovative solutions, and a migration or rewrite project can provide a sense of personal achievement and accomplishment. Additionally, the opportunity to work on a new and challenging project can be energizing and motivating for engineers, as it allows them to use their skills and creativity to tackle a new problem. Another psychological factor that may influence an engineer's desire to invest in a migration or rewrite is a sense of ownership and responsibility for the platform. Engineers may feel a strong sense of responsibility to maintain and improve the platform, and may see a migration or rewrite as a way to ensure that the platform is robust, scalable, and meets the needs of the organization. Finally, engineers may be influenced by external factors such as peer pressure or the desire to stay current with the latest technologies. In a field that is constantly evolving, it can be tempting for engineers to want to stay on the cutting edge and be seen as knowledgeable and up-to-date. A migration or rewrite project may be seen as a way to achieve this. For many of these reasons a rewrite or re-platform might make sense.
The business case for the migration is the second perspective to consider. Of all the resources required for a successful migration, money, time, etc. the people are the most important. The planning stage alone for many of these projects can take months even before the actual execution begins. These migrations can require anything from a few teams to the entire engineering organization for many quarters. The opportunity cost of not developing new features is likely massive. In many cases, engineers can produce incremental revenue of hundreds of thousands of dollars each year. Stopping this to re-platform is a cost that must be included in the calculations. The second part of the business case that must be considered is the disruption to current customers. Changing workflows for existing customers is almost always disruptive and if not carefully considered can easily result in negative outcomes to critical business metrics like conversion rate. Research shows that it is not uncommon for experiment success rates to be less than 50% at companies like Amazon and Microsoft. If these are carefully planned A/B tests designed by analysts and product managers, imagine what a completely new workflow that is not optimized for your business could do to your customers.
Sometimes migrations and re-platforms are necessary in order to continue or improve innovation. Sometimes it is the right thing to do in order to keep your engineers engaged and build a sense of ownership. Sometimes the new owners just think it is the right thing to do. No matter the rationale, they are almost always way more expensive than you think they are going to be because you failed to consider the opportunity costs or the negative impact to customers. This almost always makes the payback for this type of work much, much longer.
Curious about your take on the Southwest Airlines debacle. I suspect the engineers were probably advocating for modernizing a long time ago, but the business couldn't figure out how to justify it...
Thought provoking post, thanks Mike. I've had to push back on so many of these efforts that were fueled more by engineering purism than business need. There is always a lesson around craftsmanship versus practical reality buried within.