Fast, Good and Cheap represent three aspects of a project - the timeline, the quality and the budget. Depending on the situation they are sometimes fall into requirements or even constraints. The fact is that usually these three are combined by the “Tyranny of OR”. One can choose either
- fast and good OR
- good and cheap OR
- fast and cheap
The option of all three is not considered to be practical.
The Triangle
I have been able to represent this the best by setting them at three different points of a triangle. You can choose any one side of the triangle. These three points can also be considered to be different costs of the project. You can ignore the one that you can afford to. In reality, no one can afford any cost, it is either a compromise or an investment, depending on how you look at it.
But this triangle is an important one to consider if you are trying to set priorities for the project. The priorities can help you choose the side.
I do agree that all three together is not always practical, somewhere someone has to absorb the cost. In some cases it has become possible, because of open source. Let us take a simple example for our purpose of understanding. If I want to setup a good blog, I can do that today, literally in 5 minutes, or maybe in half an hour by using tools like Wordpress, and using of the many themes available with it. The ones who has absorbed the cost here are the Wordpress developers and the theme designers.
However, this is limited to just that, simple cases. The moment you introduce your own requirements, like branding or functionalities, you will have to absorb the cost for that somewhere. And experience has taught me that a software project is hardly only about software. It is more about the business and the user. It is about their ROI. Software too, is hardly about development, it is about usage. Every single business and every single project is unique. So, even if there is a shelf of ready-made software available, chances are that someone is going to have to spend time and effort in working out why, what and how the software has to be developed.
Solutions?
I have realized that almost all the thinking that I do about improvements in software development finally boils down to converging these three points, or at least minimizing the effect of the OR. I personally would not like to do poor quality work or for that matter sacrifice any of the three. We can make sure through our process that we optimize our efforts, but is there anything to bring these points closer? I cannot say that I am anywhere near it, but I have found that using iterations gives a chance to work with manageable pieces, giving us time to prepare for the impact. More thoughts on this later. What do you think?


May 4th, 2007 at 8:08 pm
Love this one. Such a useful knowledge to me as im a fresh student of software engineering.
May 5th, 2007 at 12:32 am
One of my best PMs ever clued me into this one early in my career: instead of a triangle, think of it as a 3-legged stool with each leg representing one of the fast, cheap, good areas, and the length of the leg is how much will be spent on each area. The goal is to define the scope in such a way that the customer will feel comfortable sitting on the stool after they’ve spent their project budget.
May 5th, 2007 at 9:31 am
That is a good one! It really has to be comfortable for the customer, all three together.
June 25th, 2007 at 9:39 pm
Funny,
My first boss in technology gave me the same thing
We called it “The Pyramid of Reality”, with the tag line “You may choose only two”.
I actually have it posted at my office desk.
June 25th, 2007 at 9:40 pm
BTW - This was in 1989….
June 26th, 2007 at 7:54 am
Keeping this on the office desk is useful. It keeps you reminding of the balance required.
July 29th, 2007 at 5:21 pm
[...] unless we start bringing it back to what it meant. Right balance of the three factors – fast, good and cheap is what outsourcing can do for you. It can provide a bottom-line justification for your business, [...]