Assumptions
Assuming 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 Design
Taking future-proofing too far such as a design goes out of its way to support possible future requirements that may never materialize.Bigger is Better
Big thinking that purposely seeks the most impressive approach over the most efficient.Low Value Features
Including functions that aren't likely to be used or that are unrelated to your product.Overthinking
Getting lost in analysis, abstraction and logic while missing a more direct solution to a problem.Easy Complexity
Complex 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.Big Ball of Mud
Complexity that evolves over time as inconsistent designs are stacked together resulting in an incomprehensible and brittle structure that engineers are scared to touch.Overcontrol
The 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.Overview: Overengineering | ||
Type | ||
Definition | A design or implementation that is overly complex relative to its functionality or value. | |
Related Concepts |