Each error was treated as a red flag pointing to a possible problem in the process itself, which could have ramifications for mission-critical aspects of the software down the road. But over time we've moved to more measurements earlier and earlier in the life cycle. Under the current system, every step is measured and analyzed. For example, the team measured how many hours were spent preparing for inspection sessions and then correlated the time spent to errors caught. That analysis helped the team determine that at least three hours of prep time and two days' notice prior to inspection would help increase the early detection of errors.
Code writers on the front lines are responsible for establishing their own quality metrics.
With the technical line people determining and monitoring their own measurements, fewer problems arise, says Keller. Peer pressure and management review help ensure that accurate and meaningful metrics are maintained. As a counterweight to the increasing empowerment of line workers, the shuttle-software project also has an elaborate management structure that cuts vertically and horizontally, like densely woven fabric. The boards, which are under Keller's direction, provide project-management oversight of the costs and risks associated with each change to the flight software. There are just too many irons in the fire, and we needed to evaluate tradeoffs for the good of the entire project.