You’ve probably heard this before: “Good, fast, cheap. Pick two.”
This principle has been called the Triangle of Expectations, the Unattainable Triangle, the Triple Constraint, and the Iron Triangle. Whatever you call it, it’s a model of the constraints of project management and the idea is that projects are completed under three constraints: scope, time, and cost. Changes in one constraint directly create changes in other constraints, otherwise quality, which is at the heart of the triangle, will suffer.
This model can be applied to just about anything. For our purposes, we’re going to apply it to the context of web design and development.
Scope, time, and budget = quality
The principle behind the Iron Triangle is that the quality of a project is constrained by its scope, timeline, and budget; any changes in any one of those constraints will directly affect the others. For example, your business website can be designed and built faster by cutting scope (features) or increasing the budget. Alternatively, increasing the scope (adding features or complexity) will very likely require increases in budget and timeline (schedule). No matter how you affect any one constraint, if you don’t adjust the others, the end product - your business website - will be compromised
Good, fast, cheap = oversimplification
For better or worse, the phrase “Good, fast, cheap” has become an oversimplification of the Iron Triangle. This oversimplification has caused issues and misunderstanding of the Iron Triangle that make many question whether “good, fast, cheap” is just BS and actually attainable. So, let’s break it down:
Fast. Everyone these days seems to want things as fast as possible. But like “good”, speed is relative. What’s fast to me may be as slow as molasses in January to you. It’s tempting to throw resources (i.e. bodies and brains) to a project to make it go faster. It seems logical, right? Not so fast. Brooks’ law tells us otherwise. This little known law states “adding manpower to a late software project makes it later”. Okay, so it’s a gross oversimplification bot nonetheless applicable when it comes to web design and development. When adding people, for example, we have to consider ramp up time, communication overhead, and the fact that there are some tasks that just can’t be broken up to be addressed by multiple people.
Cheap. Budgets seem to get tighter all the time while the expectation of each dollar spent continues to rise. I can certainly understand being budget-conscious. The problem arises though when an expectation for innovation and/or complexity comes into play. Doing things that have never been done before or doing things that naturally take extra time will quickly and almost always increase the price of a website project. Certainly if you’re not looking for fancy features or something 100% brand new, this becomes less of an issue.
Good. If we take a look back at the Iron Triangle, scope and quality have been merged into one single aspect – “good”. This is a problem because the scope defines the features of your website and quality is the effectiveness or merit of the site. But beyond these technicalities, let’s be real – everyone wants a “good” website. Moreover, no one wants to ever compromise on “good” and, for better or worse, “good” is 100% subjective.
Do website projects really work this way?
Well, what doesn’t really work is the idea of “good, fast, cheap.”
As mentioned previously, no one really wants to compromise on “good”. So in the realm of “good, fast, cheap” few, if any, people are ever going to not choose good. They’ll choose good and fast or good and cheap. In other words, they’re always going to want quality. And again, quality is subjective.
The people who claim that the “good, fast, cheap” is attainable are essentially lying to themselves and others. And worse, they’re often the ones that end up shouldering the costs. Those costs come in the form of long hours or someone swallowing costs. And that can lead to a deep resentment for any website project.
That’s why the Iron Triangle is how projects work. Or at least they should. Because quality is subjective, the constraints of scope, budget, and time are going to vary for your website compared to someone else’s. Yours may have a larger budget which affects scope and time. Someone else’s website project may have a shorter timeline which will affect scope and budget. In either case, the goal is to have a quality product; a “good” product. The remaining three variables are just that: variable.
Good is the default
The biggest challenge we have as designers and developers is to be able to deliver on scope, time, and budget. That is, deliver quality work on time, with the applicable feature set, and at a fair market price. It’s a win-win. But in case it isn’t obvious by now, “good, fast, cheap” doesn’t work. The alternative is to always start with “good”. That is, start with quality. After all, no one really wants something that falls short of good quality.
If you focus on your website being good, you then need to balance out the scope, timeline, and budget. Which one is the most critical to you? If you have a hard deadline, you’ll likely need to be flexible on scope and budget. If you have a fixed budget, your timeline and scope have to be adjusted. And if the scope is fixed, the project’s timeline and budget need to be adjusted.
Starting with “good” is a bit of a balancing act, but it will set realistic expectations and get you the value you’re likely after. But as they say, you get what you pay for.