| |
Overengineering is an implementation that is too complex relative to its functionality or value. The term is associated with inefficient products, services, infrastructure, buildings, facilities and machines that are unnecessarily costly to develop, maintain and operate. Overengineered items may be rejected by customers and end users as bloated, inefficient and unusable. The following are common types of overengineering.
AssumptionsAssuming you require a technology without knowing why. This can be based on little more than the name of a technology. For example, assuming that you need an integration platform to do integration.Big Upfront DesignTaking future-proofing too far such as a design goes out of its way to support possible future requirements that may never materialize.Bigger is BetterBig thinking that purposely seeks the most impressive approach over the most efficient.
Low Value FeaturesIncluding functions that aren't likely to be used or that are unrelated to your product.Getting lost in analysis, abstraction and logic while missing a more direct solution to a problem.Easy ComplexityComplex solutions that emerge because they are obvious and accessible. It often takes a good deal of insight, experience and skill to find the simplest solution to a problem.
Complexity that evolves over time as inconsistent designs are stacked together resulting in an incomprehensible and brittle structure that engineers are scared to touch.OvercontrolThe urge to control things that don't need to be controlled. For example, implementing guaranteed delivery for messaging when it doesn't matter much if a message is dropped.|
Type | | Definition | A design or implementation that is overly complex relative to its functionality or value. | Related Concepts | |
Software Design
This is the complete list of articles we have written about software design.
If you enjoyed this page, please consider bookmarking Simplicable.
© 2010-2023 Simplicable. All Rights Reserved. Reproduction of materials found on this site, in any form, without explicit permission is prohibited.
View credits & copyrights or citation information for this page.
|