Their quarters are a study in white-collar pedestrian. The most striking thing is how ordinary they look. Other than the occasional bit of memorabilia, you could be in the offices of any small company or government agency. Everyone has his or her own small office, and the offices have desks, PCs, and sparse personal artifacts. People wear moderately dressy clothes to work, neat but nothing flashy, certainly nothing grungy.
It’s strictly an 8-to-5 kind of place — there are late nights, but they’re the exception. The programmers are intense, but low-key…They’re adults, with spouses and kids and lives beyond their…software program.
Does this sound like your company? Would you want to work at a place like this?
This software never crashes. It never needs to be re-booted. This software is bug-free. It is perfect, as perfect as human beings have achieved. Consider these stats : the last three versions of the program — each 420,000 lines long-had just one error each. The last 11 versions of this software had a total of 17 errors. Commercial programs of equivalent complexity would have 5,000 errors.
These are the 260 men and women of the “on-board shuttle group” who develop the software that runs NASA’s space shuttles. You can read more about in They Write the Right Stuff.
Some other things about who they are, their practices and motivation:
- “What’s going on here is the kind of nuts-and-bolts work that defines the drive for group perfection — a drive that is aggressively intolerant of ego-driven hotshots. In the shuttle group’s culture, there are no superstar programmers. The whole approach to developing software is intentionally designed not to rely on any particular person.”
- “People have to channel their creativity into changing the process,” says Keller, “not changing the software.”
- Formalized process based on four propositions:
- “The product is only as good as the plan for the product”
- “The best teamwork is a healthy rivalry”
- “The database is the software base”
- “Don’t just fix the mistakes — fix whatever permitted the mistake in the first place.”
- “If the software isn’t perfect, some of the people we go to meetings with might die.”
Granted, this is a special case (as the article points out, they have one product, one customer, and a large budget). However, the techniques that they use are not exotic:
The most important things the shuttle group does — carefully planning the software in advance, writing no code until the design is complete, making no changes without supporting blueprints, keeping a completely accurate record of the code — are not expensive. The process isn’t even rocket science. Its standard practice in almost every engineering discipline except software engineering.
Their error rate and quality is something for all programmers to strive for. And by applying the same basics that they do, it will not be impossible to replicate.