Dreaming of being a technical manager
Many people when beginning their adventure with programming, do share a vision of becoming a manager in the future. Some of them more technical, than the others.
Of course there are also those who do not even consider it. Code is their life – respect.
I always belonged to the first ones. I’ve never really wanted to abandon the programming forever. Manager but technical! You could see that with the eyes of your mind, THAT guy, THE master, sitting there and dealing the cards. His own, or somebody’s else company – not important. Managing tens, or hundreds of developers, while checking code in all the time, working on the most sophisticated parts of the system.
Being a number one hacker and best manager in the world at once.
That’s very unlikely to happen, not to say that THIS IS NOT POSSIBLE.
I am afraid I won’t spare you a disappointment here. No excuses.
Unless we talk about one project with the team of 2 developers (in which case, it’s rather a less complex management scenario) but rather like 5 projects and more and a crew of about 10 people (and more).
I know some people that needed time, and a sacrifice of few serious positions before they realized it. There are maybe some exceptions from the rule, but at least I don’t know about any of those, at least personally I don’t know nobody that succeeded with that.
The problem is quite clear: the more time you spend on code at work, the more your employer and your team will suffer. You may also end up (very likely), being neither a good developer, nor good manager.
The subject can be approached from many sides / perspectives. I will describe the main 3 ones.
By employing someone as a manager, supervisors want person that they could rely on. And that’s probably the most important thing. They want people who, apart from delivering development on time, can give them clear information on where the project is at the moment, what are the perspectives and risks. Who is alarming when things do not go well, and simply updates on the status when everything goes according to plan, and has a plan 🙂
In other words, they do not hire him to dive into the code and solve problems in code. Not to implement modules and fix bugs.
He has to manage.
Team member’s view
He has to manage, so solve developer’s problems, but at a completely different level than code level.
Employees expect to be trusted, want to do their job well, want to be appreciated. They want to have ideas and implement them, they want to learn and confront their experience with reality. They do not want to be replaced by the manager, fix bugs after him, and explain the details of the implementation, which a person who does not work with the code 8 hours a day, just does not understand (or understanding takes a lot of time and discussion). This is not what manager is supposed to be doing from the team’s perspective.
He has to manage.
Remove the obstacles, freeing their potential and allowing them to focus on what they can do best – software development. Procedures in the company are important, client satisfaction is essential, clashes with the client and problems with the scope, and schedule – inevitable. However, these are the problems of the manager, not the programmers.
The manager has to listen, and understand. He has to help with problems, he has to organize, he has to share all his available powers with his team. New tools, automation, R&D, there are many things that may release developers from long, manual, unwanted operations – but they do not have the power to process such requests – the manager has to do it for them.
Technical manager’s view
So what is this poor manager supposed to do? He, who wants to be technical, has this passion for programming, is addicted to it?
Option 1: Give up management and switch back to programming if that’s the most important thing for him
In my opinion, people should not have so much fear to drop a managerial job and return to coding. I actually know quite a lot of people who did it. We have only one life. Keep in mind, that working in a position where the only thing you do is looking around for something else than you should be doing is a lose-lose/no-win situation. Everyone’s losing – employees, employers and the manager himself.
Option 2: Do manage
Manage himself, his time, and the time of the others. He has to be responsible and understand the consequences of his decisions. He must understand that if he is a manager at work, it means he has signed up for this and must be perfect at it.
Of course, he may participate in high-level software architecture discussions, technology choices, or even occasionally going to very small things, like code review, if asked for it. But he must know that what everyone appreciates is the added value he brings to the company with his presence.
In the previous paragraphs I have already discussed what value is it for his team and supervisors, but what might be that added value for a manager? Since he already has to manage, he should learn and develop in this field. Setting and reaching the goals, satisfaction from completed tasks, awareness of being helpful in personal development of people in charge. It’s hard to miss the satisfaction.
From my experience also, management moves to private life and a lot of it gets better. Of the things I could mention here, it is definitely time management and listening. Especially for people with technical background, commonly perceived as introvert (or aliens :)). Organization and planning, contact with people – all of this good manager must have a high level. That helps with everything, everytime.
Question: So what with technical development?
Does that mean that all this technical part is gone completely forgotten?
Well, if we chose option 2, and the technology is in the background and does not interfere with the work, then why not develop personally also in this area?
You have to ask yourself a question: if work won’t suffer from that, then what will do?
The day is 24 hours long in every part of the world and no one has more time during the day. Every hour devoted to development after work is a hour less for: sleeping, training, family, friends, or whatever else you spend your time on.
I think the keyword here is (as in most cases): a common sense.
So how to keep up, technologically, as a manager?
I will describe some of my thoughts on a common-sense approach to technological development, while being a manager.
- Do things that do not involve you in the long term and do not carry a lot of responsibility
- Sitting at work and thinking about something else, when deadlines are chasing isn’t helpful
- Even if work won’t suffer, many other things may do, eventually everything
- Do things that will help you with your managerial job (i.e., they’re not just purely development things)
- Things that will allow you to open yourself for the other people
- This will allow you to better understand people and get better at helping them
- Do things that do not coincide with what you are doing at work (e.g. technology stack)
- It will let you gain a broader perspective on technological issues, so called “Technological awareness”
- At the same time, it will not make you feel like a technology expert in the field you are working on, which could tempt you to question your people’s skills
- Plan longer projects/activities with your family so that each period is clearly defined (i.e. has clearly defined when it starts and ends), and what are the eventual benefits, it will be easier then to understand and appreciate it
- Use social media to follow the people from whom you easily get news and learn about the most interesting tech areas
- Try to define your goals for the year, and stick to them – like a real manager
- This will allow you to do not engage in things that are not valuable enough, thereby increasing the chances of achieving the goals you have set.
In order to not leave you with general remarks, I will share several ideas that work fine for me.
- StackOverflow – teaches to understand others and help them so that they could understand you
- Social media (eg. Twitter, LinkedIn) – gives me a lot of information on technology news and management
- Live presentations – all kinds of meetups, not necessarily as a speaker
- HackerRank, Potyczki algorytmiczne (sorry, Polish only): doing short development tasks (constraints like: time, memory, cpu etc.)
- Blogging – writing a blog, like the one you are reading right now 🙂
- Technical trainings and conferences – good source of information, that doesn’t require you to continue after it’s finished
- Social initiatives/competitions – like Daj się poznać/Get noticed for me for the second year in a row (upon approval of my wife :))
- Videos on technology – such as online courses, presentations from conference, pluralsight trainings etc.
- Listening to podcasts (eg. DevTalk, Hanselminutes) – fits well for running or traveling or any longer task as it does not require manual operations (just a headset and you’re ready to go).
Quite a few of them, but there’s probably a lot more of it, each brings unique value. Those are my recommendations.
And what do you think about it? What are your feelings/experience? Let me know in the comments, and…