Tuesday, February 19, 2019

Lessons From 6 Software Rewrite Stories

Herb Caudill (via David Heinemeier Hansson):

Netscape’s disastrous 5.0/6.0 rewrite is the original poster child for “never rewrite”, thanks to Joel. […] Mozilla, the open-source community that Netscape had created, would go on to release the Firefox browser in 2004 — after yet another ground-up rewrite. Firefox did manage to gain back some market share from Microsoft.


They rewrote Basecamp from scratch and it turned out great. It took around a year, and new signups doubled immediately following the release of Basecamp 2. […] So they presented Basecamp 2 as a completely new product, with no guarantees that it would be backwards compatible with Basecamp Classic. […] That brings us to the second interesting thing they did, which was that they didn’t sunset their existing product.


Visual Studio is a heavyweight product in every sense: It can take upwards of half an hour to install. It has to support a wide variety of complex use cases relied on by enterprise customers. So it wouldn’t have made sense to use Visual Studio itself as a starting point, for Microsoft to try to appeal to other platforms by adding features. And presumably the idea of making Mac or Linux versions of Visual Studio was a non-starter. So Microsoft started from scratch with no guarantees of backwards compatibility.


Inbox gave the Gmail team a way to experiment with features without disrupting workflows for the vast majority of users who didn’t choose to switch over. By committing to having both versions use the same back end, though, Gmail put hard limits on their own ability to innovate.


One response, of course, would have been to do as Basecamp did: Take everything Fog Creek had learned about bug tracking, and reinvent FogBugz, starting from a clean slate. Presumably this was a nonstarter, you know, because of all the “things you should never do” and “worst strategic mistake” stuff. […] In the meantime, FogBugz languished in obscurity.


Shortly afterwards they lifted the veil of secrecy: They let BillSpring customers know that the product was now FreshBooks, and let existing FreshBooks customers know that a new version would soon be available. Little by little, “FreshBooks Classic” customers were invited to try the new upgrade — but they didn’t have to, and they could always migrate back to the more familiar version if they wanted.


Update (2019-02-20): FogBugz:

As the new owner, we are rewriting Fogbugz on a modern cloud stack. We expect to ship in Q2. (and LOC to drop from 1.6m to 5,000).

That seems like far too few, unless they are removing a lot of functionality.

See also: Hacker News.

Update (2019-02-21): FogBugz:

We have seen the tweets of disbelief in the 5k LOC for the “new cloud stack Fogbugz”. We are documenting our journey and will publish how we leveraged cloud services to replace so much code in the rewrite.

1 Comment RSS · Twitter

[…] Lessons From 6 Software Rewrite Stories […]

Leave a Comment