Reducing Cost Of Software Projects (’Why we get paid’-Series)

November 3, 2007

a: cheaper people or smaller team

The most obvious way to keep cost small is to hire people that cost less. What is a lot less obvious is the negative impact this practice can have on both: b and c. While the per month cost is lower, the project is likely to get done later, and maintenance will be more difficult.

A more promising way is to use a smaller team. For example use 5 instead of 15 people. By cutting down communication overhead, b may not even be threatened.

b: be done earlier

Everybody would like to be done earlier. Having people work overtime isn’t the way to get there. Why? Because if you try it this way, you’ll likely increase a and c, resulting in bigger overall cost.

There are several things that can help you get done earlier:

  • Simple systems (don’t use technology you don’t need)
  • Yagni - You ain’t gonna need it (don’t create things you think might be necessary some time in the future)
  • Get started early (don’t specify every detail of the system)
  • Technology (good frameworks, programming language etc.)

c: maintainable code base

Creating maintainable code sometimes competes with a and b. Some of the things that help keeping maintenance cost down:

  • Well designed code (another argument for good developers)
  • Good communication (the more people know about the software, the better the chance that somebody knows what’s going on)
  • Original team maintains code
  • Automated tests

Good documentation is only a last resort.

What other practices do you see, that can reduce the overall cost of the project?

Posted by Jerome Mueller

Leave a Reply