Lew said:
It's a good principle, except for the part about never changing a running system.
Not much left then ...
That's what I want to hear. What are the (perceived) risks, and how are they
measured? Show me the money.
I know of a project, that back in java 1.3 days used a method "assert(...)"
in almost every single class. It was no sophisticated work, to globally
search for that method-name, and either rename it, or make it a proper
assertion, but for some reason, the customers did not want to spend any money
for that work, until the dead-line for java 1.3 was really approaching.
There were, of course, also slight GUI-glitches to solve, where some
default changed (font-size, colors), or setting background color of some
component no longer had any effect, resulting in a white-on-white textfield.
Some of these effects were actually from workarounds for bugs in 1.3, that no
longer worked with 1.4 (again only some of them just weren't necessary anymore
for 1.4).
Then there was some incompatibility with a third-party-library, whose newer
version had dropped a certain needed feature, which they had deprecated, but
without providing an alternative that satisfied the needs, resulting in that
crap having to be replaced.
Even if no line of source were needed to be changed, it still requires at
least a complete(as far as possible) testing walk-through to detect
"suddenly white-on-white" text-elements.
That should be enough - I will not go into more detail. If you don't
believe me, that's not my problem.