Recently I was with a client, and they had a dilemma. They wanted to upgrade their existing application, which raised an important question. Should they build on what they already had or start again from zero with custom software?
Of course, no project is the same. If you need to ask this question, I would take the time to review the needs of your project first. But that doesn’t explain why one choice might be better than another.
In today’s blog, I wanted to show two case studies with the help of Karol Wiszowaty, Delivery Director, and COO. And describe why the decision was taken to either build upon the existing solution or to start from scratch. As well as the advantages and disadvantages of each approach.
Developing existing solutions
In the first case study, I want to explain a project where the decision was originally made to build some of the features on the existing solution. Let’s start with the background, the client is one of Europe’s largest ticket distributors. This fact was important to the decision to build on existing architecture. But why?
When Beckerbillett approached us, their existing system was already running. They had been in the middle of a digital makeover for about three years, working with a team of in-house developers. However, during the pandemic period, digital sales saw a dramatic increase and the system showed signs it couldn’t scale with demand. This is when they reached out to us to help expand the capability of their online shop.
As always, we started the project with an audit, looking at the “as-is state” and how we could move to the “wanna-be state”. From a technical perspective, it would have been easier to build the system from the ground up. Making changes and implementing new features is more difficult with older systems, and that’s one of the disadvantages of building on existing solutions.
Decision with the client
So why didn’t we do this? Well, building an application from zero takes time. And to maintain a strong market position changes needed to happen at a quicker pace.
The decision to build on the existing solution was made from a business perspective. Any changes to the existing solution needed to be made so they didn’t impact the business model and their market position.
Together with the client, our .NET team nailed down the roadmap for the upgrades along with the milestones we needed to hit. It took us longer than starting from scratch, again another negative of building on existing infrastructure. But what was important was that the users kept getting new features throughout the upgrade process without any interruptions.
The result of this was the project grew naturally over time, with changes being added to boost functionality while making sure it was business as usual. But there’s more to this story, at the same time the .NET team developed an API system, built from the ground up, to work with the client’s partners.
The decision to build on Beckerbillett’s existing solution, despite its challenges, was driven by the need for fast changes to maintain its market position. By gradually enhancing the system and adding new features, we were able to upgrade it over a year while ensuring uninterrupted operations. Our approach focused on one module at a time, allowing the team to boost functionality while preserving business as usual.
And if you want to know more, we already have a full case study here
When building on existing solutions won’t work?
Building on your existing solution does have some advantages. From the previous example making sure it was business as usual while implementing changes quickly were the main driving factors. And in this case, it was the right choice. But it won’t work in all situations, so be aware of the following issues.
Rebuilding could cost more
Without rebuilding your existing solution there is a point where you might build yourself into a situation where there’s no way out. And this could cost you more in the long run.
For instance, you’re looking at the current market situation and think “We’re missing out on this feature” but due to your existing solution, you might not be able to implement the changes quickly. Or worse, the workaround could cost you a lot more to implement.
A good example of this is cloud-native apps. If you do decide to take your project to the cloud, then having a custom-built app that is ready for the cloud is far easier than trying to drag old solutions to the same state.
Limits your technology choices
Another disadvantage is it limits your technology choices. This might not always be a problem with a lot of technologies being able to work together, but certain technology is better suited to certain projects. And again, you might find yourself in a situation where adding new features may be more challenging due to conflicts.
One example might come from developing a cross-mobile application. Designing for both Android and iOS is possible, think React Native, but if you are already limited to one technology then, it might not be a feasible choice.
You might not be able to find the right specialists
And finally, there is a market for software engineers. Think supply and demand. If you start a project with a certain technology, this limits you to the experts available at that moment.
So, when you start a project with a specific technology you might not be able to find the right specialists.
Developing Custom Software
In the second case study, we will look at a situation where developing custom software was the right choice and why. And again, let’s start with the background.
USA-AUTO-ONLINE deals with the buying and shipping of cars from the USA to Poland. The customer’s business had grown quickly, and USA Auto Online wanted to improve its end-user experience. However, their old portal couldn’t handle the large number of available auctions and growing visitor numbers. It also couldn’t support their plans to expand.
Their original platform suffered from a few issues. With slow loading times and higher running costs for maintaining it on the cloud.
Although possible to add to the old solution, the cost of adding new features would have been much larger than starting from zero. Therefore, in the long run, it would have been more expensive.
There was also no guarantee that the current solution could handle the planned changes. We might have ended up in a situation where we had built ourselves into a corner. Meaning we had spent a lot of time (and money) and would still need to rebuild the system.
Instead of putting in a lot of effort to address the existing issues, both sides decided the best way forward was for a custom solution. From the old system, we were able to extract an MVP and rebuild it fast. This meant business as usual for the company while we concentrated on adding the “nice-to-have” features.
A quick response
Building custom software takes time. To mitigate this negative, there were two things the team did.
- Starting with some low-hanging fruit, the team introduced some smaller features to the old system. This helped ease the existing problems for a few months while the new application was being built.
- To introduce the new system as soon as possible as an MVP. Here the team built the project around the core features to get it to a ready state quickly. With the plan to add additional features over time.
This is one advantage of custom software development, with the right architecture in place, new features can be added without the worry of facing a roadblock.
We made big improvements in auction performance. Auctions now load 10 times faster, and complex queries with filters are 100 times faster. We also optimized auction updates from 2 hours to just 7 minutes.
Here the decision to build a custom software solution was motivated by the old portal being unable to fulfill the needs of the customer. While making sure the new system could be upgraded with new features at a lower cost.
If you want to read more about USA-AUTO-ONLINE we have a full case study here.
How much does building custom software cost?
I think it’s also important to tackle the elephant in the room and that’s about the cost. Custom software development does have higher up-front costs than building on existing solutions. And it’s one point a lot of people first consider.
However, in this case, because of efficiency savings the overall running costs of the website dropped, delivering on cost savings in the long run. And even though building on existing solutions might have lower upfront costs it may end up costing more. With the previous example implementing changes would have had higher costs as it needed more time (aka wages) to deliver the new features.
In either case, what the project aims to do will dictate which approach might be more costly.
Summary of the points
In both the previous examples, the decision to go for one approach over the other was impacted by the client’s needs. However, as a summary of the points, I wanted to share a general guideline on the advantages and disadvantages of each approach.
Advantages of building on existing solutions:
- Short run Time-saving – The time-to-market for new features is shorter (compared to the time needed to rebuild the whole system from scratch).
- Cost-effective in the short run – Eliminates the need for building from scratch.
- Seamless integration – Compatibility with existing systems.
- User familiarity – Smooth transition for users.
Disadvantages of building on existing solutions:
- Technical limitations – Potential constraints on features and technologies.
- Legacy issues – Complexity and hindered scalability.
- Limited flexibility – Restrictions on innovation and new technologies.
- Dependency on previous decisions – Design constraints from existing architecture.
- Usually, in the long run, it is more expensive and time-consuming.
Advantages of custom software development:
- Complete control – Customization according to project needs.
- Modern technology adoption -Utilizing the latest technologies.
- Greater flexibility -Tailoring the system to specific requirements.
- Clean slate -Opportunity for improved efficiency and code quality.
- In the long run, for projects planned for years, it is a cost-effective approach.
Disadvantages of custom software development
- Time-consuming – Building the entire system from scratch.
- Increased cost -Higher upfront investments in development and testing.
- Higher risk – Potential delays and unforeseen challenges.
- User adaptation – Learning curves and potential resistance to change.
So, what is the right choice? Start from zero or build upon what you already have. Well, the answer lies with the project. There isn’t a magic formula for answering this question. And before you decide on one approach over another you need to be certain about the following points.
What technology stack might be best for your needs? How big is the project? What are the core features? What do you want it to do in the future? Will it have to adapt to changing markets? What is your budget? What is the timeline? And, Do you have an in-house team?
It seems like a long list of things to consider, but here is where you should trust the experts to help you make the best-informed decision for your project. If you want to chat about the best way forward for your project you can schedule a meeting today.