3 ms·
Reminds me of this semi-related classic that elaborates on the urge to rewrite things from scratch: https://www.joelonsoftware.com/2000/04/06/things-you-should
by jlundberg 5y ago
Reminds me of this semi-related classic that elaborates on the urge to rewrite things from scratch:
https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/ https://www.joelonsoftware.com/2000/04/06/things-you-should-...
- themerone 5y agoJoel never spent 6 months working on a very simple feature request that should have taken 5 minutes and a half dozen lines of code. I'd like to see him say with a straigh face that it is a good idea to stick with VB6 indefinately. There is a lot of wisdom in his post, but it isn't always practical or possible to evolve a legacy code base.
- xwolfi 5y agoEvery code base is legacy, in one dimension or another.
- christophilus 5y agoGoogle was a from-scratch rewrite of search engines. Facebook was a from-scratch rewrite of MySpace. Slack was a from-scratch rewrite of IRC. Chrome was a from-scratch rewrite of IE. The list goes on and on and on. Any of the previous incarnations of those ideas could have iterated into success, but it turns out it was easier to spin up a new product (even a completely new team / company / culture) with a clearer focus / path to improvement / culture than it was to turn around a barnacle-laden ship. Sometimes a rewrite / rethink is the best way forward.
- dchuk 5y agoThis is a wildly incorrect comment. Literally none of those were rewrites. It’s a completely different scenario to do greenfield implementations in existing categories vs managing the literal replacement of existing software with the same thing written in a different language.
- christophilus 5y agoIt’s not an incorrect statement. I’ve been part of successful rewrites. The key is to be your own disruptive competitor. Disruptive competitors are rewrites of your product that you yourself were either unable or unwilling to do. This Joel blogpost is always trotted out as some kind of gospel, and I think it’s stymied a lot of clear thinking around the possible merits of a rebuild.
- makeworld 5y agoI don't think this is what Joel is referring to at all. He's talking about literally codebase rewrites. In all your examples, there was not existing code base that was rewritten. A company tried to innovate on an existing idea, yes, but that's not what Joel is arguing against here.
- bdcravens 5y agoPlus in some of those examples, they leveraged open source libraries, so they reused preexisting code.
- deleted 5y ago[deleted]
- bdcravens 5y ago> Chrome was a from-scratch rewrite of IE. Hardly. It used several external libraries, including those from Netscape and Apple, who also made web browsers.
- justin_oaks 5y agoAll examples of survivorship bias. You don't know of all the "rewrite" failures because they failed.