Software has become a major cost, schedule, and performance driver of virtually all US DoD weapons, command-and-control, and information systems. It has become alarmingly apparent to DoD executives and the US Congress that the software tail wags the system dog. When software delays the fielding of a major system, the costs can become enormous. These problems are not unique to defense systems. The Denver Airport Baggage Handling System and the English Channel Tunnel are just a few of the systems hit with substantial economic consequences attributable to problems in developing large-scale software. Management of system development has been found to be a key determinant of cost. Although this article draws on the author's experiences in the defense industry, it presents a distillation of industry-wide techniques for managing successful large-scale software projects. The practices described are drawn from the crucible of successful real-world projects. They are intended as a set of management practices to prevent high inherent complexity from growing into unmanageable chaos. The nine practices described are not exotic or glamorous. Ironically, the techniques that really seem to work in managing high-tech software are low-tech.