The development of software systems
used to be cheap. But then software development encountered a crisis when the cost of programmers exceeded the
cost of computers. Computer programming was then reborn as software engineering in the likeness of other engineering
disciplines. Over time we have absorbed a great deal from other engineering disciplines. Gone are the days when
computer programmers were so cheap you could just let them do as they please.
But once again we are at a point of
crisis. Under this heavy load of methodology and discipline, software development has once again become very expensive.
The rules of software development have become complex. The practice of computer programming has become fragmented
with hundreds of different methodologies or strategies for creating software. Everyone who has a methodology tries
to out shout the others proclaiming their method of creating software is better. Gone are the days when there was
only one way to develop software and everyone knew it. |

Extreme Programming (XP) can be likened
to a jig saw puzzle. There are many small relatively trivial pieces that when assembled correctly will create a
big picture. The pieces are not interchangeable, the pieces do not overlap, the pieces are all exactly the right
size, and the pieces must all be there to make the picture. XP has many small pieces such as refactoring and testing
that when taken individually may not seem important, but when combined into a methodology they form the basis for
a new way to develop software.
We need to pick up the pieces of this
fragmented endeavor we call computer programming and figure out how to put them back together correctly. XP is one such rearrangement of the pieces. |