Recently I found myself in re-write vs package quagmire for one of our products. It is our market leading product that was written twenty years ago and grew big and complex over time. Hundreds of clients are happily using it and love it for its functionality and stability. However, the product failed to keep pace with technical innovation on usability side with limited ability to integrate with new age applications. Many users are asking for modern web based user interface, industry standard technology platform and an API for integration. After some deliberations we came up with two options – rewrite the product or shrink wrap the core under modern technology. For sure, I was not the first Product Manager facing this situation.
The meeting with technology and business teams was tense with different sides having conflicting agendas. Technology team wanted to rewrite as it gave them better control on the code and a clean slate to begin. Their typical reasons were no different for any other technical team:
- Existing code is spaghetti and difficult to manage. It is our chance to fix it forever.
- Repackage means we will be building on a weak foundation.
- Why not start with a clean slate?
Having come from technology side, I could empathize with their situation and understood their rationale. However, my businesses alter ego and rest of the business team questioned this strategy. The business heads were thinking pricing, balance sheets and revenue goals. No wonder teams are important in business! Some key business concerns were:
- Why will clients wait all these years to get same functionality in a different package? More so when there is a backlog of pending enhancements.
- What is the business case for this gigantic investment? M&S alone can’t justify it. Will clients pay substantially more for old wine in new bottle?
- How sanctimonious is this multi-year timeline when R&D struggles to deliver even regular releases on time?
- How long will it take us to stabilize the new product to match the robustness of the current solution?
Like many situations in business, this one was also not black or white. While the rewrite option had above issues the repackage option was also marred with concerns of long term viability of the technology and client adoption. Despite a lack of clear answer the odds were clearly stacked against rewrite. Even some industry veterans have also vouched against it. We decided to go for a hybrid approach of encapsulating the core around new technology architecture and building new features using modern interfaces. The goal is to chip away at the core over a period of time. Not only it helps us meet client requirements but also continue to strengthen the product with new enhancements. So far clients have positively responded to this strategy and I am glad that sanity prevailed.