DEV Community

Mauro López
Mauro López

Posted on

I got 99 problems, but that’s better than one

This is a small collection of some lessons learned facing up different situations in my daily life as a software engineer.

In my opinion, work as a software engineer is nothing but the continuous implementation of solutions to different situations, some of them are technical and others no-technical. No matter the type of situation, each one can teach you many things, even things you thought you knew.

This article pretends to be a support for any dev but especially for those who are starting on this great road

We work with computers, but humans are our principal customer

When I talk about a “customer” I’m not only talking about the final user of the app or the product owner, I’m talking about our co-workers too because, in the end, we are giving a service, the service of build software! And real software is building in teams.

So, to be gentle, kind, and empathetic is very important. Virtuality or the fast pace from routine makes it easy to forget that on the other side of the screen/table, there is a human too. Small actions such as showing genuine interest in others or small talks with your teammates can make the different. Every person is different and great on their own.

You can be a leader, no matter where you are

You don't need to wait until you are in a leadership position in order to perform your leadership. No matter your position you always be able to make suggestions, provide solutions, discuss scenarios, spread a good attitude to the team… and by doing that, you will build relations that will allow you to increase your influence zone every day more.

Visibility is the key

Usually, we have an inner voice that tells us we're lost even before we realize we truly are. In that case, the best approach is to raise our hand as soon as we hear it in order to give visibility to the situation and plan different scenarios.

You don't have to send a red flag to the team at the first time you hear the voice I just mentioned, it’s only to communicate that probably that ticket will require more time than you expected or you’re having troubles with X or Y thing and because of that you will need to add new subtask or increase the remaining time of the task. When the situation progress, you can give updates and in case you require help, the situation will be easier to manage because you gave visibility with time

Documentation is like a hug to yourself (or someone else) in the future

Do you remember the reason why you and your friends went to that new cafe and not to the usual one 4 months ago? Well, basically the same here! Sometimes we make small decisions that make a lot of sense at the moment, but we can forget in the future, and in case that you need to look back and understand the reason for the things, you can save a lot of time if you can find context easily. So, document!! Document your methods, document your tickets, document your pull request, document with clear messages your git commitments… document.

Documentation requires time, but trust me, is a good investment. Also, you can add a subtask in your ticket only to document all the stuff you did there.

Conclusions:

  • We work with computers, but humans are our principal customer
  • You can be a leader, no matter where you are
  • Visibility is the key
  • Documentation is like a hug to yourself (or someone else) in the future

Postdata:

This article is based on this other written by Avy Faingezicht (even has the same title, but kind of different focus). I decided to write my own version because I feel identified with many situations exposed there and it was very helpful in order to give me a guide for solving some of my situations as a software engineer. For that reason, I would love to share my experience in case it could help others. Also, I recommended you to take a look into Avy Faingezicht’s blog, which has many other interesting articles and cool photos !

Top comments (0)