{"id":24357,"date":"2019-02-19T16:36:08","date_gmt":"2019-02-19T21:36:08","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=24357"},"modified":"2021-05-28T20:56:11","modified_gmt":"2021-05-29T00:56:11","slug":"lessons-from-6-software-rewrite-stories","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2019\/02\/19\/lessons-from-6-software-rewrite-stories\/","title":{"rendered":"Lessons From 6 Software Rewrite Stories"},"content":{"rendered":"<p><a href=\"https:\/\/medium.com\/@herbcaudill\/lessons-from-6-software-rewrite-stories-635e4c8f7c22\">Herb Caudill<\/a> (via <a href=\"https:\/\/twitter.com\/dhh\/status\/1097937474003685376\">David Heinemeier Hansson<\/a>):<\/p>\n<blockquote cite=\"https:\/\/medium.com\/@herbcaudill\/lessons-from-6-software-rewrite-stories-635e4c8f7c22\"><p>Netscape&rsquo;s disastrous 5.0\/6.0 rewrite is the original poster child for &ldquo;never rewrite&rdquo;, thanks to Joel. [&#8230;] Mozilla, the open-source community that Netscape had created, would go on to release the Firefox browser in 2004&#x200A;&mdash;&#x200A;after yet <em>another<\/em> ground-up rewrite. Firefox did manage to gain back some market share from Microsoft.<\/p>\n<p>[&#8230;]<\/p>\n<p>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. [&#8230;] So they presented Basecamp 2 as a completely new product, with no guarantees that it would be backwards compatible with Basecamp Classic. [&#8230;] That brings us to the second interesting thing they did, which was that they didn&rsquo;t sunset their existing product.<\/p>\n<p>[&#8230;]<\/p>\n<p>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&rsquo;t have made sense to use Visual Studio itself as a starting point, for Microsoft to try to appeal to other platforms by <em>adding<\/em> 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.<\/p>\n<p>[&#8230;]<\/p>\n<p>Inbox gave the Gmail team a way to experiment with features without disrupting workflows for the vast majority of users who didn&rsquo;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.<\/p>\n<p>[&#8230;]<\/p>\n<p>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.\nPresumably this was a nonstarter, you know, because of all the &ldquo;things you should never do&rdquo; and &ldquo;worst strategic mistake&rdquo; stuff. [&#8230;] In the meantime, FogBugz languished in obscurity.<\/p>\n<p>[&#8230;]<\/p>\n<p>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, &ldquo;FreshBooks Classic&rdquo; customers were invited to try the new upgrade&#x200A;&mdash;&#x200A;but they didn&rsquo;t have to, and they could always migrate back to the more familiar version if they wanted.\n<\/p><\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2017\/11\/16\/fogbugz-becomes-manuscript\/\">FogBugz Becomes Manuscript<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2017\/01\/09\/atlassian-acquires-trello\/\">Atlassian Acquires Trello<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2015\/06\/25\/killing-off-wasabi\/\">Killing Off Wasabi<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2015\/10\/13\/fogbugz-jira-and-wasabi\/\">FogBugz, JIRA, and Wasabi<\/a><\/li>\n<\/ul>\n\n<p id=\"lessons-from-6-software-rewrite-stories-update-2019-02-20\">Update (2019-02-20): <a href=\"https:\/\/twitter.com\/FogBugzTeam\/status\/1098287969700433920\">FogBugz<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/FogBugzTeam\/status\/1098287969700433920\">\n<p>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).<\/p>\n<\/blockquote>\n<p>That seems like far too few, unless they are removing a lot of functionality.<\/p>\n\n<p>See also: <a href=\"https:\/\/news.ycombinator.com\/item?id=19205691\">Hacker News<\/a>.<\/p>\n\n<p id=\"lessons-from-6-software-rewrite-stories-update-2019-02-21\">Update (2019-02-21): <a href=\"https:\/\/twitter.com\/FogBugzTeam\/status\/1098573550418444289\">FogBugz<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/FogBugzTeam\/status\/1098573550418444289\">\n<p>We have seen the tweets of disbelief in the 5k LOC for the &ldquo;new cloud stack Fogbugz&rdquo;.  We are documenting our journey and will publish how we leveraged cloud services to replace so much code in the rewrite.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Herb Caudill (via David Heinemeier Hansson): Netscape&rsquo;s disastrous 5.0\/6.0 rewrite is the original poster child for &ldquo;never rewrite&rdquo;, thanks to Joel. [&#8230;] Mozilla, the open-source community that Netscape had created, would go on to release the Firefox browser in 2004&#x200A;&mdash;&#x200A;after yet another ground-up rewrite. Firefox did manage to gain back some market share from Microsoft. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2019-02-19T21:36:11Z","apple_news_api_id":"73376fbb-0643-4c95-9cab-8423857d4e05","apple_news_api_modified_at":"2021-05-29T00:56:14Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAABA==","apple_news_api_share_url":"https:\/\/apple.news\/AczdvuwZDTJWcq4QjhX1OBQ","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[333,1782,101,279,43,1783,433,295,1599,854,2074,1187,1546,96],"class_list":["post-24357","post","type-post","status-publish","format-standard","hentry","category-technology","tag-basecamp","tag-billspring","tag-business","tag-firefox","tag-fogbugz","tag-freshbooks","tag-gmail","tag-history","tag-manuscript","tag-netscape","tag-software-rewrite","tag-visual-studio-code","tag-wasabi","tag-web"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/24357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=24357"}],"version-history":[{"count":5,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/24357\/revisions"}],"predecessor-version":[{"id":24380,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/24357\/revisions\/24380"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=24357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=24357"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=24357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}