As engineers, our job is to solve problems. In order to do that, we need to discover them first. To me, the best way to find problems is through doing things while keeping the eyes open.
Problems are everywhere, it’s just whether we can find them or not. Whenever we are doing some task, it’s not just about finishing the task itself, it’s also about discovering new problems along the way. Here we have a cycle of
doing things -> discovering problems -> doing more things. Through this cycle, we make whatever we are building better and better.
If we treat everything we do as an opportunity of discovering new problems, then we will find tons of them. To make this more concrete, let me give some examples:
- Whenever we touch a piece of code, even just one line, it’s an opportunity to look at the surrounding code and see if we can refactor to make it better.
- Whenever we do some repetitive work, it’s an opportunity to automate it.
- Whenever we talk to clients, it’s an opportunity to learn their pain points.
Amar Bose also told an interesting story where the student with the eyes open saw a huge opportunity while doing a quite tedious work.
Keep your eyes open, problems and opportunities are around you.