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

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...
Building Applications with Angular Material Angular Material is a set of high-quality UI components developed by the Angular team, based on the Google Material design specification. These components help us to build applications with an attractive, yet familiar UI, giving users a consistent experience across devices.In this Angular tutorial, you will learn how to set up material design in yo...
Realtime Server Monitoring App with Angular 4 , No... This article will show you how to build a very simple monitor that allows you to observe some OS parameters, such as free memory available. We will be using Node.js, Angular 4, and Chart.js - and all you need is Angular IDE.We will be creating two applications; the first is a Node application that will monitor the OS parameters and send them via we...

Posted on Feb 27th 2013