The software development process is by nature more fluid and unstructured than many other kinds of product development processes. Additionally, software project requirements tend to be general and highly volatile, leading-in the absence of project management controls-to schedule delays and cost overruns. This article urges software developers to pay more attention to the project management fundamentals. It is especially important to establish firm requirements early in the process, to monitor the progress of code functionality, and to have a robust testing phase. Since most problems occur between integration of software modules and system tests, extra consideration should be given to integration and interface issues.