Do you stick with your existing app or do you rebuild? It's a big decision that can impact your bottom line and your users! In this episode, we will explore the factors you need to consider when making this important choice.
Deciding whether to update an existing app or undertake a complete rebuild is a pivotal business decision that affects not only operational budgets but also long-term strategic growth. This episode provides a comprehensive guide on how to make this critical decision.
Key Discussion Points:
- Introduction:
Brief overview of the dilemma between updating or rebuilding an app. Importance of aligning the decision with business objectives. - Understanding the Current App:
Evaluation of the existing app's architecture, technology stack, and user feedback. Discussion on when an update suffices versus when a rebuild is necessary. - Factors Influencing the Decision:
- Business growth plans and their impact on the app's functionality.
- Technical debt considerations and the migration process for existing users.
- Long-term cost implications of both updating and rebuilding.
- Case Study Example:
Using a real-world analogy, compare minor updates to adding a conservatory to a house versus rebuilding the house to convert it into a hotel. - Security and Compliance:
The risks associated with outdated technology and the benefits of modern security standards in new builds. - Economic and Operational Impact:
Analysis of the time and resource investments required for both paths. How these choices align with market demands and customer expectations. - Expert Advice and Best Practices:
Insights from technology experts on best practices for managing app transitions, avoiding common pitfalls, and maximizing ROI. - Conclusion:
Summarization of key points discussed. Encouragement to evaluate both options carefully with a focus on long-term business goals.
You may also find this study relevant and interesting in terms of the gap between theory and practice on how software teams maintain software. This study showed that the main challenges in keeping software up to date include a lack of system documentation, unclear development practices, and outdated software. The findings highlight the need for more collaborative efforts to develop and provide the right tools and methods for managing software changes and measuring software performance.
Listeners are encouraged to review their current technology assets and consult with experts like Scorchsoft to explore the most viable and cost-effective path for their app development needs. For further guidance and personalized consultation, reaching out to Scorchsoft is recommended.
Full Podcast Transcript
Do you stick with your existing app or do you rebuild? It's a big decision that can impact your bottom line and your users! In this episode, we will explore the factors you need to consider when making this important choice.
This is a question that has significant implications. It's not just about the immediate costs, but also about the potential for growth, the user experience, and your overall business strategy.
Whether you're an established business with a mobile app that's been ticking along for a while, or a startup aiming to take your digital presence to the next level, this episode is for you. We will explore the pros and cons of updating versus rebuilding your app, explore the long-term implications of each choice, and provide you with practical insights to help you make an informed decision. Let's get started!
Let’s start with a scenario where you have an app that's been around for a while, and you're pondering whether to revamp it. The decision hinges on your future plans for the app. If its current functionality is all you ever desired, then maintaining it as it is might suffice. However, if you harbour ambitious growth plans, you must ensure the app can accommodate new features to help you meet your business objectives.
Consider your situation like a house. If your app is a well-maintained house and you wish to add a minor extension, such as a conservatory, you'll likely want to work with the existing structure. After all, you wouldn't demolish the entire house just to add a conservatory.
On the other hand, if your app is a small house and you need to construct a hotel in its place, it makes no sense to convert the house into a hotel. The best approach would be to clear the site and build the hotel from scratch.
However, it's a bit more nuanced than that. When you develop a new app, you incur some infrastructure debt. For instance, if you have thousands of users, you can't just create a new app from scratch and ask them to sign up again. You'll often need to plan a migration process to retain these users and avoid losing them. Therefore, when building a new app, you'll need to consider certain technical aspects to ensure it meets your needs.
Starting afresh gives you total control over how you structure things. However, this can become complex if you already have a mansion and want to turn it into a hotel. It might make more sense to simply add another wing to the mansion. In this case, there's more value in your existing asset, making the cost of abandoning it to rebuild much higher.
Another factor to bear in mind is the time it takes to transition from the old to the new. I've worked on projects where a mobile application served well as a prototype, but over time, the client realised they needed to overhaul the user flow and interaction. Sometimes, making minor tweaks, adding a few new screens, or slightly adjusting the user flow can optimise your existing app and achieve your objective.
However, if the changes you wish to make are extensive and impact a large area of the app, starting anew might be the better option. It's not that the old structure was flawed, but rather that it could be quicker to reach your desired functional app by starting from scratch rather than trying to modify the old one.
If you're considering updating an app that was developed some time ago, bear in mind that it may have been built using older technologies. For instance, if you're after a native application for both iOS and Android, your existing app may have been built in Java and C Sharp, which are older technologies with respect to mobile app development. Modern native technologies, on the other hand, are Swift and Kotlin, or Native frameworks like React Native.
Therefore, if you decide to make do and build on top of an older application, there's a possibility you'll need to use these older technologies, which may take longer or at some point in the future no longer be supported. This could influence your decision on whether to update or rebuild the app.
Similarly, if your existing app was designed solely for Android or iOS, and you want your new app to be compatible with both platforms, it might be more practical to build your new app using a framework like React Native. This approach enables us to support both iOS and Android with one code base, rather than maintaining the older operating system code base and introducing a new one. This could lead to a parallel development process that may hamper the maintenance of the project, because you'd need to maintain two separate applications with two different code bases. This is another factor that could influence your decision on whether to update or rebuild the app.
From a business perspective, my advice would be to thoroughly investigate whether it's beneficial to update your app before considering building a new one. This may seem counterintuitive, as most app developers (and app development companies) would prefer to start from scratch given the opportunity. This provides them with full control and allows them to build the app in their preferred way. However, setting aside vested interests for a moment, it's important to consider the financial implications from a business standpoint.
There may be times when, despite the existing app not being perfectly structured and taking longer to modify, the time required to implement the necessary changes is still less than the time it would take to rebuild the app from scratch. In such instances, updating the existing app would be more cost-effective than a complete rebuild. However, this decision should be made with a long-term outlook. By considering the costs over the next three years, rather than just the next month, you can make a more informed decision.
For example, a change that seems cost-effective in the short term might not be so over a longer period, and it might make more sense to rebuild the app. If you don't make this judgement in the short term, all the work done to update the app could be wasted when you eventually decide to rebuild it. Therefore, it's crucial to evaluate your options over a suitable time frame.
In some situations, the decision to rebuild your application can hinge primarily on security concerns. For instance, if your app is quite outdated, maintaining its support may necessitate code updates to align with the latest versions of various programming languages. A substantial gap since your app's last major update could necessitate significant code rework or refactoring, a process that can be time-consuming, as it involves not only the modification but also thorough testing of the app's functionalities.
There may be instances where it's more practical to reconstruct the app entirely. I've encountered scenarios where the backends of web apps operate on such outdated server software versions that they no longer receive security updates, exposing the business to potential hacking risks. In such cases, my firm advice would be to regard this as a grave situation requiring immediate action to rectify the security issue.
Possessing personal information within your app, such as names, email addresses, and phone numbers, especially of younger individuals, makes the situation even more critical. If your development team recommends an update that you don't accept or give approval to action, could leave you exposed.
For example, failure to act on security updates, resulting in a hacking incident, could hold you accountable for any breach of personal information. This scenario is akin to ignoring an electrician's warning about faulty wiring in your house, which could potentially lead to a fire. Just as you would be left with a burnt-down house, business risks, too, can have severe consequences.
Sometimes, the risks are so high that you have no choice but to opt for substantial rework or a complete overhaul, even if it may initially seem inconvenient. If your project, for whatever reason, can't accommodate these necessary security updates, you may find yourself in a situation where you have to make a tough commercial decision about the project's viability. It's crucial to ensure you're not compromising security, thereby putting your users at risk.
Ordinarily, if someone approached us for advice on whether to revamp their application or stick with the existing one, we'd assess all relevant factors. In most cases, you're balancing the benefits of upgrading against the effort required, and comparing that with the impact and effort of continuing with the existing version and making modifications. It's essentially a commercial decision.
The next issue I'd like to address is a less pleasant one, but it's something we encounter from time to time. Occasionally, potential clients approach us after having a less than satisfactory experience with another app developer. It might be an local or overseas developer they initially believed would be a good fit, only to find the relationship deteriorating over time, or a lack of transparency and honesty in the process.
This can manifest as missed deadlines and a lack of clarity about why this has happened. If you find yourself in a situation where your app isn't working as it should, and you're not even sure why, it could be a sign of deeper issues, such as poor code quality or inadequate project management.
This is common with smaller development teams or freelance developers. Sometimes, these smaller entities lack the necessary project management skills to handle the complexities of large technical software projects. A complex mobile app could require between a few hundred to a few thousand hours of work. There's a temptation for smaller teams and solo developers to accept these larger projects without fully understanding the workload involved.
If a developer underestimates a project, they might not realise their mistake until they're halfway through. This can lead to you experiencing the fallout of their underquoting, as they're now less motivated to work on your project. Features may be rushed, and the project could take longer than anticipated, leading to a downward spiral negative feedback loop.
If you're in this situation, you might be wondering how to move forward. Rest assured, we're here to help guide you through your next steps.
While I've just given you a number of reasons explaining how poor processes can lead to less than satisfactory experiences, it's important not to rush into blaming your development team. Misunderstandings can occur, and it's not always down to ill intention. I'd always suggest having an open discussion with your developers. Understand their challenges, and try to identify the root cause of any issues you're encountering before you consider any drastic action.
Sometimes, unexpected technical problems can arise. Once you've resolved these obstacles, your project might proceed smoothly. It would be unwise to damage the relationship with your current team and seek help elsewhere at this point. If you move your app to another developer, there will always be a period of familiarisation and learning, which could involve auditing the existing code before they're ready to start work. This inevitably incurs a cost of switching. If it's a case of minor delays that can be managed, it's probably not worth changing developers.
However, in situations where everything seems to be going wrong and you're losing confidence, it might be time to ask yourself: Can my current team deliver what I need? A major red flag in such scenarios is a lack of transparency from your developers. If they're unwilling to openly discuss why the project is off track, they might be hiding something from you. This can spell the end for a long-term relationship. Software projects are like a marriage; you're likely to be working with the team for a long time. You can't afford to be in a relationship where trust is compromised. Furthermore, if they're hiding things, the codebase could be in such a state that even a new development team might struggle to support it.
If you find yourself in this unfortunate situation, I'd advise getting another company to review the source code, assess its quality, and understand if they'd be comfortable supporting it or if they'd recommend a complete remake. You should also understand the costs involved. Then it's up to you to decide what to do.
As we conclude our discussion about updating versus rebuilding your app, let's look at some key takeaways:
-
Consider Your Growth Plans: If you have ambitious growth plans for your app, it's vital to ensure the app can accommodate new features. Consider the potential value of your existing app and the cost of abandoning it to rebuild.
-
Evaluate Long Term Costs: When making the decision between updating and rebuilding your app, it's essential to evaluate the costs over a longer period. A change that seems cost-effective in the short term might not be so over a longer period.
-
Be Aware of Technology Updates: If your app was developed some time ago, it may have been built using older technologies. Updating it could require you to continue using these older technologies, or starting fresh could involve adopting more modern technologies.
-
Don’t Underestimate Security Concerns: An outdated app could potentially expose your business to hacking risks. Don’t overlook necessary security updates; they should be a priority when making a decision about your app’s future.
-
Seek Expert Advice: If you're unsure about the next steps, reach out to app development experts like Scorchsoft. They can review your current situation and provide necessary information to help you make an informed decision.
-
Maintain Open Communication: If you're facing issues with your current development team, open communication is key. Understand their challenges and try to identify the root cause of any issues before considering any drastic action.
-
Be Prepared to Make Tough Commercial Decisions: If your project can't accommodate necessary security updates, or if your relationship with your current development team has deteriorated, you may need to make tough decisions about the project's future direction or viability.
Remember, the decision whether to update or rebuild your app is a commercial one. It should be based on a careful evaluation of all relevant factors, including the benefits of upgrading, the effort required to do so, and the impact of continuing with the existing version.
As we wrap up today's discussion on whether to update or rebuild your app, I hope you've gained valuable insights to guide your decision. Remember, it's not just about the technology—it's about aligning your app's capabilities with your business goals and ensuring a secure, efficient user experience.
If you're still on the fence or need more tailored advice, don't hesitate to reach out to us at Scorchsoft. Our team is ready to help you evaluate your options and make the best choice for your business's future.
Thank you for listening to the Tech Toolkit by Scorchsoft. It's been a pleasure helping you navigate this complex and critical decision. For more insights and expert guidance on leveraging technology in your business, keep listening to our podcasts. Until next time, keep innovating and pushing boundaries in your tech journey!