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.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. 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.
A design or implementation that is overly complex relative to its functionality or value.