More often than not, the number one objection for not implementing practices like developer testing is the perceived increase in developmental costs. If you find yourself thinking the same thing, I’ve got news for you: you’re absolutely correct– quality does increase costs.

There is a common saying that states there aren’t any free lunches in life. There aren’t free lunches in software development either. In fact, in a well regarded paper from 2001, entitled “Software Defect Reduction Top 10 List ” the authors state, based upon empirical data, that it often costs:

50 percent more per source instruction to develop high-dependability software products than to develop low-dependability software products.

Based upon that data alone, writing tests is a complete waste of money, right? The one thing that people often miss, though, is the second half of the cost equation. While quality upfront costs more compared to ignoring it, the long term cost is where quality becomes worth while. As they eloquently state in the next sentence:

…the investment is more than a worth it if the project involves significant operations and maintenance costs.

Introducing quality in early cycles is just like making financial investments– you pay now because later you expect greater returns. In the case of software, those greater returns are applications that can change quickly. This means that software systems which make investments in early quality will deliver verifiable features faster over the course of their life span than those systems which defer quality.

Indeed, quality has a cost, in terms of time and money; however, it pays substantial dividends in the long run. If you are developing business critical software, which isn’t going to be thrown out in short order, are you investing wisely?