in reply to
Re^5: Nobody Expects the Agile Imposition (Part VI): Architecture
in thread Nobody Expects the Agile Imposition (Part VI): Architecture
Yes, the definition of what "rewrite" means is open to interpretation.
FWIW, I was following the spirit of the definition used by
Joel Spolsky in this article
where he argued that Netscape made a strategic mistake by rewriting their whole code
base from scratch for Netscape 6 rather than using their Netscape 4 code base as a
starting point and adding new features to it.
Like Spolsky, I was trying to compare the alternative strategies of adding new features
on top of an old and tangled code base versus throwing it all away and starting afresh.
There are certainly shades of grey here. I remember an old work mate of mine who loved
to joke that if he said he was going to "rewrite" some horrible old component, he would never
get management approval, while if he said he was going to "refactor" it, he would get approval ...
and then proceed to ruthlessly "refactor" it until it was essentially a rewrite.
Out of curiosity, would you agree with tilly that Perl 5 was a "rewrite" of Perl 4?
And is Perl 6 a "rewrite" of Perl 5?