[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: [controv] throwing away code
From:       Waldo Bastian <bastian () kde ! org>
Date:       2000-09-20 0:41:27
[Download RAW message or body]

On Tue, 19 Sep 2000, Guillaume Laurent wrote:
> On Tue, 19 Sep 2000, Navindra Umanee wrote:
> > Bit controversial but interesting anyway:
>
> What I really like about this is that your post generated a patch to
> klipper instead of a flamewar :-).

Ok, let's start a flamewar :-) I think he is basically right in saying that 
rewriting stuff is sort of bad when it comes to introducing bugs. I once read 
that every 7 lines of new code contains 1 bug. Up to now my exprience is in 
line with that.

But that doesn't mean that you should never rewrite stuff. When the design of 
your software doesn't fit the problem you are trying to solve the 
maintainability of your software decreases: instead of introducing 1 bug per 
7 new lines of code, you might end up with 3 bugs per 7 new lines of code. 
When you see that happening the best thing you can do is to get your design 
right. If you can do that incrementally, great, if you can't... you need to 
throw some stuff out. It's clear that if you do that with a large project it 
will take you some time to get to the level you once were. (Btw If you don't 
plan any further development, you might be able to live with these 3 bugs / 7 
lines, xdm/kdm is a good example of this)

So what we learn from this is that good design is important so that you don't 
need to rewrite stuff too often. It's usually not possible to come up with a 
good enough initial design though, simply because you don't fully understand 
the problem you are trying to solve at that time. Once you do it is time to 
throw away your old stuff and do it right.

The problem with Netscape is that it took them almost 5 full versions before 
they realized that.

Cheers,
Waldo
-- 
KDE/Linux, you make the choice.
 
>> Visit http://master.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic