Overengineering can kill your product - Deepstash
Countering The Great Resignation

Learn more about business with this collection

Ways to counter the Great Resignation

Strategies for making better decisions

Tips for giving effective feedback

Countering The Great Resignation

Discover 90 similar ideas in

It takes just

12 mins to read

Overengineering

It refers to the fact of designing a product in a more complex way than necessary:

Overengineering (or over-engineering, or over-kill) is the act of designing a product or providing a solution to a problem in an overly complicated manner, where a simpler solution can be demonstrated to exist with the same efficiency and effectiveness as that of the original design.

In the context of software: Code or design that solves problems you don’t have.

25

239 reads

Overengineering causes

Overengineering causes

  • Trying to anticipate the future and be ready for the unknown: It's easy to think that we can make it future-proof by investing a little more time “just in case”.
  • A lack of experience. The more senior you are, the less prone you are to overengineer.
  • Loosely defined requirements: If an engineer does not have a well-defined problem, he will tend to overengineer to protect himself from uncertainty.
  • Boredom: If an engineer does not have exciting challenges to face, he may end up complicating any problem simply by trying something new.

33

124 reads

Overengineering consequences

It increases development costs. If engineers do not choose the simplest solution to address a problem, the costs in time and money increase, preventing us from iterating faster. 

It also increases your maintenance costs. Simple code is much easier to program, test, and modify. When you complicate it, the complexity can grow exponentially, impacting our iteration speed.

26

90 reads

How to prevent over-engineering?

The best way to prevent over-engineering is to turn your engineers into true product engineers.

  • Involve them in the day-to-day business, explaining the why after each initiative, and linking it with the metrics that matter for the organization and its vision. 
  • Bring them closer to the users, inviting them to interviews and discovery sessions with them. You want your team to empathize intimately with your user’s problems, so they can quickly discard any engineering effort that won’t solve them as efficiently as possible.

26

67 reads

Mental models to prevent overengineering

  • YAGNI(“You are not going to need it”) tries to prevent you from adding anything that is not strictly necessary to solve the problem you have in front of you because the reality is that most likely, “you won’t need it”.
  • KISS (“Keep it simple stupid”), refers to the fact that simple systems are easier to repair, evolve and maintain. Therefore, simplicity should be one of the goals of any design.
  • Worse is better: There comes the point when having fewer options is preferable to having more; Simplify the use of our product, making it attractive to a broader segment of the market.

33

109 reads

CURATED BY

tucker

“No one can whistle a symphony. It takes a whole orchestra to play it.” - one of my favourite quotes about teasm, by Luccock

Read & Learn

20x Faster

without
deepstash

with
deepstash

with

deepstash

Access to 200,000+ ideas

Access to the mobile app

Unlimited idea saving & library

Unlimited history

Unlimited listening to ideas

Downloading & offline access

Personalized recommendations

Supercharge your mind with one idea per day

Enter your email and spend 1 minute every day to learn something new.

Email

I agree to receive email updates