When a rewrite isn’t: rebuilding Slack on the desktop
"Conventional wisdom holds that you should never rewrite your code from scratch, and that’s good advice."Speaking as someone who has done a fair number of rewrites as well as watching rewrites fail, conventional wisdom is somewhat wrong.1. Do a rewrite. Don't try to add features, just replace the existing functionality. Avoid a moving target.2. Rewrite the same project. Don't redesign the database schema at the same time you are rewriting. Try to keep the friction down to a manageable level.3. Incremental rewrites are best. Pick part of the project, rewrite and release that, then get feedback while you work on rewriting the next chunk.