In the area of software development, data processing management often focuses more on coding techniques and system architecture than on how to manage the development. In recent years, ``structured programming'' and ``structured analysis'' have received more attention than the techniques software managers employ to manage. Moreover, these coding and architectural considerations are often advanced as the key to a smooth running, well managed project. This paper documents a philosophy for software development and the tools used to support it. Those management techniques deal with quantifying such abstract terms as ``productivity,'' ``performance,'' and ``progress,'' and with measuring these quantities and applying management controls to maximize them. The paper also documents the application of these techniques on a major software development effort.