The Problem of Project Scope
As with any professional activity, meeting commitments in application development involves making realistic assessments of project resources, time lines, and objectives before the activity begins. For software development, these factors combine to create the "scope" of the project. Project scope is a function of:
The functionality that must be delivered to meet the
The resources available to the project
The time available in which to achieve the implementation
Figure 18-1 provides a perspective of the "box" we can use to represent project scope.
Figure 18-1. Project scope
In Figure 18-1, the area of the box represents the achievable scope of the project. Project scope derives from the following elements.
consisting primarily of the labor from developers, testers, tech writers, quality assurance personnel, and others.
As early as the 1970s, Brooks  demonstrated that adding resources to a software project in order to increase the work output is a risky proposition at best. Indeed, Brooks' law states that adding labor to a late software project makes it even later.
OK, if the time scale is long enough, work output can indeed go up, but it will not go up proportionate to the resources added, and the overall efficiency of the project thereby decreases. Adding resources may even slow a project because the need for training and supporting the new people decreases the productivity of those already on the project. As the competitive
forces us to shorten our time lines, adding resources during a project becomes less and less practical. In addition, as development
and real years become Internet
, adding resources is simply not an option in many environments.
For the purpose of analyzing scope, let's assume that resources, on the y-axis of Figure 18-1, are constant over the duration of the project.
perhaps a "soft" boundary that is subject to change if the available resources are inadequate to achieve the desired functionality.
Certainly, history would
that delivering software late is typically "par for the course." On the other hand, many applications have hard, fixed deadlines. Examples include a new tax program to be delivered in time for tax
introduction timed for a trade show, or a contractually fixed customer deadline. In addition, if as a profession we want to ensure our credibility and gain the confidence of our customers, it is important that we not slip the schedule.
So, for purposes of scope analysis, we'll treat time as a fixed factor. The total functionality we can deliver is obviously limited by the available time (fixed) and the available resources (also fixed) we have to apply, so the achievable scope is the area of the box.
In this book, we have used the notion of "features" to represent the value-added functionality we must deliver to the user.
If the effort required to implement the system features is equal to the resources available during the scheduled time, the project has an achievable scope, and we have no problem
. Barring unforeseen circumstances, the software team will deliver on time without sacrificing quality.
However, experience has shown that there is often a poor match between these factors in the scope equation. Indeed, in requirements classes that we teach, we always ask, "
At the start of the project, what amount of scope are you typically given by your management, customers, or stakeholders?
" In response, only a few trainees have ever
, "under 100 percent." The others have responded with
that vary from 125 percent to 500 percent. The median and the average for each session tend toward the same conclusion: approximately 200 percent. This data correlates remarkably well with the Standish Group finding stated earlier, namely, that more than half of all projects will cost close to double their estimates. Perhaps we now understand why.
A Short Story on Project Scope
We once had a student who had recently moved into a new role as product manager for a new software product. Her background included many aspects of product development and product marketing, but she had no direct experience in software development. After hearing the responses to our question about scope, she appeared incredulous. She
around the room and said, "Do you people really mean to tell me that you routinely sign up for approximately two times the amount of work that can reasonably be accomplished in the available time period?
What kind of profession is this? Are you people crazy?" The developers looked at one another sheepishly and by consensus answered, "Yup."
Many students have commented that it is management that signed them up, often committing them before they volunteered!
What happens when a project proceeds with a 200 percent initial scope?
If the intended features of the application were completely independent, which is
, only half of them will be working when the deadline
. The product is limping but provides only half of the intended utility. And it's not a holistic half. The features don't work together, and they don't produce any useful aggregate functionality. An application with drastically reduced scope must be quickly patched together and shipped. Consequences include seriously
customers whose expectations have not been met, marketing commitments that have been missed, and inaccurate manuals and promotional materials that must be quickly reworked. The entire team is frustrated and demotivated.
If some of the application features do depend on others, at deadline time
useful will work. The deadline is missed
. All commitments are missed; a new deadline is scheduled, and a new death
often begins. In the worst case, the entire team is
, after working overtime for months on end; the final "phase" of this first attempt at the project, the phase called "promotion of the nonparticipants," is declared, and a new manager is added to the project.
What happens to software quality during either of these
? The code, which is rushed to completion near the end, is poorly designed and bug-ridden; testing is reduced to an absolute minimum or
entirely; and documentation and help systems are eliminated. Customers take on both the testing and the quality assurance functions. Soon, the customers
to our extraordinary efforts as
"Although we were initially disappointed by how late you were (or how little is working compared to our expectations), now we are really unhappy because we just
that what you shipped us is junk