4 ms·
Many engineering horror stories involve an entire system rewrite. My recommendation is to never rewrite a large system. Literally never. If the people proposing
by CyberRabbi 6y ago
Many engineering horror stories involve an entire system rewrite. My recommendation is to never rewrite a large system. Literally never. If the people proposing the rewrite aren’t capable of adding the features incrementally, they aren’t capable of rewriting the entire system to “easily” support those new features.
- wankerrific 6y agoThis 100%. From the tweets it sounds like the problem they were trying to solve was to make the app more modular so it would scale better to more devs. There were/are well established patterns for doing so in ObjectiveC. The Swift rewrite was not necessary and probably took a very difficult project and turned it into the death march that the OP describes. They should have solved the architectural problem incrementally without adding a 1.0 language rewrite to the mix and then slowly rebuilt the app using Swift. This is so obvious to anyone with experience it seems pretty evident that the decision making process there at the time was deeply flawed.
- deckard1 6y agoI shudder at the thought of hundreds or thousands of Uber engineers banging out a rewrite together. I've been through a number of rewrites, and every single time it always meant the same thing: get your resume ready and look for the exit. It's going to be a multi-year shitshow.
- mpweiher 6y agoI've spent most of my career doing rewrites, each time reluctantly, and each time it was a resounding success. So easy with the absolutes :-)
- CyberRabbi 6y agoPoint taken but something tells me we might have different ideas about what it means for a rewrite to succeed.
- mpweiher 6y agoHmmm...in one case: - Performance (which was a major driver) improved 100x-1000x. - Reliability (other major driver) improved ~100x - Codebase reduced, features increased, habitability dramatically improved - Resource usage redcued ~10-20x https://link.springer.com/chapter/10.1007%2F978-1-4614-9299-3_11 https://link.springer.com/chapter/10.1007%2F978-1-4614-9299-... What would you consider a success?