Software projects can be managed in terms of four variables: time, scope, resources, and quality. Every project works under some combination of these variables. Even if they’re not measured directly, their interactions shape your project.
Imagine a water filtration plant on a space station, as shown in Figure 2-1. A reservoir of unpotable water sits on one side of the plant, and potable water flows to the station inhabitants from the other side. In this closed system, water re-enters the reservoir very quickly. The plant has a control panel with four dials, labeled Time, Resources, Scope, and Quality. Each dial controls an aspect of the filtration process.
This image can also represent software development, as shown in Figure 2-2. A customer makes a request; this unfinished work, or business problem, is the unpotable water supply. The request is implemented by developers; this is the filtration process. The finished request is delivered to the customer in the form of a code solution; this is the potable water. Based on the results, the customer makes another request and the cycle continues. The water represents the software itself, continually being refined in a tight loop.
The Time dial adjusts the amount of time spent filtering water. This is a limiting factor. If the other dials remain constant, running the plant for a ...