Software stakeholdersthe clients, management,
and developerswant predictable operations. A
fair percentage of software organizations are now
achieving this goal. They are an existence proof,
as the scientists say, that orderly software development
is within reach. That is not to say that reaching
it is easy, only that it is possible.
What do we mean by predictable? We mean that a project
organization at a certain level of productivity
can accomplish the required work within a planned
time frame, by expending a planned amount of
effort. We mean that the result of the work,
the product, will attain the planned level of reliability.
These five factors (shown in italics) can be measured
and are, therefore, metrics. It is evident
that measurement stands astride the path to predictability.
That path in software development
is called a process. In some organizations, the process
may be the result of careful thought. In other organizations,
that process may merely have grown like a weed: "It's
the way we do things around here." In either
case, for the path to be predictable, the organization
has to be able to repeat the process. Thus, metrics
are needed to measure the process and make its repetition
predictable.
The prediction, then, is based on the metrics. Management
has to allot the work (measured by a metric) in relation
to the resources available (measured by metrics).
The staff wants to keep the work within the limits
of its capacity (another metric) because then staff
members can plan to have a life outside of work. The
client wants a predictable outcome because it has
to fit the outcome into its own plans. To be successful,
software development has to integrate metrics with
process. That integration is the intelligence behind
successful software management.