3 ms·
Over-engineering just means implementing something that is more advanced/complex than what was needed to get the job done (in the short term). It's not necessa
by jondubois 10y ago
Over-engineering just means implementing something that is more advanced/complex than what was needed to get the job done (in the short term).
It's not necessarily a bad thing in a technological sense, but it's bad for business.
If people can build an extremely powerful, complex system which works well and is stable, then that's great.
Some engineers will stay away from any system which they regard as 'complex' or which doesn't strictly adhere to their technical philosophies about simplicity.
Personally, I think that if enough engineers invest their energy into building a highly complex system, I think eventually they can make it work.
You can just look at operating systems; they are extremely complex but so much human effort has been invested in them that they have become quite stable and have become essential to the functioning of our society.
This is how I feel about newer systems like Docker and Kubernetes - I think that together, they are extremely complex. When Docker started out, I thought it was crazy, I didn't see the utility value; but enough fools got involved that it eventually grew into something meaningful. I think that the offerings we have now with Docker, Kubernetes, Swarm, Mesos, etc... have become extremely compelling.
I think often it's regarded badly in engineering when you have a single component that does a lot of different things (often, that's what people often call over-engineering) - But look at the general-purpose CPU; we didn't need to invent it; people could have been satisfied with building specialized electronics for every kind of machine that just did one job well (no programming needed) but this would have slowed down innovation (because manufacturing circuit boards is expensive and time consuming).
Making generic components that do a lot of different things CAN be extremely useful when you look at the big, long-term picture. It just has to be done well and needs to be given the time to stabilize.