

To rewrite or not to rewrite - The Sunk Code Dilemma - arnorhs
http://arnorhs.com/2010/05/02/to-rewrite-or-not-to-rewrite-and-the-sunk-code-dilemma/

======
tjpick
I found that surprisingly useful. I'd be interested in developing that scale a
little further since it's kind of weird that everything has different weights
and, for example with point 7: The current code base can’t be used for
anything. 1-20

what's the different between say a 15 and a 16? Seems very subjective, so
maybe if everything was on a scale of 1 to 4 to make it easier to choose, then
you used some multiplicative weighting for each issue...

This brings back memories, from university, of COCOMO
(<http://en.wikipedia.org/wiki/COCOMO>)

~~~
arnorhs
Interesting. I wasn't aware of techniques like COCOMO.

The different points have to be there in order for things to weigh
differently. If it was a scale of 1-4 the question of whether your code can be
reused weighs the same as reducing bugs (which I personally doubt, since the
amount of bugs you get with rewritten software is usually higher, at least for
the first 1-2 years, than with older software).

You could use 1-4 for everything, but then you would just have to use a higher
number of questions for some heavier weighing ones.

I derived those values and numbers from around 4-6 projects of varying size
that I've had to decide upon, so the scale is probably not very accurate. But
running it through my projects/results and decisions provided the right
results.

Deriving it from historical data of a large amount of projects is probably a
much better idea.

Creating a larger project from this could be a great idea.

~~~
tjpick
ok, but you can still weight them without using more questions... let's say we
reduced it to 2 questions for arguments sake, call the questions q1 and q2,
and call whatever the answer to that question is, a1 and a2. you currently do
this:

q1: answer from 1-5 q2: answer from 1-15 so the max is 20, q2 is 3 times more
important than q1, total = a1 + a2.

what I'd do is this: q1: answer from 1-4 q2: answer from 1-4 total = a1 + 3*a2

total is still out of 20, but now all the questions are answered on the same
easier scale, and you let the formula do the weighting for you

~~~
arnorhs
You're right. But maybe the computation becomes more complicated and less
transparent for the average user.

Another benefit of choosing varying points instead of always the same 1-5
scale is that someone select points from 1-7 or 1-20 also makes it really
clear which options weigh more and that can be a statement by itself that
maybe, those things that you value and make you want to rewrite (sometimes the
reason is just that you don't want to learn the existing code) maybe isn't
such an important factor.

