Software which is engineered to be
simple and elegant is no more valuable than software that is complex and hard to maintain. Can this really be true?
Extreme Programming (XP) is based on the idea that this is not in fact true.
A typical project will spend about
twenty times as much on people than on hardware. That means a project spending 2 million dollars on programmers
per year will spend about 100 thousand dollars on computer equipment each year. Let's say that we are smart programmers
and we find a way to save 20% of the hardware costs by some very clever programming tricks. It will make the source
code harder to understand and maintain, but we are saving 20% or 20 thousand dollars per year, a big savings. Now
what if instead we wrote our programs such that they were easy to understand and extend. We could expect to save
no less than 10% of our people costs. That would come to 200 thousand dollars, a much bigger savings. This is certainly
something your customers will notice.
Another important issue to customers
are bugs. XP emphasizes not just testing, but testing well. Tests are automated and provide a safety net for programmers
and customers alike. Tests are created before the code is written, while the code is written, and after the code
is written. As |
bugs are found new tests are added. A safety net of tight mesh is created. Bugs don't get through twice, and this
is something the customers will notice.
Another thing your customers will notice
is the attitude XP programmers have towards changing requirements. XP enables us to embrace change. Too often a
customer will see a real opportunity for making a system useful after it has been delivered. XP short cuts this
by getting customer feed back early while there is still time to change functionality or improve user acceptance.
Your customers are definitely going to notice this.
Much of what went into XP was a re-evaluation
of the way software was created. The quality of the source code is much more important than one might realize.
Just because our customers can't see our source code doesn't mean we shouldn't put the effort into creating something
we can be proud of. |