André Næss <an*********************@ifi.uio.no> wrote in message news:<br**********@maud.ifi.uio.no>...
Tony Marston:
What this means in practice is that if you by have this piece of software
which takes 1 week to develop, and 3 weeks to maintain, you're better off
if you can spend 2 weeks developing and only 1 week maintaining.
If you can write something from scratch in 1 week but take 3 weeks to
maintain it then you are doing something wrong. If the scale of
changes were that huge I would scrap the original program and rewrite
it.
I realize that maintenance probably isn't a fitting word. Evolution is.
Software systems tend to evolve, and most of the time will be spent
evolving the software. If the system is badly written from the start this
may become a painful process, and this very process will probably cause
more bugs to appear. In extreme case you may even have the situation where
minor changes to the system's behaviour requires massive changes to the
code. My main point is, in short, that I disagree when you say that "the
aim of the software developer is to produce software as quickly as
possible.". It's obviously desirable, but one should always focus on making
the system evolable.
André Næss
If a development environment is constructed properly then it should
make it easy to both create new components and maintain existing ones.
You have to create a reasonable balance between the two and not
concentrate too much on one aspect to the detriment of the other. I
have been creating development environments for 20+ years with both
these aims in mind, and I have succeeded. I have done it in COBOL,
UNIFACE and now PHP.
Making a system evolvable is not something you can guarantee as you do
not know what form this evolution will take. Simple changes such as
adding or removing fields, adding or removing tables, or modifying
business rules here and there is one thing, but if the nature of the
business changes in a drastic way then evolution is not possible - you
have to rewrite from scratch.
Take for example the steam engine. You cannot modify one piece at a
time and turn it into an internal combustion engine - you have to
throw the whole thing away and start from scratch.
But after you have built your internal combustion engine some smart
ass comes along and invents the gas turbine - so what then? It is
impossible to plan for the future as no-one knows what the future will
bring. It is only possible to plan for reasonable changes based on
past experience.
Tony Marston
http://www.tonymarston.net/