Introduction
It is very difficult to develop new software
products. It is even more difficult to do it right, as there
are numerous factors working against you, including the psychology
of those doing the work. This document endeavors to lay out the
framework and steps necessary to execute this process for optimum
results.
These lessons have been learned the hard way,
usually by following a path different than this. Inevitably
the results were less than
optimal.
Many of the elements described herein will seem
intuitive and necessary, while others will appear
counter-intuitive and a waste of time. In particular,
following the steps outlined herein will likely appear to be slow and perhaps a bit
cumbersome; however, experience has taught that these steps are
both necessary and optimum in terms of delivering high quality
software on time.
Many projects skip some or most of these steps,
generally paying the price for it about 60% of the way
through. In one recent project, the system was feature
complete after a few months work in July, but then spent almost
six months bug fixing, including architecture and design
fixes. This type of disorganization is precisely how
projects fail, taking forever and never really achieving
success.
You'll probably notice that there is some overlap
with the development strategy called Extreme Programming (or
XP). This is not coincidental, as the XP procedures are
extremely useful, if not always practical. The plan outlined
here is a good blend of traditional methods with a healthy dose of
XP practices mixed in where appropriate.
Now, on to The
Development Process
|