Why NASA's Code Doesn't Crash
Why NASA's Code Doesn't Crash
You’re typing away on your computer, minding your own business when your application freezes. There’s that moment of panic, maybe the software’s just being slow. But no!! Alas, your window unexpectedly closes, your application has crashed.
All of us have experienced this unfortunate event….unless you’re NASA.
NASA - or the American National Aeronautics and Space Administration for those who didn't know what it stood for - is responsible for small achievements like sending astronauts to the moon, putting robots on Mars, and generally keeping an eye on space.
They do really serious stuff where millions of dollars, hundreds of thousands of hours of work, and peoples lives are regularly put on the line. These are the types of scenarios where it’s critical that you’re not hampered by a bug in your code.
Just imagine the history of space exploration today if NASA had experienced the same bugs as the rest of us. We’d simply know less about the universe around us. Or imagine the human and financial consequences if a buggy line of code leads to a rocket launch failure. Considering the speed at which shuttles and satellites are launched, a millisecond blip could result in the spacecraft significantly veering off course - not something you want on a billion-dollar mission.
As Bill Pate, an engineer for NASA, summarised, “if the software isn’t perfect, some of the people we go to meetings with might die.” NASA software encounter on average 295 times fewer errors than commercial software of equivalent. In 1996, Fast Company reported that a 420,000 lines long software onboard the space shuttle had only encountered a total of 17 errors over its past 11 versions.
Let that sink in for a second. 17 errors over 11 versions.
That is an incredible development standard.
It hasn’t always been the case, however, and NASA has learned the hard and costly way about the importance of accurate codes. In 1962, the unmanned Mariner I exploded five minutes into its flight. Someone had omitted a hyphen when entering a line of handwritten mathematical code into a computer. Not only did it cost hundreds of millions, but at the heart of the Cold War and Space War with the USSR, it felt like a foreign affairs set back.
To avoid such expensive typos, NASA upped testing and created software solely to find bugs. In 2004, as it was preparing a mission to Mars, it launched its 'C' Global Surveyor (CGS) software which checks spacecraft software for errors at the speed of hundreds of thousands of lines within 25 minutes.
NASA isn’t just on point with its software, it is also generous with it. It has recently started sharing it with the general public, free of charge or copyright. Not only can we experience first hand the perfection of its code, but it can also be applied in domains as important as medicine and climate change.
But the rest of us reading this are probably not NASA (but if you are, oh hi. Huge, huge fans!), which means that your code, no matter how hard you work at it, sometimes crashes. That’s why you need BugSplat. We make reporting crashes easy and affordable. We record every crash as it happens, giving you instant access to in-depth crash data like symbolic call stacks, function names and line numbers, and a user description of the crash event.
Our crash recording tool is already used on more than 250+ million machines across the globe, with each user getting slightly closer to the NASA record with every report sent.
Resources
https://www.fastcompany.com/28121/they-write-right-stuff
https://www.NASA.gov/centers/ames/news/releases/2004/04_66AR.html