Business Considerations of a Technology Migration

When switching a part of your system from one technology to another there could be a number of factors that have significant impact upon the business. But they might not be so obvious.

So what are they? What risks are you taking by not knowing about them? And how can you work out what’s best for you and your company?

Talking to the business, keeping them involved throughout and giving them options with explicit trade-offs are tricks I get good value from. Read on if you’d like to know more.Measuring the Impact of Change

In today’s scientific world businesses are measuring the impact of the changes the software you deliver makes. They look at statistics like new user sign ups, bounce rates, conversions, return visits and such. They correlate changes in these important metrics with the deployments you make — that google analytics thing you keep putting in your html pages isn’t the latest fad javascript library.

“We recently added a new widget on the homepage and our bounce-rate halved”. “After the dev team optimised a database query we got a 2x speedup; since then we’ve never seen so many return visits per-day”. You get the idea.

When rolling out a technology change, be careful about how many variables you are actually changing — the new system is faster, the new system has a new web design, the new system has an intelligent cache that gives users different results to the old system.

Two scenarios highlight why this may be a serious concern for you:

  1. Users are happy. Great, but why are they happy? Which of the 5 variables you changed is making them happy? If we decide to change something in the future, how do we know it’s not the actual thing they like?

  2. Users aren’t happy and conversions have slumped to 1 tenth. Oh dear, you don’t know which change caused it, so you need to think about rolling everything back (or finding a new job).Gradual Change Enables Variable Isolation — Help the Business

As developers we also like to think of ourselves as slightly scientific: change some code, run some tests, evaluate hypothesis. In many situations, deploying each feature like this can be an ideal approach for rolling out a technology change (aka continuous delivery).

For example, you could switch to the new UI first. Then you could deploy then new back-end API whilst it works very similar to the old one. Finally you can add each new feature one at a time.

Along the way you measure the impact of every change. Business people usually like to compare current trends to previous trends, or they like A/B testing to run the two alternatives side-by-side.

As a developer you should try to understand how the business works and help them to capture the important metrics. They usually ask for them, but don’t be afraid to make suggestions.Always the Trade-offs: Risk, Cost, Waste, Delay

Unfortunately the scientific approach has costs. If you’re ever pondering a technology migration, the following considerations may assist your goal of finding the best trade-off for your business.

Changing one variable at a time is less risky; fewer things to go wrong, less likely to roll back. But in some cases you need to create an intermediate step to support this. For example, if you have a new UI and a new back-end API you have to make the existing system work with the new UI or the existing UI work on the new system.

Creating an intermediate step could be a lot of effort for something that gets thrown away after 1 day in production. You need to work out if the business would prefer this waste or if they would prefer to change two variables and not be able to correlate trends fully.

Delay can also be a critical concern. If it takes you two weeks to create an intermediate step, you should ask the business how much they would potentially lose by holding back the switch-over that long.So, whimsical business people….

…what would you prefer: speed to market, cheapest cost, least risk, ability to measure effects of every single variable? I don’t know, cheeky young developer. Why don’t you give me a list of options and help me to make an informed business decision?