How to prevent over-engineering? - Deepstash

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.

4

STASHED IN:

21

STASHED IN:

0 Comments

MORE IDEAS FROM Overengineering can kill your product

  • 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.

6

STASHED IN:

24

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.

7

STASHED IN:

25

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.

4

STASHED IN:

20

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.

3

STASHED IN:

21

Deepstash helps you become inspired, wiser and productive, through bite-sized ideas from the best articles, books and videos out there.

GET THE APP:

RELATED IDEA

Problem-solving outside the code editor

Product engineers are experts at identifying, understanding and solving problems. But the problems you tackle – and therefore the impact that you have – don’t have to be limited to the work you do within a text editor or integrated development environment.

Having an impact outside the code editor is about finding ways to shape your company’s culture as much as you build the product. That way, your positive impact will be felt far and wide.

3

STASHED IN:

8

Product Discovery

We typically define product discovery in contrast with product delivery. Product discovery is used to describe the work done to make decisions about what to build, while product delivery is the work done to build, ship, and maintain a production quality product.

Good product discovery includes the customer throughout the decision-making process. through: customer interviews, usability tests, A/B tests, demand tests, customer journey mapping, experience mapping, story mapping, OKRs, opportunity solution trees, ethnographic studies, customer visits, and so on.

2

STASHED IN:

16

To solve a problem, you have to understand exactly what the problem is.

When you start solving a problem, be sure to understand the starting point, the end goal, and the obstacles in between. The worst possible thing is to produce a solution that actually doesn’t do what’s expected.

14

STASHED IN:

277

STASHED IN:

0 Comments