At Genuitec, we are very interested in the longevity of software tooling because it is critical for our customers’ success.  At its most basic level, software environment longevity is the ability to create a permanent archive of your complete software development environment coupled with the ability to reinstantiate the archive to enable future software maintenance with the same known-good environment.

A concrete example of longevity requirements can be seen in the airline industry.  For example, if an airplane has an embedded system with a fault, you must be able fix that issue in an exceedingly reliable manner.  Doing so requires you to have access to the environment used to initially develop the software because the inability to reproduce the exact known-good environment means that any maintenance work has a higher risk of introducing even more problems. That’s not a situation you want to be in when your software has peoples’ lives literally hanging in the balance.

Key requirements of any environment longevity solution:

  1. Development Stack Archival
    Development configurations must be archived for each software release and must include add-on software and dependent tools. The full suite of tools must be archived to ensure reproducibility of build artifacts when later working on the software maintenance.
  2. Source and Associated Configuration Archival
    Association of configuration and source definitions as part of a stack archive is critical to reconstituting the full environment used to develop software. Only tracking the tools, but not their configuration, requires a separate repository of configuration; which would introduce additional risk.
  3. Easy Reconstitution of Past Environments
    Facilitating a longevity environment not only necessitates archiving software but also ensuring that teams can easily access archived builds.  Easy access helps facilitate and ensure compliance as the longevity tooling becomes a key part of the business workflow.
  4. Offsite Archival of Stacks
    While we like to believe that all systems will continue to work for decades, reality dictates that we have a reliable way to ensure reconstitution of long term archives. Longevity tools must provide self-contained artifacts that can reconstitute the archived tools and configuration without requiring server infrastructure.
  5. Visibility into Archived Stacks
    As part of tracking and archiving tooling configurations and software, longevity mustsupport auditing and traceability for the archives. Whether from a compliance perspective, or to facilitate teams using previous archives, longevity systems must ensure easy access to archived stacks.
  6. Application of Patches to Archived Stacks
    Patching of components in archived stacks can be required as part of maintenance activities when issues in the embedded software are a result of the tooling used, not only the source itself.  When reconstituting a stack, it can be necessary to update a particular component to facilitate rectification of the issue being worked.

To Genuitec, longevity is synonymous with reproducibility and traceability. For longevity to be realized, not only must you ensure access to your development tool stacks from past years, but you must also be able to easily configure those stacks for use with any required software that was outside of your base development tooling. And, once all the tools are in place, you must finally be able to determine the precise set of source projects, branches, settings and configurations you used during the original development activities.

Some of our embedded systems customers must support the software they write today for 5 to 25 years or more.  No matter if you have a shorter or longer time horizon in your industry, your basic concerns remain the same because longevity is critical for all types of software development.

How do you address your software environment longevity requirements?

- Tim Webb

About the Blogger:

Tim is lead architect for SDC at Genuitec, where we think he is the very definition of awesome. When Tim sneezes- he leaks awesome. On one occasion he sneezed so hard, SDC was born. When he's not being awesome, he enjoys quiet picnics and long walks on the beach.

Related Posts

CodeMix – Better with You! Thanks to detailed feedback from our awesome users, our team has been hard at work adding stability, reliability and performance fixes, and enhancements, to CodeMix. Read on for the deets on what’s new in CodeMix over the last month.Editing & ValidationWhen editing TypeScript files, error markers were sometimes not cleared when the error was fi...
A Day with Dani: Eclipse Plugin for Awesome Worksp... DevStyle Rescued My Workspace!As a new developer working in Eclipse, nothing was worse than doing a project and looking at an outdated, plain workspace. It was boring, and took away from the excitement and learning these projects had to offer. This was an IDE I would be using almost every day, so when I learned about the DevStyle plugin for Eclipse...
Working with Java 9 in Eclipse Note: This blog was updated on October 11th, 2017 to reflect the release of Oxygen 1a which includes Java 9 support.The Java 9 GA release is just a few weeks old, and you can start developing with Java 9 in Eclipse, right now! All you need to do is download a suitable Oxygen 1a (4.7.1a) based distribution for both Java 9 and JUnit 5 support. Please...
Equifax Data Breach Advisory Many of you may have heard of the Equifax data breach, possibly affecting millions of consumers. Information accessed by hackers during the incident included Social Security numbers, personal details, driver’s license numbers, and even credit card numbers.Equifax has confirmed that the breach was made possible by a vulnerability in the Apache Strut...

Posted on Feb 27th 2013