|
You
are crossing Fifth Avenue in New York City during lunch time. Being a reasonably
careful person, you first search out a pedestrian crossing. You then wait until
the green "WALK" light comes on, and then, remembering that traffic
lights are considered by New York drivers to be no more than a recommendation,
you look left then right then left again. Satisfied that all is clear
you safely cross Fifth Avenue to the other side. While you are involved in this
exploit, a friend of yours, without hesitating, races across Fifth Avenue and
surprisingly makes it safely to the other side. He then proceeds to taunt you
for wasting time with all the precautions that you took. You may be tempted for
a brief moment to wonder if he is right. The parallel in software is
that occasionally you may rush through a software project without using any orderly
development methods, and you may be lucky enough to succeed. However, in most
cases, like the person rushing across Fifth Avenue, you will be hit by a bus! We
all know that occasionally people are lucky. But, as a professional engineering
manager, you cannot base your project development plan on sheer luck. The business
case for developing a software project is based on the fact that there is a reasonable
chance for success. If, in throwing care to the wind, you can promise no more
than a poor gamble, then it makes little business sense to develop your project.
An orderly development process is like an insurance policy; it greatly reduces
risk, but for a price. The recent history of software development has demonstrated
time and time again that this price is well worth paying. |