Transitioning from Programming to Management
Management may sound boring for most developers, but as we go through our career it becomes clear that it's a key role for a company. A good manager can make a huge difference in building great teams and awesome products.
Some developers want to build new stuff and have a deep interest on the technical side of things. Others might show a great set of soft skills and care for his teammates, for those, the jump to management might be a good option.
These are just some of the traits of a good manager, but when doing the jump there is much more that should be taken into account. The struggle involved in the jump is pretty real and that's what I want to discuss in this article.
Most developers struggle when moving to a managerial role, I am part of this group. But once you understand why you are struggling you can finally start to work on tools to get better at it. As I got better as a manager I started to get emails, asking me for help, and that's what lead me to write this article, provide an easy way for future managers to understand their struggles and better deal with it.
There is a bunch of reasons that make the transition to management so hard, the initial months can be a real struggle for those without experience. Understanding the issues is the initial step to handle with it, so let's talk about some of the reasons why it feels so hard to make the jump.
Developers are used to have short feedback loops, think about it: you can start a new task by chatting with your teammates, then you can do some pair programming, and later you'll have a code review cycle. That is not all, depending on your team's process you'll have retrospectives and daily meetings.
When transitioning to a managerial position most of that goes away. You can still ask for help, and I actually encourage you to do it, but there will be no "code reviews" nor "pair programming" on your decisions. You won't be able to know if you are doing a good job until you let some of your decisions mature and start showing results.
You can still ask for feedback and I recommend you to do it as well, if you provide the correct environment, you can get an awesome result from that. But to see the results of your actions you will need to give it some time, good results take time.
Not having external validation can be a huge issue for most people, it can easily undermine one's confidence, that's why you need to be able to fight back.
One tool I used to deal with it was having quick review notes, I wrote down the decisions I took and weeks later I'd review that, asking myself if I would take the same decision once again.
Another good resource is to have other managers that you can share experiences with, in a way that you can support each other. Don't be afraid of asking for help, most of the managers I talked with so far are always eager to help a fellow manager.
Fast Context Switching
As developers we are used have to laser focus into tasks for long hours, context switching is something that we are not used to, it's always a pain to stop a task to attend a meeting or something else.
The problem is that when managing you must master context switching, it's actually a great part of the job. Being able to go from one meeting to another, to talk about different tasks, while paying attention to it all, making sure everyone has what it needs.
This requires practice, it sucks to feel lost between different topics but you must power through it. One thing that helped me was to keep notes, physical notes from topics I need to get back and dig further. I visit this notebook every day, many times a day, mostly before meetings, making sure I got everything I needed covered. Writing things down allowed me to context-switch without getting worried about forgetting things.
This is hard, the good thing is that if you ever was a team/technical leader you probably have some experience with this already. For those that never had to delegate tasks this can be a huge issue to overcome. Not doing it properly can result in micromanaging and that won't benefit anyone, you will be stressed trying to keep up with everything and your team will feel like you don't trust them. That will also prevent them from learning from their own mistakes, and from growing.
You need to take the jump. Accept that sharing responsibilities will make it easier for you to do a better job and also help your team to improve their skills.
Managing can be stressful, it drains physical and mental energy. It also drains sentimental energy, yup you read it right, being responsible for other people takes a huge load on mental health, anxiety and stress can easily kick in if you don't watch yourself.
Spare time to recovery, smile, have fun, make sure to invest in healthy relationships. These simple things can have a huge impact on your work.
I tried to keep this post short, but if you're interested in knowing more about management in general make sure to let me know over twitter. I'm always eager to help other and share experiences.