To rewrite or not to rewrite - The Sunk Code Dilemma
arnorhs.com
arnorhs.com
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)
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.
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
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.