10 ms·
"what happens if your requirements have fundamentally changed?" That's not a rewrite, that's a new program with the same name
by yCombLinks 6y ago
"what happens if your requirements have fundamentally changed?" That's not a rewrite, that's a new program with the same name
- dllthomas 6y agoWhat happens is that you write the first version, and then the requirements fundamentally change (or you learn that your requirements were fundamentally wrong) but it happens gradually and you change and change the old version. It's now mostly meeting the new set of requirements, but has a bunch of cruft from what it used to do. Throwing that away and writing something to support the new set of requirements is a rewrite. I take no position, here, on whether it should be done.
- goto11 6y agoI would recommend just removing the cruft rather than throwing everything away. But cruft should really be removed continuously.
- dllthomas 6y agoI was merely being descriptive, clarifying that there are not uncommon situations where requirements have changed and yet nonetheless one of your options is aptly termed a rewrite. If I am to move into making recommendations, then I think the whole thing is ultimately situation dependant, but that your advice is correct for the most common cases.