

Working with an old code base - awa
http://felix-cat.com/blog/2010/01/17/working-with-an-old-code-base/

======
10ren
Joel says don't rewrite, like the Netscape guys did
<http://www.joelonsoftware.com/articles/fog0000000069.html>

Derek Sivers rewrote 90,000 lines of code in 12,000 lines... after 2 years on
a failed rewrite. <http://news.ycombinator.com/item?id=58429> Maybe the lesson
is that before you can renew your code, you yourself must be renewed?

Or: _You cannot solve a problem at the same level you created it._

------
waivej
I think it just takes discipline to not change too much at once. I worked with
two companies that tried to port from 16bit-32bit code. One did a rewrite. The
other did it in sections. Neither survived the transition. Technology wasn't
the problem. The world just didn't need their products anymore.

Though my father had a rotten little shed that needed attention. He tore down
and rebuilt sections. Besides a split level roof lines, it really seems like a
complete redesign. I think the key is that few things were up for discussion.
Also, having a sturdy base to work from made things easier. (and it stayed in
operation the whole time.)

With code, I see similar ideas. You probably shouldn't tear down and rewrite
more than half at a time...and you should probably decide whether the world
still needs the original product.

------
j_baker
In my experience, a rewrite is almost always the wrong course of action. The
best course of action is to just quit piling more and more unmaintainable
hacks on top of it. And pay down your technical debt. Every time you find
yourself thinking "boy, it sure would be easier if I could do it this way",
stop wishing and _make it happen_.

Sure, it's going to take you longer to get stuff done in the short term. But
in the long run, you'll appreciate it.

