The Difference Between Good, Fast, and Cheap
These are the three sides of the project triangle- Good, Fast, and Cheap- and these three sides are things that every client wants. But, there are trade-offs to each one, and many people outside the development world don’t see that. The catch is you can only pick two.
Let’s start with some definitions:
- Good: Your project is done and done right. Maybe it took a little longer or was a little more expensive, but those costs will pay off in the long run because you now have a flexible piece of software that is easier to update and upgrade later. If you’re wondering why there is a cost difference in project bids for the same project, it’s probably because one developer will do it, and the more expensive developer will do it right.
- Fast: Your project is done to meet a tight deadline. It could mean some corners are cut to make the deadline, or (more likely if the developer is as OCD as me) longer hours are put in to make sure your deadline is met. Again, it might be a little more expensive, but you have a solid project in a very timely fashion.
- Cheap: Let’s say cost-effective here. Either the developer doesn’t feel he should be charging pro rates (usually if he is just starting out), or a generous developer is giving you a discount. It could also mean that he is taking some liberties here to cut down on time, and for you, cost. Maybe it won’t work exactly as you’d like, but it works just fine and you got a price on it.
Now let’s look at why only two of the three can be picked:
Good and Fast
Good and Fast means it’s not going to be cheap. Your project is made the priority, which means others are put on hold or not accepted, longer hours are put in, and the costs add up. The developer needs to offset those costs. Bottom line: You will have a project that’s done right in a timely fashion, but it probably cost you a lot more than if it was just “Good” or just “Fast.”
Good and Cheap
Good and Cheap means it isn’t going to fast. Just like the developer putting off projects for a higher paying one that has opted for “good and fast,” good and cheap means when the developer has a free moment, he will take the time needed to make it good while keeping costs down. But keep in mind, it may be several months before getting around to it, and he may stop and start based on how much work is rolling in. Bottom Line: You will have a great project, but what you didn’t spend in money, you spent in time.
Fast and Cheap
Fast and Cheap means it isn’t going to be good. Remember in both my definition of “fast” and of “cheap” I mention the developer may cut corners to help you out. Here, he definitely will. You need to meet that tight deadline on a tight budget, and the developer will get it done, but the proper planning won’t go into it, and a lot of corners will be cut. Bottom Line: You’re going to get a final product, but it will be bad. It will be the bare minimum, and future work on it will be a nightmare.
If I had to choose one of the three, as a developer, I would choose Good and Fast. I don’t like doing sub par work and attaching my name to it, especially when I know I can do better. As a client, I would probably pick Good and Cheap, but that’s assuming there is no deadline. Ideally, you should pick one to get something worthwhile that won’t cost you an arm and a leg. If that’s the case, no matter what side of the fence I’m on, I’d pick Good. A good website or project will speak volumes for what you stand for and how you want to be seen. Remember, especially with websites, these projects are an extension of your store front. If it’s not good, your users will know.
Bottom Line: Spending a little more to get a quality product isn’t a bad thing, especially for your business. In the long run, the quality will far outweigh the cost, whether it be due to the mileage you get out of it, the reduced cost in bug fixes, or the less time it takes to update or upgrade.

Well said. Certainly there are times when time or financial constraints tie your hands, but aiming for a “good” site is always better than shooting for “cheap” or “fast” (unless it’s some type of temporary placeholder).
The vast majority of coding problems I run into are the result of work that was done cheap or fast. The nightmares are the projects done cheap AND fast.