# Engineering is Problem-solving

Last weekend, I discussed with a friend the different approaches we had in our jobs.

I told him an anecdote from my study years.

I have a mathematical background and studied applied mathematics with a sprinkle of computing and applied physics.

During a trimester, our Physics teacher taught us a single theorem (sadly, I can't remember which one...). We had an upcoming exam and what could it be about if not this theorem? The day of the exam, we all applied the theorem as expected... and we all failed the exam.

During the correction, our teacher told us that we all applied the theorem to the stated problem without verifying that the constraints and boundaries were applicable. They were not and the theorem was not a solution to the problem.

The teacher explained to us that he "tricked" us on purpose. His objective was not to make us learn and apply the theorem but to make us think by ourselves:

First, understand the problem, its constraints, and its boundaries.

Thensee if there is an equation, a theorem thatcouldapply to its resolution.

Finally, use this tool to solve the problem optimally.

I told this anecdocte to my friend because that might be the best advice I got during all my studies.

As an engineer, my main task is to solve "problems" that our users face with the toolkits at their disposal.

The toolkits in the IT industry are ever expanding (Cloud! Microservices! Blockchains! Now AI!) and an increasing part of my work is to figure out if a tool is relevant for a given problem.

The reasoning should follow the advice of my teacher: *first* understand the problem to solve, *then* find the solutions that can be applied to it and *finally* find the optimal solution for the problem.

Of course, it is easier said than done as there is a strong industry push to find a technical solution to then apply it to any problem.

- Let's move all our workloads to the cloud!
- Let's add a chatbot to our applications!
- Let's split our monolithic application into microservices!

These tools are fine and definitely suitable for many cases, but they are *never universally applicable*.

Following trends without ensuring they address the specific issue at hand can lead to wasted effort and resources, leaving us with all the downsides of a new technology without reaping its benefits.

Problem-solving is the most creative aspect of my engineering job, the one I enjoy the most and (talking about the latest IT trend) the one least likely to be replaced by artificial intelligence.