Chances are, your development team has dealt with problematic codebases in the past. According to the Project Management Institute (PMI), around 14% of all IT projects ultimately fail, while 31% of them don’t meet business needs. So, what do you do with code failures? Do you toss them out into the cold? Or, do you try to nurture them back to life with the rewrite-of-the-century?
It’s a tough question. Rewriting codebases fueled by room-temperature coffee and half-baked agile frameworks is a daunting task. Even worse, you may be dealing with legacy software. The code and features were impressive for their time but don’t live up to modern expectations today. And, in a digital ecosystem where expectations change faster than the seasons, legacy software that fails to deliver an optimal UX (user experience) can negatively impact your brand.
Today, let’s cover whether you should rewrite your code or ditch it for a brand-new deployment.
To Rewrite or Not To Rewrite, That Is the Question
Rewrites have a negative reputation in the software industry. Netscape’s rewrite disaster — which has been heavily publicized by Joel Spolsky — led to a distaste of rewrites that plagued the industry for years. But, rewrites can work. Microsoft and Basecamp both have success stories to share about rewrites (both total rewrites and iterative rewrites).
Here’s the secret: rewrites work in specific circumstances. For example, if you’re migrating to a new operating system and your app is platform-dependent, rewriting is a good option. You need to change the code to work with your new dependency but don’t need to deploy an entirely new solution. We also call this code refactoring, done to accommodate a change in the software environment. This is where you improve your code without changing its external performance.
At the same time, there are plenty of situations where a rewrite isn’t a good idea.
Joel Spolsky says that code is easier to write than to read. And, he’s right. Going back and trying to fix old code can be a challenge of epidemic proportions — especially if you didn’t write it. The rewrite process can quickly become a never-ending nightmare. It’s a two-sided coin. On the one hand, rewriting “ideally” saves you time and money versus purchasing a custom solution. On the other hand, rewrites can be cumbersome and result in the kind of scope-creep that saps creativity and deflates morale.
In other words, there are a pros-and-cons to a rewrite. In fact, we cover a few of them below:
Pros of a Software Rewrite:
- You don’t have to purchase an entirely new solution
- You can create easier-to-read and thus, easier to modify software
- Rewriting is easier with modern agile frameworks like SCRUM
- A rewrite modernizes your software
Cons of a Software Rewrite:
- A good chance of scope creep occurring
- Can be more costly (in terms of time ROI) than purchasing a custom solution
- Can break dependencies
- May create more bugs and security problems
- Encompasses a TON of effort, which includes coding, documenting, QA, testing, and deployment
Should You Rewrite or Purchase New Software?
It’s a tough question. If you’re thinking about either solution, you face a common challenge. App maintenance can be expensive, coding issues may impede the adding of new features, and modern technologies may have made your tech stack obsolete. There are a million reasons to rewrite or buy new software. But, how do you know which is the right choice for your unique situation?
We can help. At Entrance, we provide our clients with a Build vs. Buy analysis of their current solution. If rewriting or rebuilding is ideal for you, we’ll help you create the right strategies to facilitate a seamless rewrite. You won’t have to struggle with sub-performing software while you wait for the rewrite to be finished. If buying a new solution is a smarter choice, we’ll recommend it — and we’ll even build the custom solution for you. Are you ready to explore the exciting functionalities of a custom solution? Contact us, and let’s talk about custom application development or application modernization today.