I propose that we classify software as a living organism.
No, I’m not referring to Ms. Dewey. I am
thinking about software in general.
Let’s see… Someone fathers (or mothers) the code and brings it to
life. They showcase it to the world, either by photos and glimpses
(proprietary software) or by allowing someone else to hold (open
source software). The parents try to correct the mistakes in the
software as early as possible in its childhood. If it’s too late, it
will be too hard to change the child’s attitude. If the child gets
really cranky, then the parents just abandon it. If so, they’re sent
to a foster home, also known as new maintainers of the software.
Maybe I took that metaphor a bit too far.
Let me start again… Think of your iPod or your car, the world around
really doesn’t affect it. Yes, they both need some kind of fuel, but
for the most part, they’re just there and they’ll keep working as long
as they are not damaged. On the other hand, software is very
dependent on the world around it. For one, its usefulness and
purpose keeps changing, and on the other hand, dependencies keep
changing or paradigms keep changing – new kinds of approaches
replace old software. As a corollary, indisciplined or
unintelligent parents lead to similar nature/attitude of
children… And so on.
If someone doesn’t take care of the child, err, maintain the software,
it shrivels up and dies. The software needs to breathe constantly to
be relevant. It needs to be kept alive.
Software should be classified as a living organism.
“Anything that is not managed will deteriorate” — Bob