The latest episode of Software Engineering Radio has an interview with Hans-Joachim Popp of the German aerospace company DLR. A bug in the software embedded in a space probe could cost years of lost time and billions of dollars. These folks have to write solid code.
The interview gives some details of the unusual practices DLR uses to produce such high quality code. For one, Popp said that his company writes an average of 12 lines of test code for every line of production code. They also pair junior and senior developers. The junior developer writes all the code, and the senior developer picks it apart.
Such extreme attention to quality doesn’t come cheap. Popp said that they produce about 0.6 lines of (production?) code per hour.
This isn’t too far from my own experience. When stuff has to work in the dark, while it’s raining and the operator is using a flashlight to read a plastic cheat sheet, 10,000 mile from home, it really has to work. Not only do you write 10 lines of test code per line of production code, everything must be configurable. You cannot hard code any constants in your code. It all has to be in flash, accessible and changeable by the most rudimentary means from a remote system control that might have the equivalent of a 300 baud connection.
This is a really great post! I hope a lot of people listen.