JSR 385: Learning from the 125 Million Dollar Mars Climate Orbiter Mistake

Filip Van Laenen

Short workshop - in English

In 1999, NASA lost the $125 million Mars Climate Orbiter as it went into orbital insertion. Due to a mismatch between US customary and SI units of measurements in one of the APIs, the spacecraft came to close to the planet, passed through the upper atmosphere and disintegrated. Sadly, this hasn’t been the only instance where a mismatch between units of measurements had catastrophic consequences, but it’s certainly one of the most spectacular and expensive ones.

How could this happen? The bad news is: if you use primitive types to handle quantities in your code, due to that very same practice. At best, you’ve codified the unit in the name of the variable or the database field, e.g. calling it lengthInMetres. Otherwise, you’re only relying on convention, just like Lockheed Martin and NASA did.

Join this workshop to learn how JSR 385 can help you avoid $125 million mistakes, and discover the immeasurable world of dimensions, units and quantities.

Source code for the exercises during the workshop can be found at https://github.com/filipvanlaenen/booster2019, and the slides are available at https://www.slideshare.net/filipvanlaenen/how-jsr-385-could-have-saved-the-mars-climate-orbiter-138213660.

Primarily for: Developers, Architects

Participant requirements: A laptop with Java, Maven, Git and their favourite Java IDE installed on it.