Never edit a method, always rewrite it?
It has been my experience that after a substantial period of being in real use, methods embody tacit knowledge about the problem domain that isn't necessarily evident from their public interface. Because initially they didn't embody that, and it caused bugs, so people edited in fixes.It has been my experience that rewrites from scratch typically lose all this tacit knowledge and re-implement the original bugs.