Software Is a Depreciating Asset: Why Your Software Is Never "Done"

Introduction

If you’ve ever been part of a software project, you’ve likely encountered the expectation that it will be “done” one day. It’s a common misconception I’ve seen time and again—almost as if people believe that, because software is digital and doesn’t wear out like physical things, it will last forever. Unlike buildings or bridges, software doesn’t face rust, cracks, or physical decay. But that doesn’t make it immune to aging. Instead, it faces a whole host of challenges, often hidden, that make its upkeep even more complex.

Software is different. It’s not a static asset that holds its value over time. It’s a living, breathing entity that requires continuous care and feeding. Left untended, it doesn’t just stop growing; it begins to decay. That’s why I often say:

Software is a depreciating asset.

Let’s unpack that statement and highlight the risks of neglecting software maintenance, and provide actionable strategies for leaders to address this reality.

 

Why Software Is Never Done

The Forever Moving Target

Modern software exists in a world of constant change. User demands shift, market conditions evolve, and businesses need to adapt to stay competitive. These forces mean that the workflows and features of your software must continually evolve.

Imagine this: A financial firm develops a portal to display client financial data. Initially, they build it with a scrappy team, and it works well enough that they decide to ramp the team down and let the system coast. Years later, a strategic opportunity arises to expand into a new market, and the portal is critical to the effort.

The business needs just “a little more” functionality to seize the moment. But the portal’s frontend was built with Angular, and it’s now several versions out of date. The new team is forced to spend months upgrading the app before they can even start building the required features. By the time they’re ready, their competitors have already entered the market, and the business misses its opportunity.
The lesson? Neglecting software maintenance creates friction that can cost businesses their agility and market advantage.

The Interconnected Nature of Software

Modern software doesn’t operate in isolation. It depends on a complex web of libraries, frameworks, APIs, and infrastructure. Each of these dependencies introduces potential risks, as they too require regular updates and maintenance.

Consider the case of Log4j, a widely used logging library. When a critical vulnerability was discovered, companies scrambled to patch their systems. Those who had been proactively maintaining their dependencies were able to act quickly. But organizations that had deferred updates faced a nightmare. Outdated systems required significant effort just to identify where Log4j was used, let alone patch it.

Proactive maintenance may seem like a cost today, but it’s nothing compared to the expense of firefighting when a crisis hits.

Knowledge Depreciation

Software doesn’t just depreciate because of external factors. It also loses value when institutional knowledge fades. Even the best documentation can’t fully replace the insights of an active, experienced team.

Imagine this: A business needs to modify an older system to support a new product line. The original developers have long since moved on, and while the remaining documentation is extensive, critical sections are outdated or incomplete. This leads to confusion about how the system was originally designed to operate. Rebuilding the necessary knowledge takes weeks—or even months—delaying the initiative, frustrating stakeholders, and eroding their trust in the organization’s ability to deliver.

The solution? Assign clear ownership of systems, ensuring someone is accountable for understanding and maintaining them as they age. Don’t let older systems fall off the radar—invest in even minor, incremental updates to keep knowledge fresh and alive. Proactive steps like these help ensure your systems remain adaptable, reducing delays and maintaining stakeholder confidence.

 

Quantifying the Value of Maintenance

One of the biggest challenges for leaders is justifying the cost of maintenance, which often doesn’t produce visible results. Here’s how to make the case:

The Cost of Neglect

Imagine a retail company with an eCommerce platform that generates $10 million annually in revenue. To support and grow this system, the company should allocate $1 million per year as its development budget—a typical 10% investment relative to revenue for a critical software platform.

Out of that budget, industry best practices suggest dedicating 20–30% to maintenance activities, such as dependency updates, technical debt repayment, and security patching. This means the company should be spending about $200,000–$300,000 per year on proactive maintenance to keep the system modern, secure, and adaptable.

However, in an effort to save costs, the company defers maintenance entirely for five years, avoiding the $200,000 annual expense, saving $1 million. Then, a $5 million/year market opportunity arises. Unfortunately, the outdated platform needs 12 months of updates and now $1.5 million to modernize before building new features, delaying the launch by 18 months. The impact:

  • Lost opportunity cost: $7.5 million (1.5 years of missed revenue).
  • Total cost: $7.5 million (lost revenue) + $1.5 million (update costs) = $9 million.

By investing $200,000 annually in proactive maintenance, the platform stays up to date. When the opportunity arises, the company launches in 6 months, capturing 1.5 years of revenue ($7.5 million) without delays. 

A Simple Formula

To estimate maintenance needs, follow this straightforward approach:

  1. Baseline Effort: List all your dependencies and estimate the annual hours required to maintain each one. This includes updates, testing, and integration.
  2. Risk Assessment: Assign weights to dependencies based on their criticality and multiple by the baseline effort to get the risk adjusted effort. High, medium and low risk with 1.5, 1.2 and 1 respectfully is generally accepted.
  3. Broader Maintenance Needs: Include a fixed estimate for overarching efforts, such as infrastructure upgrades, security audits, and technical debt remediation.

Total Maintenance Cost = Risk Adjusted Effort + Broader Needs

By breaking it into Baseline Effort, Risk Adjustment, and Broader Needs, it helps leaders understand the effort required to keep systems modern, secure, and ready for future growth.

 

Conclusion

Software is a depreciating asset. It requires continuous investment to remain valuable, secure, and adaptable. Leaders who embrace this reality position their organizations for long-term success. Those who neglect it risk losing their agility, competitive advantage, and reputation.

The question isn’t whether to invest in maintenance—it’s how much and how often. Start now, and you’ll thank yourself later when your business is ready to seize the next big opportunity.


Untitled design (39)

Author Bios

Steven Zgaljic is the Chief Technology Officer at Jahnel Group, Inc., a custom software development firm in Schenectady, NY. At Jahnel Group, we're passionate about building amazing software that drives businesses forward. We're not just a company - we're a community of rockstar developers who love what we do. From the moment you walk through our door, you'll feel like part of the family. To learn more about Jahnel Group's services, visit jahnelgroup.com or contact Jon Keller at jkeller@jahnelgroup.com

Unlock Your Future!

Send us a message