On being an Engineering Manager
In this post I will share what I learned throughout the last year (2017) as a engineering manager of 10 people and how it has impacted me, as a professional.
- A manager should act as a buffer for his/her team. New features, spec changes, requirements are a constant flow. Before even bothering engineers with these, I try to filter out the noise.
- A manager should be optimistic. A team’s moral compass is highly influenced by their lead. I am skeptical and pessimistic by nature, I find it to be somewhat of a struggle to keep a positive outlook. In this particular point, I failed.
- As a manager, the company comes first, the team second and the individual third. I will never commit to things that are impossible to deliver and will always try my best to come up with a compromise. Ultimately the company success is what allows people to have a living: mine and everyone else. Individual egos must be kept in check, since these can influence negatively the dynamics of the team, decrease the productivity and the overall happiness. Software engineering can become an intellectual exercise sometimes, where we are just “kids” trying new technologies, and there is room for this, but I keep in mind that we have a responsibility towards our stakeholders, users and investors.
- My context switching ability has improved. I am able to switch between code, helping an engineer and talk about requirements with a product manager without too much effort.
- My negotiations skills also improved, I used to start a conversation with “no”, now I make a conscious effort to say “no, but” and present different alternatives. Thanks to a fellow engineering manager, I learned to make the distinction between what needs to be build and when it needs to be done. This innocuous detail makes me having a better judgement of the situation.
- On the other hand my ability to focus on a task has dropped considerably. I am no longer able to code for 1h straight. I would say that 15 minutes is a victory. This is a problem I will try to fix somehow during 2018.
- My technical abilities are still sharp, mostly because I spend a lot of my free time looking and writing code. But I can no longer just rely on my day-to-day job to be up to date.
- My UIKit skills are not what they used to be, but to be honest I haven’t had fun doing UIs in a while. This makes me think if this is because of the overall mess that is using UIKit, or it’s just my personal taste that has changed.
- When coding I try to be out of the critical path, doing things that are non-essential. I target areas that wouldn’t block a release from happening (although I have failed this in one occasion).
- I enjoy developing a lot, and this has been one of my biggest endeavours: giving to other engineers features that I would like to do myself. This has proven to be more difficult than I initially thought.
- Having awkward conversations, about missing a deadline, a particular behaviour, or some other thing, has created a psychological burden in me. In some cases it actually keeps me awake at night, thinking about some displeasing situation, which of course has ramifications in my overall performance later. I think this is because these people are not just my colleagues, but friends. Striking the balance between keeping a good relationship and having a tough conversation is tricky and no article or book prepares you for that.
My goals for 2018 are:
- Focus in the good things and not just what went wrong.
- Be nicer to people.
- Improve my ability to focus.
I would like to end this post by sharing some sentences, typical from books that you can find in the “Self-help & personal development” section, that have helped me throughout 2017.