The big rewrite: make your software work for you and your company
Whether it's building a new business system, rationalising your existing system or transitioning to the way that your business needs to work looking ahead, Jaroslaw Czaja, founder and CEO of Future Processing (2000), a high-quality Polish software development outsourcer, explains to Chief Executive Officer why this company can be the ideal software partner for you.
CEOs have had innovation at the top of their to-do list for a long time. Yet delivering this innovation is a hugely daunting task for those who fear their organisation isn't ready for something so cutting edge.
There's no denying that software development is a big investment, requiring not only a lot of money, but also time and effort. You look for the best engineers and expect the solution to last for years. So, it may seem unreasonable to throw that investment away. This is the point where you are probably asking yourself why some companies still decide to rewrite their existing software from scratch?
The answer is simple. In a world of rapid change, your business needs solutions that are delivered quicker and that will change with you.
Why should you do that?
Is your existing system increasing in complexity? Is adding to it more of a business risk than a solution to your problems? Well, if you knew from the start exactly what the market was going to need, you would have architected things better. But how could you know?
Your software is too difficult to modify
It is clear that your business is evolving and you want your software to evolve with it. Meanwhile, every functionality takes longer to modify. The code has become harder to change and each time you try to repair something, new problems come up. Changing one thing causes something else to break down. If this scenario sounds familiar, it is a clear sign that the rewrite is inevitable.
Your software costs you too much money
Companies sometimes decide to rewrite because the software has become too expensive to maintain. The changes are more costly, because the quality of your code decreases. Eventually, the cost is too high. It is a clear sign that you have to stop investing in your current software and rewrite it. It is necessary to keep your business running and profitable.
You are falling behind competition
You are doing your best to keep your position on the market, yet you still fall behind competition. While you are busy trying to fix you software, the market is moving forward. Competitors are coming in. Demands change and you are simply left behind.
Given how dynamic the market is, sometimes you don't even realise that your system is out of date or your website looks obsolete.
Maybe your clients are frustrated and start to look elsewhere? Let's face it, clients' needs shift rapidly. They need new functionalities, and a system that is fast and can provide them with what they need.
Why may rewriting be the answer? Well, first and foremost, it can help you build a system that your current clients want to use; one for which they are prepared to give up the system they use at the moment.
Your software doesn't support your changing business needs and processes
You think you don't need the rewrite because your current product is successful. But after you decided to scale your processes or adjust them to conquer other markets, it appears that your platform is inflexible. Or maybe you want to optimise your processes, and add new functionalities but your code can't support another new feature. You try to fix it, but you've already hit the ceiling on extensibility and maintainability. If your software is like a house of cards, then there is nothing left but to do something about it.
How should you do that?
The decision of whether to create a new software application or to continue to maintain a legacy system is always a difficult one. But once you have carefully considered all the pros and cons and, keeping the long-term goal in mind, decided to rewrite, you'll need an effective strategy.
Don't rewrite all the software; you don't need everything and the rewrite gives you an opportunity to simplify your business processes. Focus on what is going to be valuable to your users. Think of the rewrite as a move and only keep the important stuff.
Rewriting is a technically complex project; therefore, you should limit work in progress. Replace one part of your system at a time. Finish one feature before you move to another and release as soon as possible.
Prioritise the features. Throw out the ones that are not absolutely necessary and make room for adding something new that may help your business grow. Identify the features your business cannot function without and focus on that core set. Test, test and then test some more. This approach will not only speed up the whole process, but you will also be sure that your software is bug-free. You should involve end users in the process and ask their opinion. Doing it right from the start is cheaper and more time-efficient than fixing poor code at the end.
Use a well-established technology. Doing the big rewrite may lure you to use the newest technology, as you may be under the impression that you software will last longer. You couldn't be more wrong. Ultimately, you want the developers using the technology they have already mastered, not the one they will have to learn from scratch, costing you time and money.
The decision to rewrite is one every CEO has to make at least once in their tenure. It is important to remember that the process will take time and you may encounter some difficulties on the way.
To help your business get what it needs, you need to think beyond a simple statement of requirements; it means using experience, technical expertise, innovation and creativity to deliver the right functionality at the right time.