Christian Seberino wrote: > Andrew Lentvorski wrote: > >> Agreed. The proper response was to refactor CVS and then start >> replacing subsystems. >> >> The problem is that no developers *ever* want to do that. >> >> Refactoring requires that you understand the old code, write tests, >> refactor while gaining no new functionality, and only *then* pull out >> bad subsystems and redo them. >> >> That's a whole lot of unfun coding. > > How do you know refactoring CVS code and understanding it would be easier > and faster than doing a clean rewrite with the new design decisions you > want? You seem to take this as an axiom.... sure you would never want to > rewrite an OS on your free time but this is "just" a SCM. Maybe no one > wants to do this unfun work for a reason. >
Well, one of the recipes I've seen for *inviting* SSS is to ignore all the little stuff in the existing code that might look like kruft, but which may very be a hard-won fix for some obscure problem -- who knows how critical. Similar scenarios hold for say, a make-or-break optimization kludge. That's why unit tests are so very valuable. If you have a good set of tests (a big if) then you [should] have tests for all those dark corners, and rewrite becomes less of a catastrophe-in-waiting. To undertake a rewrite-from-scratch, one must be willing to abandon all those old krufty and kludgy warts-that-might-be-pearls. If you're lucky, you rediscover the need to reinvent them before shipping, and end up merely late. If not <argggh!>. Regards, ..jim -- [email protected] http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list
