Three constraints dominate discussions about controlling projects — time, cost and scope. I’d like to add people and quality to that list. Many managers try to control all five constraints and end up controlling none.
Common wisdom says you have to let at least one constraint float free if you want to tightly control the others. So which constraint is the best choice to let float? Let’s see.
I see many companies largely ignore project cost. They seem to feel that they have resources available so they may as well apply them to project X. Only when someone notices that the project has dragged on too long does cost become an issue. Too late!
Cost should always be calculated up front. It’s best to look at minimum, targeted and maximum (reasonable) cost. No company has unlimited funds to throw at any project. Cost is always an issue and should not be allowed to float (too much).
Time is the constraint that seems to be fixed most often — and justifiably so. There are deadlines imposed by customers, vendors, trade shows, regulators, competitors, etc. Get used to it.
If you value your credibility, don’t let time float. Time is the easiest constraint to control; simply employ time-boxes and never break them.
Scope encompasses all the features, functions and attributes of the software. We spend much of our time analyzing and planning scope. Many projects try to rigidly control scope at the expense of time and cost — and quality.
Too many of us get emotionally attached to specific software behaviors and are willing to sacrifice all other constraints to get the behavior we want. Bad idea! Scope is the hardest constraint to control but it is not difficult to float predictably.
The biggest expense of almost every software project is people. But the topic of people as a constraint is about more than just cost. People aren’t merely ‘resources’ that you can move around from project to project without regard to skill sets, career goals or labor rates. Assign the wrong people to a project and you increase the failure risk, cost overrun risk, and quality risk.
In the short run, you’ve got little flexibility with people. In the long run, many possibilities exist. How much time do you have?
I hear many managers claim that quality is not a variable. Quality must be kept at a consistent level. Right. So the reason we have so much buggy, crappy, ugly software out there is that the quality standard is too low!
In reality, quality always suffers when teams are pressed for time, money, people, or scope. Quality should be fixed at a high level (assuming you know how to measure it). Quality is the easiest constraint to float and the hardest to measure. Don’t give in to the temptation to cut corners on quality. It will come back to haunt you.
Which constraint would you pick?
- Cost – Fiscal discipline is good. Blowing budgets is not.
- Time -We live by the clock and the calendar. Time is not flexible.
- People – Slow to change.
- Quality – Don’t even think about it!
- Scope – Define it; prioritize it; float it.
Make sense? If so, try an agile software development approach like Scrum or XP. They are optimized to manage cost, time, people and quality while letting scope float.
If you’re stuck in a waterfall world, select an iterative waterfall model and minimize the time devoted to requirements (scope).
Don’t wrap a straitjacket around your project!