3 ms·
> And the final point is don't be afraid to rewrite the entire system if you have that ability. No... you should absolutely be afraid of that. https://www.joe
by tstrimple 3y ago
> And the final point is don't be afraid to rewrite the entire system if you have that ability.
No... you should absolutely be afraid of that.
https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/ https://www.joelonsoftware.com/2000/04/06/things-you-should-...
Rewriting your entire system is almost always the wrong thing to do and has been the end of plenty of products and companies. I think Joel is spot on here. It's much more difficult to read code than to write code, so new developers always think existing code bases are junk and need to be scrapped while ignoring the value that platform has delivered over years if not decades. Developers aren't paid to be craftsmen. They are paid to deliver a product that provides business value.
Too often developers lose sight of the business value and want to write code for the sake of the craft. You're working for Ikea and complain that you can't use your fancy woodworking tools and techniques and have to stick to dowel based assembly instead of that fancy joinery you'd rather be working with. Those fancy joints are stronger and more stable after all! And what the fuck is up with all the particle board?! All real woodworkers know the stuff is junk and will fall apart as soon as it gets wet. We should be working with mahogany and walnut with cocobolo inlays!
There are places where your fancy joinery skills are appreciated and none of those expenses are spared. But most developers are working at an Ikea or equivalent where the predictability of cost and process is well understood and a reliable product can be delivered at a reasonable price. If you want to be a craftsman, you need to work at the places who are looking for those skills and not just the places who want flat pack furniture quickly and cheaply to keep delivering value to their customers.
- pacificmaelstrm 3y agoI agree with you on the value proposition consideration. "If you have that ability" I think I specifically called out the danger of the average developer rewriting code because they don't understand it. But If you DO understand the code base and you do have the time/resources/vision you can rewrite as a form of radical refactoring, taking the lessons learned over the original development and compressing them into a newer system that allows some kind of business expansion/pivot/innovation. Yes all change requires risk but there is risk in not changing as well. Companies go under just as often from NOT rewriting or NOT building something new/better. If you don't truly understand the whole system and you don't have a business case for what your new system would do then DON'T rewrite. On the flip side, if you DO understand a 20million+ line codebase of your company's web app and you know you could rewrite it all yourself/with a small team and make it 10x better then definitely don't waste time arguing with your boss about whether refactoring is a good idea. Quit and start your own company because you've identified a massive inefficiency in the market to exploit.