I figured the title would get someone’s attention. I’d like to share this piece of art that I created.
By now, everyone has been educated about the dangers of cigarettes and
tobacco. Cigarettes can be addictive and even deadly. While
they may be soothing in the short-term, they ultimately cause
I’d like to compare this to the RAD style of development. RAD is
quick and satisfies in the short term. Sometimes it’s amazing how
many features can be created just by some dragging and dropping.
You could whip out an entire system in a week. It’s almost too
good to be true.
But what about next month, and the month after that? The attempts
at enhancing that system are futile. You desperately try to get
some productivity out of the RAD approach, and you may be able to slap
on a new feature quickly, but when you have to modify or enhance an
older feature, you can’t get the same satisfaction. It takes
forever to debug through to see what’s really happening.
RAD is quick, but it incurs huge technical debt. RAD is like
consumer credit. You can have it now, but will you really have
time to clean it up later? If you buy that big-screen HDTV now,
will you really have $3000 extra dollars lying around later? RAD
can be very tempting, but in the end, it leads only to death. . . of
your software. At some point, the only recourse will be a total
rewrite. At that point, will you use RAD again for the rewrite or
use another _sustainable_ process?
Orthogonal to RAD is sustainable development: Creating interfaces
at key areas of your system to ensure flexibility. Adequately
testing your software to ensure you don’t break old features when you
introduce new ones. Ensuring your software never becomes legacy
RAD isn’t the answer. Creating sustainable software takes work
and is not for the faint-hearted. It takes good software (dare I
say?) engineers – critical thinkers – disciplined craftsman.
I hope you have enjoyed the satire of this post, but satire can’t exist without a grain of truth.