Why Software Improvements Become More Expensive Over Time

In this article, we will explain why modifying software becomes increasingly expensive over time, a crucial consideration for projects that need continuous improvements to meet evolving business needs over several years.

For VC-backed products this means less progress, less traction and lower valuation during fundraising. For self-funded companies this means wasting your hard-earned money.

Here are some illustrations of the problem.

 
 
 
 

In the initial months of your product's lifecycle, the complexity of your software remains low due to the limited number of features. But even in these early stages, developers often go back to existing code to rewrite it for clarity. This process is known as 'refactoring' and is considered a good practice.

However, there are bad reasons for revisiting previously working. These include:

  • Unsalvageable code (complete rewrites)

  • Accidentally breaking existing functionality (regressions)

During the early stages of a project, these issues are usually not significant, but as time progresses, their importance and impact tend to grow considerably. 

 

As your business needs evolve over time, you'll inevitably need to add or alter existing functionality. Unfortunately, even the most efficiently managed teams will face a decline in productivity during this stage.

In this example, while implementing features 7 to 12, the team had to go back and adjust about 9 previously working features, an increase from 5 in the previous year. Although this might not seem ideal, it actually represents the average ideal scenario.

However, in a poorly managed project, the team might find themselves needing to revisit nearly every existing feature whenever a new one is added.

In this example, while implementing features 7 to 12, a poorly managed team had to revisit 24 previously working features, an increase from 5 in the previous year. Surprisingly, this situation occurs quite frequently, particularly in projects with inexperienced developers

A 2x increase in effort YoY is fairly reasonable and would require roughly doubling your engineering team to maintain your overall speed. Anything greater a 2x YoY increment should be a reason for concern. There will be a point in which hiring more people will not be cost-effective anymore. But more on that later!

The Takeaway

The key lesson is that over time, the effort needed to develop a feature will depend not just on the feature itself, but also on the quantity, quality and complexity of the existing features, leading to progressively higher costs in software development as it evolves.

Previous
Previous

When Corporate Greed Jeopardizes National Security