In order to achieve success, real-world software projects require an incredibly complex web of both sequential and parallel steps. As the scale of the project increases, more overhead steps must be included just to manage the complexity of this web.
All project processes consist of productive activities and overhead activities.
Productive activities result in tangible progress toward the end product. For software efforts, these activities include prototyping, modeling, coding, integration, debugging, and user documentation.
Overhead activities have an intangible impact on the end product. They include plan preparation, requirements elicitation and management, documentation, progress monitoring, ...