Fast Company has a great article about the team that builds the real-time mission control software that runs Space Shuttle flights. The team, the mission, and the statistics are all over the top; as the article points out, very few software projects carry the dreams of a nation when they run. There are lesson here for the rest of us, and this software team would have us understand that improvement is more about the process than the technology. To be fair, the software we write every day isn't (ahem) rocket science in the same way that Shuttle software needs to be, and we don't have some of the advantages that this team has:
- A large staff. This team is comprised of 260 men and women.
- Mature code base. This software has been in development for over 20 years. As long as people have been paying attention, there are a lot of lessons that should have been learned by now.
- Stable work force. Many of these engineers have been in place for a good portion of the Shuttle's life cycle.
- Best of the best. Let's face it - few of us can compete with the prestige of working on the Shuttle program
Nevertheless, there are some ideas in here we should consider carefully in terms of how and where they apply to our work. The two themes that keep popping up in this article are process and culture.
The process in this group is tightly-controllled, double-checked, documented, reviewed, and revised. These guys understand implicitly what it means to go off-script, and they don't let it happen often. I've always championed the use of the right amount of process for the job, and in this case, the job calls for planting a handful of astronauts on the top of a large, pointy bomb, lighting the bomb in such a fashion that it squirts into the upper reaches of the atmosphere at a speed approaching 20,000 mph, and then landing the astronauts back to earth aboard the spent bomb. This takes a sophisticated process: there's no service pack in space.
The culture is also striking. Unlike the go-go silicon valley "cowboy" coders, these developers are methodical, measured, and deliberate. They work regular hours and have lives outside work. In a word, they're boring. This, as it turns out, is comforting to the astronauts, who would much rather get their thrills from the great views in space than from "excitement" in their mission control software. This team understands that the mission is the important thing, and the software exists only to support the mission.
Think about your development shop a bit, and then read They Write the Right Stuff.