Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I don't like the suggestion that rewrites are based on lack of knowledge or insight.

As requirements change over time, past assumptions and architectural decisions also accrete. Unless you're in a company with strong engineering culture, you get a Tragedy of The Commons kind of situation where nobody goes back and changes the architecture because they don't want to be the guy who breaks it all.

In my view, good engineering culture is being unafraid to treat code as disposable and throw it away - as long as the current requirements are properly understood.



I agree that code all is disposable, old and new alike. But without knowledge and insight you won't know which code to throw away.

So you either end up being the guy who introduces the new product that everybody complains about because it doesn't do what the old one did. Or you end up having to maintain both old and new because not everyone will switch to your new codebase.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: