The Art of Simplifying in Engineering

The Art of Simplifying in Engineering

The more complex a solution is -> more 💰cost for the business!


In the world of engineering the term complexity may seem to sound good right? The more complex a certain thing is, the more “wow” effect it has.

Well, all of that complexity comes with a cost! And the cost can be huge. The more complex a certain thing is, the costlier it is for the business to ensure it works correctly.

Is complexity something we should praise or we should avoid?

I have made the mistake of thinking that complexity is a good thing or something we can't avoid

Processes should be introduced to help not to add complexity!

It’s common in our industry that complexity is inevitable, but that’s not the way to go.

Is simplifying as much as possible, is it the way to go?

As an engineer, I thought if I put a bit more effort in the beginning, I could solve all of the future problems.

Well, I was very wrong. For example: I’ve built an abstraction (a reusable component) that was only used one time in the whole application. It kept being used only once until there was the need to adjust it a lot for the second time, which I did, but it became very complex.

Well, what happened next, was that there was a requirement to use it for the third time and it was completely different again. That’s where I needed to refactor and split this abstraction into 3 different cases and it took a lot of time to do that.

I would avoid this completely if I would:

  • Keep it simple in the beginning with no abstraction (KISS method).
  • Didn’t try to predict or solve future problems that may not even exist (YAGNI method).

Obviously Yes! Simplifying as much as possible is the way to go

As you can see from failure, I would have avoided those issues if I would try to simplify things as much as possible and not introduce additional complexity.

Therefore my recommendation is to always have this in mind.

Simplifying is my personal philosophy now!

Simplifying as much as possible is one of the key philosophies that I use daily right now. I use it for both professional and personal purposes.

For every particular issue, problem or goal I have in mind - I always like to ask myself, what would be the simplest solution for this?

Here are some of the cases:

  • You get certain requirements for a new functionality → Try to really understand the requirements and propose simpler solutions before starting with implementation. Your first instinct to jump straight into implementation might be wrong!
  • Always create a plan before starting with implementation → If you just try to “wing” it, you will introduce unnecessary complexity. With a good plan, you can avoid that.
  • There is a certain problem in the software development process → Try to really understand the problem and where it is and try to simplify the process, before introducing additional steps.
  • Always think what would be the best for the users → If you provide a simple solution, you would spend less time building it and the users would receive value faster + you would get feedback faster.
  • Simplify your calendar as much as possible → combine your meetings together and block out the focus time for yourself. Just this alone will make your day-to-day work a lot easier.


Last words

Your first instinct might be to jump to the first solution that comes to your mind, but if there is one thing to take from the article is that it’s not the way to go → always look for a way to simplify it first!

“Everything should be made as simple as possible, but not simpler”— Albert Einstein

To view or add a comment, sign in

Insights from the community

Others also viewed

Explore topics