Would Your Code Still Work After 37 Years?

How many of the electronic systems produced today would still work in 37 years' time?

In 2017, NASA reported the successful reactivation of the Voyager 1 spacecraft's thrusters, which had not been in use for 37 years at the time. The thrusters of the spacecraft, which was over 13 billion miles from earth at that time, moving at a speed of over 38,000 miles per hour, were put back into operation for the first time after 37 years of inactivity and have actually proved to be still functional.

Example: Voyager 1

Looking Back

Figure 1 – Mission Logo of the Voyager program [1]

Voyager 1, NASA’s farthest and fastest spacecraft, is the only human-made object in interstellar space, the environment between the stars.

The spacecraft, which has been flying for 40 years, relies on small thrusters that fire in tiny pulses, to subtly rotate the spacecraft so that its antenna points back to earth. The attitude control thrusters have been used regularly, but NASA realized that after four decades they weren’t working as they used to. With that hardware in an unreliable state, they needed to come up with a solution. NASA decided that attempting to wake up a set of older thrusters that hadn’t been used since Voyager 1 was still making its way around some of our nearby planets was the best solution for success.

Retro-Engineering

Reactivating Old Systems

In order to pull off this seemingly miraculous feat, the team had to dig through a huge archive of old Voyager data for the information they needed to test the feasibility of firing up the thrusters. After studying the code, which was written in “an outdated assembler language,” the team decided it was worth a shot, and gave the thrusters a wake-up call.

On Nov. 28, 2017, Voyager engineers fired up the four backup thrusters for the first time and tested their ability to orient the spacecraft using short 10-millisecond pulses. The team then waited eagerly as the test results travelled through space, taking over 19 hours to arrive back on Earth. With much celebration, on Wednesday, Nov. 29, the NASA team learned the thrusters worked perfectly, and just as well as the attitude control thrusters.

“With these thrusters that are still functional after 37 years without use, we will be able to extend the life of the Voyager 1 spacecraft by two to three years,” Suzanne Dodd, project manager for Voyager at NASA’s Jet Propulsion Laboratory, Pasadena, California. [2]

The backup thrusters on Voyager 1 worked so well, the plan is to conduct a similar migration over to the backup thrusters on Voyager 2 once it’s attitude control thrusters also start to degrade.

Software Reliability

Can We Achieve the Same Level of Confidence in Our Software Systems?

Looking towards modern software development and the systems we build today, achieving software of such reliability and confidence may seem infeasible. As a growing part of companies’ assets, software applications need more than ever a clear vision for relevant decisions. The software industry today faces two major challenges in this area:

  • Acquiring more maturity in their projects’ management
  • Turning data from a plethora of traditional measure and evaluation tools into relevant and actionable indicators

Today, various and effective software and systems engineering tools are widely used but they don’t really share and aggregate results. Typically, project stakeholders lack the overall visibility required to take critical decisions essential to project success:

Figure 2 – Magic Triangle
  • On-time delivery
  • Work product quality
  • Cost control and optimization as well as resources management

This software world seems a long way away from the world of the Voyager probe, where a significant amount of manual analysis has been done on the source code, both during initial development, and through its life as incremental updates have been made. However, the recent growth of software analytics and dashboard tools are enabling software developers to have a similar level of confidence in the source code that is being developed.

As an example, if we take a look at tools like VectorCAST/Analytics or Squore, they provide an easy to understand web-based dashboard view of software code quality and test completeness metrics, enabling users to identify trends in a single codebase or compare metrics between multiple codebases by providing:

  • Real-time access to quality metrics and testing completeness metrics
  • User-defined connectors for third-party data
  • Customizable dashboards based on an organization’s goals

Business Intelligence

Using Data Effectively

Figure 3 – Application Intelligence Workflow

While on the Voyager systems, the software was small enough to thoroughly understand manually by humans, in the modern systems, for groups that want to improve quality, the hardest question to answer often is: “Where do we start?”

An analytics tool helps answer that question by making it easy to gather and publish key, “Where are we today?” quality metrics. We can use a business intelligence workflow into software development using an analytics tool. This is also known as application intelligence workflow.

Refactoring

Effectively Avoid Technical Debts

The application intelligence workflow could also be used on legacy systems with focusing efforts on minimizing technical debt. Technical debt indicators are particularly appropriate when developing an understanding of your software’s quality.

The term was initially invented by Ward Cunningham in the 90′s and relates to those tasks (feature, bug fixing, code refactoring, architecture optimizing, etc.) that a development team would -whether willingly or not- delay to a later iteration or product release. It immediately provides the team with a breath of fresh air, but as with any other borrowing, the longer you take to repay the debt, the higher the interest rate.

 

Figure 4 – Management of Technical Debts

In other words, if a feature costs 100 units to be developed today, it will cost 100+ units tomorrow, higher the week after and so on. Thus, a high debt can directly impact the innovation and competitiveness of a company.

In order to avoid this loss of productivity and reactivity, an analytics tool can be configured to provide technical debt indicators, and can be used to develop action plans for refactoring priorities for a quick and cost-effective reduction of the debt.

Conclusion

The Voyager space program is one of NASA’s (and for that matter the world’s) most successful space stories. The probes have been in space for over 40 years, and are expected to continue to function and receive capability upgrades for another decade or so. The systems on Voyager have and will continue to receive many software updates as new functionalities are introduced to cater for the new environments the space probes are being exposed to.

While the software we as individuals work with today might not have such a glorious or illustrious story to them, the principles of what are applied to the Voyager program can easily be applied to our significantly larger projects in a much more automated and cost-effective way through the use of analytics tools.

--------------------

References:

[1] Wikipedia (2019): Mission logo for Voyager Program, [online] https://de.wikipedia.org/wiki/Datei:Voyager_-_mission_logo.png

[2] Jet Propulsion Laboratory, Pasadena, California: Voyager 1 Fires Up Thrusters After 37 Years.  December 01, 2017. https://www.jpl.nasa.gov/news/news.php?feature=7014