Lessons from 6 software rewrite stories
https://medium.com/@herbcaudill/lessons-from-6-software-rewrite-stories-635e4c8f7c22
- Joel Spolsky’s essay that you shouldn’t rewrite your service Things You Should Never Do
- But “It depends”. Several examples + some lessons
- Netscape -> Mozilla -> Firefox
- Netscape valued ~$10B, and dicided to rewrite its browser v4.0 -> v5.0 (OpenSourced)
- v6.0 from scratch as previous version didn’t work
- Firefox in 2002 (trully open sourced by Mozilla)
- Lessons: IE6 era caused by it; Company lost its value; Bad decision
- Basecamp -> Basecamp2 -> Basecamp3
- In several years after Basecamp - large tech debt, slow evolving, need to do smth
- Decided to start a new Basecamp2, while supporting (forever!) previous version
- Later - Basecamp3, while supporting (forever!) previous version
- They encourage users to switch, but don’t close the previous versions
- Lessons: Huge win, though they need to support previous versions
- Visual Studio -> VSCode
- Microsoft had internal IDE, that didn’t work outside.
- Decided to suggest something new for everybody (open source + “new era of Microsoft”)
- Greatly pluggable -> tens of thousands of external plugins
- Lessons: Succeeded in building an active open source community; very popular product
- Gmail + Inbox
- Inbox - is another UI for the same backend. Experiment
- A lot of features were ported from Inbox to Gmail
- Lessons: experiments with features without disrupting workflows; a lot of criticism for closing Inbox; should have copied all features to improve happiness
- FogBugz & Trello
- FogBugz was huge in 10 years. Jira was more successfull.
- Decided to copy all Jira features so that “users didn’t have any reason to choose Jira over Trello”
- Wanted to add “joy and interest to developers” -> started Trello
- Created another project for collaborative programming env -> created Glitch
- Lessons: happy developers -> great product; StackOverflow, Trello, Glitch as side projects of FogBugz; FogBugz is dead (sad)
- FreshBooks & BillSpring
- FreshBooks were created not by developers -> huge tech debt
- Decided to secretly create a new product (competitor on the market)
- When it got some success -> announced that it is a new version.
- Lessons: build something next to your current product (that works) is a good idea