Stewart Stremler wrote:
begin  quoting Christian Seberino as of Tue, Oct 23, 2007 at 11:27:05AM -0700:
Stewart Stremler wrote:

The second-system effect does not result in an improvement over the
original.
But Subversion is the exception to your rule.  Perhaps they threw out a
couple of designs on the way to the final product thereby moving beyond
the 'second-system'.

No, subversion is an *example*.

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. Writing a second system with less functionality and *still* no tests is much more fun.

While the developers deserve 90% of the blame, to some extent, I blame C/C++. C/C++ makes refactoring code much more annoying than it needs to be. The crappy preprocessor is mostly to blame.

-a


--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list

Reply via email to