Long-Term Maintainability

Over the last few decades, software has changed. It’s become more complex and evolves at rapid pace. In the 1990s, it was easier for a single team to design and manage an entire software system and support it for 10-20 years. Now, the cost and complexity of maintaining such systems are growing over time—and will continue to grow.

In most cases, it isn't practical for a single team to maintain device firmware anymore. Many modern devices contain third-party open source components, often ‘frozen’ to specific versions when the device is released. Over time, the cost of maintaining these old versions increases exponentially.

Long-Term Maintainability stands in contrast to long-term support (LTS). In the traditional LTS model, engineers make targeted fixes to an otherwise static codebase. This allows for a reasonably simple QA process because the list of changes to validate is very small. However, the in-house code increasingly diverges from the upstream project, making it less likely that security fixes from upstream will be usable without significant effort to rewrite them.

Why a ‘ship and remember’ approach is critical to a successful, long-term software project

Codethink’s approach to Long-Term Maintainability means you can continually update the software over its lifetime, introducing new developments to allow your devices to always work reliably.

The trade-off is that this comes with a cost. Long-Term Maintainability requires you to design systems that can continually be upgraded to the latest version available, with a robust QA process to validate ongoing changes.

Nevertheless, this approach is more cost-effective and secure long-term, as it allows you to be as close to upstream as possible.

Here are some of the benefits of adopting Long-Term Maintainability for your software project:

  • Protection against new and emerging vulnerabilities
  • Performance enhancements and advanced functionality
  • Reduced maintenance costs and improved software life
  • Increased user trust

How will Codethink help?

Many organisations will need help adapting to the new state of the art to stay competitive and grow their business. Long-Term Maintainability is only possible once you can fully trust your build pipeline, automated tests and QA process, device update system, and integration process for third-party software.

Codethink will support you by working with the entire ecosystem, implementing the fundamental concepts of Long-Term Maintainability throughout your organisation, continuously finding and fixing issues, and confidently applying them to your products.

To help you achieve Long-Term Maintainability, we will provide:

  • Maintainable software system architecture consulting
  • Component maintenance support
  • Build, integration, and QA pipeline consulting
  • DevOps services and infrastructure setup (to support the above points)

Related content

We’ve published a number of recent articles relating to Long-Term Maintainability which you can read here:

If you would like to learn more about how Codethink can support your Long-Term Maintainability strategy, get in touch via the ‘Contact Us’ page.

Get in touch to find out how Codethink can help you

sales@codethink.co.uk +44 161 660 9930

Contact us