I explained why the Census Crunch took 18 hours—which would translate to between roughly 500 and 1000 dollars/euros, depending on your luck at having or finding a capable person to do it. For a toy application that still needs work to become decent.
Now, what about a real project? How would the cost compare? Here it is:
- First, a real project will normally have way more functionality and way more details. I could easily pick up one of the real projects I’m working on and make a list of what clients have been asking me and how many little details I’ve needed to work on to provide it to them. But I have probably bored you enough with the Census Crunch breakdown. You can extrapolate.
- Second, I worked alone, without a client. I thought what I was going to build and went ahead and built it. No-one needed to explain the problem to me. Plus I also use the Census Crunch myself. Typically, if I develop software for you, I’m not going to be a user of that software. You’ll need to explain to me why you need it and what features you think you’ll need. I’ll need to provide you with an early version, where you will comment, and I will improve it based on your comments, and then same thing a third time. You will ask for another feature, and that other feature will likewise go through three iterations. This multiplies the time both I and you spend.
- Third, if you visit the Census Crunch you’ll see that in the front page it says “no warranties” in bold. Suppose you try to use it and it doesn’t work. I don’t have the obligation to fix it. It might hurt my self-esteem and my image but it’s not the end of the world. But if you paid for it, I’d have to make sure you are satisfied. What if it broke while you were working? How serious a disruption would it be for your business? What should the response time be? What if it breaks while you’re working and I’m sleeping? What if you do an error and delete the data? How is it going to be backed up and restored? Replacing the “no warranties” with a promise for a decent level of service can be a huge difference in cost.
- Fourth, I worked alone, without another programmer. What if I’m hit by a bus after I deliver? Who is going to provide the ongoing support you need? Who is going to install security updates and keep it in good order? To ensure such reliability, costs can multiply by at least two.
- Fifth, I worked alone, without another programmer. A real project is usually larger. Very often a single person can do it, but it really needs at least two—one needs to be reviewing each other’s work, and more people often have different abilities which when combined produce a much better and reliable result. These people will have communication overhead. The much better and reliable result is going to be more costly.
These are the differences I can think of right now. This is why software development is expensive, even for simple projects. This is why I recommend to people to buy off-the-shelf software whenever possible.