By: Per Rovegård, Consultant and CTO at factor10
Whether you've recently reached profitability and are ready to scale up, or you've struggled for a while and recognize you need to adapt to survive, you are facing important decisions about your software and organization. Your new strategic direction might involve organization-wide digitalization, increased agility, entering new territories or verticals, transforming your business model, or all of the above. In any case, it will require a significant transformation.
You've probably also realized, perhaps after considerable trial-and-error, that your business-critical software is underperforming and a major obstacle to change. Even small changes come with high costs and frustratingly long lead times, and your team keeps bringing up "technical debt". You're questioning what to keep, what to replace, and what to adapt—both in terms of code and organization. You might even feel tempted to scrap everything and start fresh; a chance to get it right, once and for all!
I have gathered these six tips on how to enable software transformation.
1. Ask the right questions
When discussing what to keep and what to replace, your focus too often falls on the technology itself: "Is this code any good?" "Is this framework supported?" "Does this architecture perform?" There is a time for that, but in transformative moments like this, your focus needs to be on value and obstacles to change. If it brings value and doesn't hinder change, keep it! Otherwise, it should be replaced or changed.
2. Find and solve the bottlenecks
When renovating a house, it might be a good idea to tackle one project at a time: the foundation first, then the roof, then the plumbing, and so on. But software is different! Software is adaptable and allows you to move between problems instead. Your job is not to check off projects but to find and solve bottlenecks. Focusing on the one problem that hinders value creation at every given moment will maximize the pace of change and the amount of created value.
3. Gradually build the ability to adapt
The organization and methods that have served you this far might not be suited to taking you to the next level. But that does not automatically mean you need to change everything from the ground up. Reorganizations, process rollouts, and skill training are expensive, take a lot of time, and might not have the intended impact. Instead, experiment with practices to gradually reinforce quality, improve adaptivity, shorten feedback loops, deepen domain and customer insight, and increase collaboration.
4. Learn continuously
It might be tempting to make extensive upfront analysis to create a watertight plan for architecture, code and the capability to deliver it. However, this is a mistake. Learning and collecting insight never ends, and how do you know when you have enough information to know what to do? The amount of insight you need upfront is the exact amount to provide the confidence to start making changes. From that point on, change and learning should be an integrated, continuous process. The more you learn and the shorter the time between insight and decision, the better!
5. Move fast in small steps
The total amount of change in front of you can feel staggering and intimidating. The best way to handle that is by doing it in small steps. Experience shows that the smaller the steps, the faster the change. Smaller batches mean delivery more often, which in turn means quicker feedback and reduced risk. A step in the wrong direction is not a big deal since it was small and provided a chance to learn.
6. Deliver quality, not perfection
When changing something old and dysfunctional, don't confuse quality with perfection. Building something perfect requires you to have perfect knowledge, which is not possible. As noted before, learning never ends. Aiming for perfection creates rigidity and overthinking, which slows things down. Instead, focus on quality changes that are based on current insights, and make sure you can adapt easily to future insights.
Start enabling software transformation today
What are you waiting for? That bright new future is waiting for you, just a number of small steps ahead!
Per Rovegård
CTO & Consultant
per.rovegard@factor10.com
+46722094985