F
Flash Gordon
Ian Collins wrote, On 21/07/07 23:42:
Sometimes continually changing requirements have forced a project to
fail, although not any project I have been involved in.
A few examples of where I would allow for change are...
You know the tax rates and thresholds will change, so allow for it
You know tax exemptions will appear and disappear, so allow for it
You know the systems you have to interface to will change
The customer may well not require that these things be changeable, but
from my knowledge of the application domain I *know* they will change
over the life of the project, so I design the system in such a way that
the can be changed in a nice isolated way without impacting on the rest
of the code.
My way of doing things has probably been influenced by one of the
projects early in my career, which is also a reason I say "almost
always" not always. One look at the code was enough for me to say it was
badly designed, and the project in question was to redesign and
implement it properly. Over the next 10 years after the rewrite there
were several changes to requirements, and none of them involved
significant rewrites because it was designed so that we could change and
adapt it. It was actually a piece of 2nd line test equipment, and is
probably part of why I am heavy on the need to design tests
That's good then
Even when I worked in the defence industry not all projects required the
same level of documentation, so I certainly do not expect all industries
and all situations to require the same amount. Sometimes the back of a
fag packet is sufficient
Then you have been lucky, my crystal ball is more opaque.
Possibly.
Many of the systems I have worked on have grown and changed
significantly from their original requirements, one I still support was
due for "completion" three years ago and it's still growing as the
market changes. If we had designed it for the current market
conditions, it would never have sold four years ago when it was
originally released.
Sometimes continually changing requirements have forced a project to
fail, although not any project I have been involved in.
A few examples of where I would allow for change are...
You know the tax rates and thresholds will change, so allow for it
You know tax exemptions will appear and disappear, so allow for it
You know the systems you have to interface to will change
The customer may well not require that these things be changeable, but
from my knowledge of the application domain I *know* they will change
over the life of the project, so I design the system in such a way that
the can be changed in a nice isolated way without impacting on the rest
of the code.
My way of doing things has probably been influenced by one of the
projects early in my career, which is also a reason I say "almost
always" not always. One look at the code was enough for me to say it was
badly designed, and the project in question was to redesign and
implement it properly. Over the next 10 years after the rewrite there
were several changes to requirements, and none of them involved
significant rewrites because it was designed so that we could change and
adapt it. It was actually a piece of 2nd line test equipment, and is
probably part of why I am heavy on the need to design tests
"Some" is a fair compromise!
That's good then
Even when I worked in the defence industry not all projects required the
same level of documentation, so I certainly do not expect all industries
and all situations to require the same amount. Sometimes the back of a
fag packet is sufficient