One of the hardest parts of software development is managing stakeholder expectations.
Of course, everyone wants as much as they can get, as fast as possible, for the lowest price. Why wouldn’t you?
The problem is that most programmers get frustrated when a stakeholder asks for too much too fast, and don’t know how to push back. Some of us aren’t exactly social butterflies. That’s why we borrowed a project management term called the triple constraint.
This is usually explained by drawing a triangle and writing one word at each corner: “scope”, “cost” and “time.” These corners represent what will be included in the project, how much it will cost and how long it will take, respectively.
With the triple constraint, you can’t change one corner without affecting the others. If you add features, it’s either going to cost more or take more time. If you want to get it done faster, you have to remove features or pay more. It’s a handy way to explain that you can’t get something for nothing. The model, of course, can be applied to many different industries.
Another popular way of using the triple constraint is to say “Among the three options of fast, good and cheap, you can choose two.” If you want it fast and good, it’s not going to be cheap. If you want it cheap and fast, it’s probably not going to be very good.
This not only helps the developer set guidelines for what’s possible, it helps stakeholders understand what their options are. Usually, after I explain this to a client, they’re happy to say something like “Well we have to get this done in two months and this is our budget, so what features can we cut?”