Just Re-Write It

Why Software Versioning is Broken and you should Embracing Editions Over Iterations

Ok, let’s be real. We’ve been doing software development the wrong way for too long. The prevailing ideology that software should continuously evolve through version updates is fundamentally flawed. Let’s face it: at some point, most software needs a complete rewrite. The longer we cling to major versions, the next sprint, the next feature, the more we inflate support overhead, and new ideas and features become too tough to add. Instead, we should be thinking about rewrites as editions of software.

In most cases, when I see a software product beyond version 2, I immediately suspect it’s a tangled mess of spaghetti code in the background. Adding new features becomes a nightmare, and only the original co-founders or early developers truly understand what’s going on. Support likely suffers too, having been handled by a revolving door of personnel over the years.

Let’s talk about the word “re-write.” Business leaders often fear this term, seeing it as starting over and fearing the years of effort to get to the current point would be wasted. However, if you talk to the core team, they’ll probably tell you that your platform could be rewritten in a fraction of the time now that everyone understands how customers use the system, what they pay for, and where it breaks. The re-write will be faster because you have all the requirements clearly defined, and the support required to maintain it will be significantly lower. So, let’s get over the fear of the word “re-write” and instead call it an “edition.” Saying, “we’re working on the next edition of our software” feels more forward-looking and positive, doesn’t it?

Creating a new edition isn’t as hard as it might seem, and you don’t need to overthink it. Create a simple plan and start by feature-freezing your legacy edition and begin creating the next one. Motivate your team to be part of the ground floor of the new edition, rekindling the excitement and innovation your co-founders likely had during the early versions.

There are countless ways to make this transition smooth, from A/B testing to engaging early adopters. Funding the new edition can be straightforward by adding new features and offering the new edition at a slight price increase. Over time, you can transition old customers off the legacy platform by offering incentives, new features, or superior security.


So, it’s time for a paradigm shift in how we approach software development. Embracing the concept of editions over versions can lead to more innovative, efficient, and maintainable software. By rethinking our strategies and overcoming the fear of re-writes, we can create superior products that meet customer needs more effectively and reduce long-term support costs. Let’s make the smart move and start building the next edition of our software today.

Key Takeaways:

  • Simplify Complexity: Avoid the tangled mess of legacy code by starting fresh with new editions.
  • Accelerate Development: Leverage your team’s experience to build the next edition faster and better.
  • Enhance Innovation: Incorporate new ideas and features without being constrained by outdated frameworks.
  • Reduce Support Costs: Lower the total cost of ownership with more efficient, maintainable code.
  • Engage Your Team: Motivate your team by involving them in the exciting process of creating the next editions.

Leave a Reply

Your email address will not be published. Required fields are marked *