
Overengineering – I see this every day, please stop - SQL2219
https://en.wikipedia.org/wiki/Overengineering
======
bluejekyll
There are some examples of cases where "overengineering" actually ended up
being the reason for success: Indian Motorcycles vs. Harley Davidson in a bid
for the WWII US army motorcycle. Harley Davidson won when they delivered a
motorcycle that exceeded all of the require parameters.

Similarly, people might say the MacBook Pro is overengineered with the
aluminum case, but it is a ridiculously solid laptop that I'm not afraid of my
kids touching.

The point, sometimes overengineering is meerly making something substantially
better in some particular way that it becomes more useful.

------
PaulHoule
Like "technical debt", "quality" and other words, "overengineering" is in the
eye of the beholder.

What kind of overengineering do you see in your environment?

------
newtype
"Poorly engineered" and "over engineered" are different.

If the solution is running slow for no good reason it's poorly engineered. If
it's unnecessarily difficult to implement it's poorly engineered. If it eats
up too much memory because it does more than you need it for it's poorly
engineered. If it's taking too long to create, it's poorly engineered.

In my experience I hear the term "over engineered" used by bitchy architects
to describe components that have none of these problems, but are built, under
the covers, using features of the underlying system or techniques that are
unfamiliar to that architect. I hear it used to cover insecurity on teams
containing members of very different skill levels.

If it's a problem, call it poorly engineered and get it fixed; if it's not a
problem and you just can't read it, hit the books or get out of the way. The
term "over engineered" just worries the suits, and does no good.

------
letitleak
I see very little of this in tech and remain pissed at my peers over storage,
printers, cpu mmus, mobile phone upgrades, software with no model to
reason/guess about how it will implement an unfamiliar feature... I am often
happier with a 5 year old hardware product or a 15 year old software one since
its not as well tuned for obsolescence as a current one.

For example, 5 year old celerons support 16Gb of ram which makes them useful
for another five years, modern celerons support 8Gb making them perfectly
engineered for 5 years ago.

[Edit - 5 years ago was 16Gb, 2013 was 32Gb, today's celeron is 8Gb..
progress.]

------
jacques_chester
Overengineering is a label we apply retrospectively.

As a pro-agile bigot, I prefer to avoid it by keeping the work units small. It
greatly reduces the temptation to build a 16 stage rocket when all the users
need me to throw a baseball.

