4 ms·
> So /re/writing a system is a strict superset of both reading a previous implementation and implementing, and is thus harder than either. As you said, every l
by david-gpu 3y ago
> So /re/writing a system is a strict superset of both reading a previous implementation and implementing, and is thus harder than either.
As you said, every line in the old product had a reason to be. You can learn that reason in two ways: the way it was done in the first place, or by analyzing the old code. My argument is that the amount of effort required in both cases is in the same ballpark -- it will depend on a number of factors such as the quality and quantity of the documentation and testing in the old product, the availability of people who worked on the first product, etc.
So, no, rewriting a system is not automatically more work than writing the original one. But it is certainly not automatically less work either, and many people make the incorrect assumption that rewriting a system is going to take much less work than fixing the existing one.