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.
Figure 2-1. A closed water cycle
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 ...