I’ve spent a lot of my profession managing giant refactoring and rebuilding efforts. At Google, I pushed the AdSense crew to fully rewrite our home-grown CRM system. It was a disastrous mistake.
At PagerDuty, I led the trouble to overtake our notifications platform. It pains me to confess how over finances and not on time the undertaking was, however I’d make the identical choice in a heartbeat even when the true value had been higher understood upfront.
Now because the Founder and CEO of my very own startup, I simply scrapped my whole code base and am rebuilding from the bottom up.
Rebuild, refactor, or reside with it choices are a few of the hardest selections a improvement crew must make as a result of they’re emotionally charged judgments. A legacy codebase is the blood, sweat, and tears of the founding crew. It incorporates the collective knowledge — and errors — of your product’s whole historical past. It’s a identified amount. It has its quirks and challenges, nevertheless it works.
You’ve been working round its idiosyncrasies this lengthy; you possibly can finances round them sooner or later. Your tenured engineers possible constructed their careers alongside this codebase, and their reputations hinge on understanding precisely what to do when tough issues come up.