3 ms·
In my experience, the change in business circumstances is precisely what creates the spaghetti code in the first place. It's far easier to write a beautiful ext
by Schwolop 12y ago
In my experience, the change in business circumstances is precisely what creates the spaghetti code in the first place. It's far easier to write a beautiful extensible system if you have solid unchanging requirements - when the reqs change in foreseen ways that extensibility looks like great foresight. When the reqs change unpredictably, often all that work on extensibility is wasted or even detrimental because the changes required are deeper or different to what the original system made possible.
I think some of the art of software engineering is in the softer skill or predicting how requirements are likely to change in the future, and building in extensibility only where its likely to be needed (or is easy to get for free/cheap, which sometimes happens too.) It's like YAGNI vs pragmatism.
- gknoy 12y agosome of the art of software engineering is in ... predicting how requirements are likely to change in the future, and building in extensibility only where needed I agree. I've definitely fallen into the trap of overengineering an extensible, multi-use solution for something that gets used once. I've also been blessed to be encouraged by my boss to go all-in on reusability on a different feature, which turned out to have really paid dividends now that pretty much every subsequent feature request has been able to be handled without hassle. It's definitely a skill I expect to continue to improve at over my career. :)