Ask HN: How do SpaceX/NASA/other maintain high code quality?
What is the state of the art test frameworks and/or patterns that mission critical companies follow nowadays? It seems that SpaceX uses C++ for most everything, but I haven't been able to find anything about how they or other modern mission-critical software companies maintain, what I assume is, well-tested, near bug-free code?
12 comments
[ 2.9 ms ] story [ 40.6 ms ] thread"The primary purpose of the standard is to help Java programmers reduce the probability of run-time errors in their programs."
In more specific, I'd say 80% of the success comes from fairly rigid processes, including the coding standards and testing methodology. Like with C/C++ standards, you'll find a lot of restrictions on what you can use in the language, how you can use it etc. Here is the JPL's C standards, around flight and embedded type projects (they happen to publish most of their standards) http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf
And traditionally there has been significant separation of teams, e.g. System Engineering doing requirements analysis and development, Software Engineers building the software and Testing Engineers writing software and procedures to make sure software hits all the requirements and it doesn't fail.
At least from what I know and have experienced you also will not see flight or "critical" software changed and flown (or actively utilized) within any short period of time. As time is a major factor in the testing/simulation regime to make sure things work properly.
My guess is that even at SpaceX, critical software components in flight today have been completed and tested for months and months before it hits a real flight. Doesn't mean they may not fly it in a passive mode to see what decisions it would make, but it wouldn't be in control. I am sure non-critical components and ground based software has a slightly less rigid process, but probably still fairly tough.
http://space.stackexchange.com/questions/9243/what-computer-...
The above link references the AMA done by SpaceX engineers too: https://www.reddit.com/comments/1853ap