Fix Time and Budget, Flex Scope (by 37signals)
Launch on time and on budget
Here's an easy way to launch on time and on budget: keep them fixed. Never throw more time or money at a problem, just scale back the scope.
There's a myth that goes like this: we can launch on time, on budget, and on scope. It almost never happens and when it does quality often suffers.
If you can't fit everything in within the time and budget allotted then don't expand the time and budget. Instead, pull back the scope. There's always time to add stuff later — later is eternal, now is fleeting.
Launching something great that's a little smaller in scope than planned is better than launching something mediocre and full of holes because you had to hit some magical time, budget, and scope window. Leave the magic to Houdini. You've got a real business to run and a real product to deliver.
Here are the benefits of fixing time and budget, and keeping scope flexible:
You have to figure out what's really important. What's going to make it into this initial release? This forces a constraint on you which will push you to make tough decisions instead of hemming and hawing.
Setting expectations is key. If you try to fix time, budget, and scope, you won't be able to deliver at a high level of quality. Sure, you can probably deliver something, but is "something" what you really want to deliver?
The ability to change is key. Having everything fixed makes it tough to change. Injecting scope flexibility will introduce options based on your real experience building the product. Flexibility is your friend.
Our recommendation: Scope down. It's better to make half a product than a half-assed product (more on this later).
One, two, three...
How does a project get to be a year behind schedule? One day at a time.
—Fred Brooks, software engineer and computer scientist
Jason Fried (37signals) on The Project Triangle
Next, you need to tell your client to pick two. We’ve all heard “Pick two: good, fast, or cheap.” Well, dealing with client projects is no different. Your client needs to pick two: fixed scope, fixed timeframe, or fixed budget. Having all three is a myth. Pick three and you’ll end up with a lot of unsatisified people and subpar results.
I’ve always felt that The Project Triangle was an elegant way to discuss resource constraints with a client, but it’s also a useful tool for helping your team understand the play. Constrained features (a/k/a, quality or scope), in particular, can be an awkward topic to broach; it doesn’t mean the deliverable can be broken, but that strong, early decisions must be made about which features of the project are critical path components, and which are "nice to haves." As much as we each want to have it all, fast and on budget, these are conversations that you really want to have before work is begun. Trust me on this.
There’s no substitute for deciding to “hire the right clients,” as Jason puts it (that’s huge), but it’s also useful to have an ongoing understanding—internally, as well as with the client—about which part of the project “gives” when the inevitable changes happen. Lacking bottomless wallets and a time machine, most clients accept that features nearly always take the blow. Discussing and planning for that ahead of time will help make the last day of your project as pleasant and stress-free as the first.
Getting Real: Pick two - scope, timeframe, or budget
A lot of people have been asking me about how to make our Getting Real process work with client work. Here are some tips — some of which may be uncomfortable. This pick-two process also applies to your own internal development.
First, you have to hire the right clients. Don’t discount this step as too obvious (or impossible) — it’s a critical first step. If you are working with the wrong people 1. you won’t be happy, and 2. they won’t be happy. Misery loves company, but it doesn’t love great results.
Next, you need to tell your client to pick two. We’ve all heard “Pick two: good, fast, or cheap.” Dealing with client projects is no different. Your client needs to pick two: fixed scope, fixed timeframe, or fixed budget. Having all three is a myth. Pick three and you’ll end up with a lot of unsatisified people and subpar results.
Telling your client to pick two, and having them agree to pick two, isn’t easy. But it all comes down to working with the right clients (back to step one), and explaining why picking two is better than picking three. Here are some reasons why:
- Prioritization. You have to figure out what’s really important. Is it timeframe, budget, or scope (and if scope, then you need to prioritize further)? This forces a constraint on you which will push you to make tough (and often creative) decisions.
- Reality. Setting expectations is key here. If you promise all three, you won’t be able to deliver all three at a high level of quality. Sure, you can probably deliver something, but it almost certainly won’t be what you agreed to.
- Flexibility. As I mentioned in Getting Real: Less Mass, the ability to change is key. Having everything fixed makes it tough to change. Injecting some flexibility (we can increase the budget, we can expand the time frame, we can change the scope) will introduce options based on your real experience building the product. Flexibility is your friend.
So, for example, if your client has $50,000 to spend, and needs the project done in 8 weeks, then the scope is flexible. If the scope isn’t flexible, and they need it done in 8 weeks, then the budget needs to be flexible. If the budget and scope aren’t flexible, the the timeframe needs to be flexible. Something has to give if you want to deliver a great project. Trying to make a fixed scope, fixed timeframe, and a fixed budget fit a project is like trying to put a square peg in a round hole. You have to shave off the edges in order to make it work (which means something has to give).
So, yes, it’s hard, and you won’t always be successful, but part of Getting Real is getting real. Promising someone everything they want (fixed price, fixed scope, fixed timeframe) simply isn’t realistic if you want to deliver something great. Starting from a false promise will never get you to Real.