10 ms·
I really agree with a lot of this. I'll tell you what though, if you have a programming task that you find boring, over-engineering it and over-architecting it
by codeulike 5y ago
I really agree with a lot of this.
I'll tell you what though, if you have a programming task that you find boring, over-engineering it and over-architecting it can make it _so_ much more enjoyable.
- systemvoltage 5y agoBut that makes it difficult for others to maintain it.
- codeulike 5y agoOf course. I'm trying to point out one of the causes of over-engineering
- systemvoltage 5y agoSorry for obvious reaction. Already burned by this. :-)
- codeulike 5y agoYes, it's a widespread problem. Crafting code for maximum maintainability is often really important and often overlooked
- lanstin 5y agoMaintainable code can be changed more easily than unmaintainable code. Each change will tend to make code either more or less maintainable. Over time, the probability of maintainable code being refactored into unmaintainable code approaches 1. Most older code based observed were in fact found to be unmaintainable, supporting the theory.
- deleted 5y ago[deleted]
- mateo411 5y agoYes, it does. Better get some more head count for that.
- dkarl 5y agoYou better have the self-delusive ability to love and cherish that over-engineered system, because you will go from "not enough to do" to "can't keep up with the business because every little change requires 40 hours of heads-down work" in no time flat.
- Aeolun 5y agoI think if you end up in that situation because of overengineering your engineering is not very good in the first place. Even overengineered systems should be simple to change.
- codeulike 5y agoEven overengineered systems should be simple to change. Clearly you've never met a 10x over-engineer Over-engineering (for example over-generalising or adding too many layers of abstraction) is typically done with certain sorts of potential future changes in mind, so in the resulting system some changes are easy but some types of change (the ones the over-engineer didn't anticipate) can only be done with massive refactoring.
- galaxyLogic 5y agoThe general problem is that it is hard to estimate the amount of changes needed in the future. You have to make a guess. Sometimes this leads to over-engineering. Sometimes it leads to under-engineering. Depends on the case, the future, and the skill of the engineer.
- csande17 5y agoMy favorite designs are the ones that can't even solve current problems, much less anything that might need to change later, because they spent so much time optimizing for non-existent future scenarios that the present ones suffer. "Sure, our web application might take a minimum of two seconds to handle trivial get requests, and logging in doesn't work half the time, but say the word and I can instantly migrate from Postgres to MySQL."
- cmrdporcupine 5y agoAnd that, my friends, is why the FAANGs need to hire tens of thousands of software engineers to copy protobufs from one place to another...
- paxys 5y agoI'm glad that works for you, but I am also really glad that I don't work with you.
- bigbizisverywyz 5y agoPity those that have to maintain it later though.