If you have already managed to lead programmers a little, being a manager, a team leader of a small team or even a director of a software development company, then you probably know that this is not such a simple matter.
𝐖𝐡𝐲 𝐢𝐬 𝐢𝐭 𝐝𝐢𝐟𝐟𝐢𝐜𝐮𝐥𝐭? 𝐓𝐡𝐞𝐫𝐞 𝐚𝐫𝐞 𝐦𝐚𝐧𝐲 𝐫𝐞𝐚𝐬𝐨𝐧𝐬.
First, former programmers often become programmer managers. And managing people is not at all the same as managing compilers, debuggers and profilers. If you’ve been adept at applying design patterns, there is no guarantee that your people will immediately become a productive team.
Second, many management books provide models of the spherical manager in a vacuum. In general, most books are about methodologies, task management, risk management, change and whatever, but not managing people. The life itself is much more colorful. What if your lead developer comes to you with a request to raise his salary, otherwise he will go to competitors? How to be prepared for this and how to anticipate and prevent all this?
Thirdly, the materials that exist about people management are often not targeted specifically at programmers. And these are very, very unusual people. They are technical and creative at the same time.
Finally, you suddenly discover that in addition to your employees, there is also your boss and fellow managers. With their ambitions, desires and understanding of what is good and what is bad. How to live with it is also not very clear yet. And in books they don’t write about it very much either …
All this is superimposed on one another. There are promotions and staffing cuts. The former bypass you, while the latter, on the contrary, sneak up behind you. How to survive in such a nervous environment?
Since I managed programmers for a long time, and for the last 12 years I am teaching others how to do that, according to the opinions of the people around me, not unsuccessfully, I decided to write a small survival guide for programmer managers. This is my experience, as well as the experience of many successful managers with whom I was lucky to meet and work, and from whom I have learned a lot.
The course is quite transparent. It’s all about people. Let’s talk about things worth paying attention to. And also on the most common mistakes that managers make. Surprisingly, many managers make the same mistakes.
Why should you know this? First, surviving on your own is not a bad goal. Secondly, sorry for the pathos, but the fate of your employees depends on you. Their salary, the amount of free time, which means their families, children … Since you began to manage people, then you simply have no choice but to learn how to do it well. Light reading and … success in the jungle of management!
𝐏𝐚𝐫𝐭 𝐈. 𝐓𝐡𝐞 𝐭𝐞𝐚𝐦
The foundation of any software development area manager’s success is his team. It doesn’t mean that if the team is good, then everything will turn out by itself. It won’t work. Why exactly? It’s a separate story. But it will be much harder to survive with a bad team.
The team, strange as it may sound, consists of people. In general, many large and successful managers always answer that people are the most important thing in management.
Accordingly, the tasks of the manager are simple:
• Hire the right people
• Maximize their productivity
• Keep good people in the team
• Promote the growth of people
Let’s see what’s stopping this.
Hiring employees is perhaps the most important thing. Because hiring mistakes usually turn into all sorts of misfortunes, such as decaying the team or having to spend your time raising an unsuccessful employee. And in general, it takes a huge amount of strength and nerves. Without a guarantee of the result. And often without the result itself.
There are tons of mistakes that managers make when hiring employees.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟏. They hire people dumber than themselves. This usually happens because of simple pride. When it is very difficult for the boss to come to terms with the fact that someone on his team will be smarter. Just think, someone on his team will program better than him! Imagine he will find the code written by the boss, and – oh god! He will blow it to smithereens!
What this leads to is obvious. The boss will have to solve all complex tasks on his own. There will be more and more tasks, and less and less time.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟐. They ask for recommendations per person prior to the interview. There is a statistic that only 5-10% of people are hiring through classifieds. Everyone else goes to interviews by acquaintance. And indeed, it will be somehow more reliable to hire.
But there is one mistake that many managers make – they ask for recommendations on a person _before_ an interview. Recommendations from friends are usually good. As a result, a picture is formed in advance in your head that you want to hire this person. And no matter what he says later in the interview, his mistakes are perceived somehow condescendingly, and the correct answers, on the contrary, confirm the installation.
As a result, you hire a person, and he turns out to be not so cool.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟑. Rely on sympathy. During interviews, some managers look at how they like the interviewee as a person. If he is handsome, he is hired. Well, because if a person is handsome, then he is most likely non-contentious. That is, he will fit into the team normally. And knowledge will come with time. And they are hiring that people. As a result, then they often get a nice person, but a weak engineer. With all that it implies.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟒. Conduct the interview alone. Managers sometimes like to interview by themselves. Or with managers of other teams. But for some reason they don’t invite their employees. Thus, emphasizing who makes decisions here. Or I don’t know what is being emphasized by this. But obviously something unnecessary. The consequence is that then there are problems with the adaptation of a person in a team. Because even if you personally like it, there is no guarantee that the team will accept him.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟓. Don’t be asked to write code. I met this very often in my life. When a person is asked many theoretical questions, or even practical ones, but they don’t ask to write the code. This is very funny. That’s like how to hire a juggler to a circus not asking him to juggle.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟔. Only the person’s current knowledge is evaluated. Sometimes at the interview, they ask a lot of questions about current knowledge. Moreover, they often ask something that can be found in Help or Google in five seconds. Like: to name all the methods of the java.util.MegaClass class. The justification is obvious – “we need the person that will start working right away.” However, programming is an area where knowledge becomes obsolete very quickly. Current knowledge will become useless in two years.
If a person cannot quickly acquire new knowledge, it will not be easy.
𝐏𝐞𝐨𝐩𝐥𝐞 𝐢𝐧 𝐭𝐡𝐞 𝐭𝐞𝐚𝐦
When you work as a programmer, you have to deal mainly with programming languages, compilers, debuggers, libraries and many other interesting things. That is, to deal with “technical problems”.
Many programmers, after becoming managers, continue to try to manage tasks. And people are perceived through the prism of tasks. That is, we make a diagnosis, there is a sharp tilt towards the task-orientation rather than towards the people-orientation. Here are the most common symptoms.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟕. Methodologies are everything. A common misconception in task-oriented managers is that if you follow this methodology, everything will be fine.
Problems begin immediately when you try to implement a methodology. There will be public rejection, then allegedly consent and sabotage, a lot of interesting things … But the trick is that no methodology will insure you against, say, family problems of programmers. Or that another company starts hiring people aggressively. And there will never be time to hedge the irreplaceable people, document the entire code, and deal with all the risks.
It’s not about the methodology, it’s all about people.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟖. Incorrect use of metrics. Programmers are creative people, and no doubt, they really hate being measured. Because they believe that their creativity and flight of thought cannot be measured.
However, many managers still try to compare people. They compare by the the number of lines of code written, the number of defects per thousand lines of code, and many other interesting metrics on the study of which scientists write dissertations, and consultants earn a lot of money.
As a result, managers often begin to reward those people who are doing well in terms of metrics, and not reward those who are not. The main point is that it is very easy to fix the metric. What should be done to make more lines of code? Use copy-paste more often. Fewer functions, more code in functions for ten screens! As a result, in terms of metrics, everything becomes good, but if you look inside then – horror, horror …
Moreover, we note that the metric is not always unambiguous. If you take any product, for example a standard “Minesweeper”. One engineer wrote it in 1,000 lines of code. Another one did it in 20,000 lines of code. Who is a fine fellow?
Obviously the first one. Because the second one probably doesn’t know what loops, functions, and libraries are, etc.
On the other hand, maybe the second made some very extensible design that would easily allow the miner to expand to any number of dimensions. Made the code portable and internationalized. Or, in order to improve performance, he inlined several functions.
In general, it is not clear. Need to figure it out. The metric is a signal that you need to figure it out. Nothing more.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟗. Bureaucracy. Do creative people love bureaucracy? You don’t have to be rocket scientist to answer this question. However, many managers love reports. More in details, more often. It is clear that sometimes there is a need for reports. But it is no necessary even more often to send reports of just such a form and every two hours.
I remember in one of the projects, we filled out 70 line reports with a list of tasks and by the hour – who did what and how much. Then statistics were brought in: how much time it took us for this and that. Were people happy with such reports? No. Did they spend a lot of time filling out the report? Yes, they did. Did anyone need these statistics? Practically, no… It was enough to collect data for a month. Instead of writing these reports for a half a year.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟏𝟎. The process is encouraged, not the result. Many managers love an established process. Process is much better than chaos. But there is one subtlety here.
Loving the process, they encourage its use with all their might. Completely forgetting about the purpose of the process – to provide results. It is believed that if you follow the process, then the result will be. This is not always the case. Sometimes it takes a little creativity and a little chaos to get results.
People are very adaptive. Is the process encouraged but not result? There will be a process, there will be no results.
And the customer pays in the end for the result, not for the process.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟏𝟏. Several tasks at the same time. Since childhood, we all know that between two stools one falls to the ground. And for some reason, very often we try to repeat that experiment at work. With our employees.
A person is given two tasks that he must do at the same time. Or four tasks, that’s even more reliable.
To effectively start doing a task, a person needs time to “turn on”. If you do them at the same time, then a lot of time will be lost on switching.
As a result, tasks will be done more slowly than if they are done one after another. People will get upset that they don’t keep up with anything. This makes the work even slower. People become more upset. And so on till the sad end.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟏𝟐. The manager as a distractive factor. Managers are usually very sociable creatures. If they are also badly self-organized, then what happens?
The employee is suddenly asked to send “right now” a detailed report on what he has done in the last month.
Or to check what the competitors have with the performance (well, this is even more or less meaningful task, but could it be planned in advance?). Or he is asked if he remembers James’s phone number. Or if he has a letter from Mike that he has sent last Monday.
Etc. As a result, a person is distracted from work, because the boss asks. And it does its job twice as slow.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟏𝟑. They talk little to people. When I became a manager, I naturally made not 29 mistakes, but much more. One of the first was this one – I didn’t talk much with my subordinates. I met some of them once a month at the “hello – bye” level. Well, the group was big enough, but that certainly shouldn’t be an excuse. As a result, when our company was divided, two people moved to the new company with me. Out of 17. There were many reasons, but one of them is non-communication.
Actually, why is it bad not to communicate? Because you have no idea what is going on in the head and soul of your employees. And when they themselves come to you, this will most likely mean that it’s too late. For example, that a good employee leaves for another company.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟏𝟒. The intrigues in a team. There are two phases here. First, the manager doesn’t interfere with intrigue. Second, he encourages and creates them.
The second phase is some kind of clinic, which nevertheless sometimes occurs. A form of paranoia, when usually the manager is afraid of being schemed. As a result, instead of a team that works as a whole, you get a group of individuals who are busy fighting each other more than working.
The first phase is much more common. When one of the employees starts complaining about another that he writes a curve and wrong code, makes an idiotic architecture, “it is clearly visible that he is incompetent,” etc. (Note that this is usually said to justify his own failure, i.e. when someone didn’t manage to finish something on time, because someone else’s code is full of errors, etc.) And the manager listens to all this, but does nothing. Thus, encouraging such non-team manifestations.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟏𝟓. Public abuse. This is not about “swearing in public”. The point is that if an employee makes some mistake, then many managers reprimand him about it in public. Either verbally or by sending a letter to the whole team. “I’ve written many times about the importance of running tests before pushing changes into symbol space. However, Vasya, as usual, didn’t read my letters … “
Moreover, some managers do it on purpose, finding in this some kind of educational moment. Apparently, school practices are making themselves felt.
In fact, of course this message only tells the employee that he will never find support from the manager. And this is understood not only by the “guilty” one, but also by all other team members. With public abuse, no trusting relationship between the manager and the employees becomes possible.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟏𝟔. They don’t praise or say thank you. There is such a common belief that if an employee works well, then it goes without saying. But if it’s bad, then it requires the attention of the leadership.
This is, of course, wrong. Here, as with children, it is imperative to encourage correct behavior. And publicly. So that the rest of the children see what is right and how parents like it.
And “thanks” … a little sympathy goes a long way.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟏𝟕. They don’t say bad words. Bad behavior also cannot be left unpunished. However, many managers who want to be very people-oriented are embarrassed to say “bad” words to their employees. Believing that encouraging good behavior should be enough.
In fact, this is most likely just a reluctance to spoil relationships with employees. But the problem is that if you don’t say now, it will get worse. And then you will have to spoil the relationship. And the most interesting thing is that people usually perceive constructive feedback adequately. They understand that they have screwed up.
𝐏𝐚𝐫𝐭 𝐈𝐈. 𝐋𝐞𝐚𝐝𝐞𝐫𝐬𝐡𝐢𝐩
The bosses are perhaps the most interesting participant in the game. At least a lot depends on them. It is all the stranger that very often people do:
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟏𝟖. They don’t manage their boss. Many managers are extremely passive in relation to their superiors. How is this expressed?
“We are told – we do.” For some reason, few people want to come up by themselves with what to do. Most are convinced that it is the job of the bosses to tell what to do.
The second symptom is the belief that the boss’s opinion cannot be changed. Moreover, it is so impossible that some don’t even try. (Note that changing one’s mind doesn’t necessarily mean engaging in open confrontation.)
All other mistakes regarding the authorities are, by and large, a consequence of this.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟏𝟗. They don’t tell their boss “No”. That is, they perceive the words of their manager as an order for execution. Moreover, to say “no” means to question the authority! The interesting thing, the larger the boss, the more adequately he usually perceives the thoughts and objections of subordinates. At least, my experience of communicating with big managers confirms this one hundred percent.
Another reason for non-objection is that often quite conflict-free people become managers (my case), who find psychologically easier to agree. But here sooner or later they commit:
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟐𝟎. They are afraid to bring bad news to their superiors. Because, once without saying “No”, they sign under unrealistic terms. After which things get worse and worse. And delivering this news to the authorities is more and more terrible. And so on in a vicious circle. Until the big oops happens.
Weak managers try to get out of the situation by doing:
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟐𝟏.Trying to blame the team. This can only work if your boss is a complete idiot or completely unprincipled person.
Otherwise, you will be told that you are responsible for the result. And where were you all this time, while life persistently pointed out to you the approach of the inevitable finale?
Plus, once blaming the team, you can safely leave it. Relationships with people will no longer improve.
The second most popular attempt to get out of a hopeless situation with unrealistic deadlines is:
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟐𝟐. Criticism of the bosses. This is when you put the blame on your boss. And together with the team you worry about what kind of stupid bosses it is.
This will certainly give you some short-term popularity in the team, showing that you are on the same side of the barricades with them. But other than that, it will give people a clear message that you, as a manager, are not deciding anything. You don’t know how to defend your point of view and the point of view of the team. Should I work for such a manager, or is it better to look for a more successful one?
𝐏𝐚𝐫𝐭 𝐈𝐈𝐈. 𝐘𝐨𝐮
Sooner or later, many people notice that, having become a manager, they change. They begin to think a little differently, to feel responsibility not only for themselves, but also for the project, for other people. Many of the developers’ problems because of which previously you were ready to fire someone now feel like kindergarten.
This is normal. Then you are on the right track. But there are errors on it.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟐𝟑. Overwork. For some reason, some people think that working hard is very good. If a manager doesn’t overwork, then he is a bad manager. This is a very strange point of view. Because a career doesn’t go up from the amount of work. She goes up from her quality.
Overwork is bad for many people.
Family and personal life are the first to suffer. Simply because they have less time left for it.
There is an opinion that every person must have three things in life: work, family and hobbies. If a person has all this, then everything develops well and harmoniously for him. As soon as one thing begins to devour time at the expense of the other – do not expect happiness.
The second important point is that when a manager spends a lot of time at work, it is a bad example for subordinates. Subordinates also have families and different personal lives, and leaving work before their boss is somehow inconvenient. And even if the boss doesn’t mind that people leaving earlier.
I remember from myself that when I sat at work late and one of my people left earlier, then I understood that this was normal, people had their own business. But I harbored anger. And completely subconsciously. It is very difficult not to do it. I work but he goes to rest!
The most unpleasant thing about overwork is the feeling that you are still don’t keep up with anything. And as a result, you become irritable, you break down on close people, on your own employees. They become demotivated, leave or stop working, and then everything is in a vicious circle.
The next few errors are the reasons for the overworking.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟐𝟒. Closure of information flows. What does it mean? This means that managers don’t share any information, preferring to be its sole owner. Again, I know from myself that it is very pleasant to have some kind of knowledge that few people have. Then you can, on occasion, lay it out profitably. It’s nice, somehow your own importance increases, but it takes a lot of time. Because without you nothing can be decided.
A typical situation. You go on vacation for two weeks leaving the formal deputy. And he says to any question: well, I can’t make a decision here, let’s wait for Sasha. You are returning from vacation. And everything piles on you – the current affairs and what has accumulated over two weeks.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟐𝟓. Micromanagement. Micromanagement is, in fact, a form of mistrust in a person. You gave him some assignment. But you don’t trust him. Therefore, you intervene as often as possible and tell him exactly which buttons to press. There are several negative factors:
First, it takes a lot of time.
Secondly, it is very annoying for people. Nobody likes to be distrusted.
Thirdly, you will do this yourself all your life afterwards. Because a person will no longer take responsibility for what you yourself do.
Another mistrust error is:
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟐𝟔.Lack of delegation. You were a good programmer. Then you became a manager. And then a technical task arrives that you can do in two days. Or you can delegate it to an employee and he will do it in a week, while three days he will keep asking you how and what to do.
Of course you do it yourself. As a result, employees don’t learn, and then you do it yourself all the time (see “Overwork”).
A particular case of this error is the desire to make the work interesting yourself.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟐𝟕. They themselves are trying to make the work interesting. Programming is not always about new technologies, interesting algorithms and creative tasks. Naturally, the manager has a desire to diversify it so that people don’t immediately scatter.
The staff love it. But the bad news is that they start to think it’s the manager’s job to make the job interesting. But in fact, it is the task of each employee to make it interesting. “There is no boring job, there are boring people” ((c) Jim McCarthy).
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟐𝟖. Redelegation. But now you are already an advanced manager and you know that tasks need to be delegated. And distribute them left and right.
The following problem can happen. If a person is not ready to complete the task, then he needs tight control and support from you. If you trust him too much and don’t control at all, then he may not come to you, even if he sees that he himself is not coping. He can try to do everything himself, and then get upset and still come. The result is an unfinished task and a demotivated employee.
𝐌𝐢𝐬𝐭𝐚𝐤𝐞 #𝟐𝟗. Believe that results are everything. This mistake is especially common among managers. For some reason they are sure that the main thing is that the team produces results. And then they (managers, not results) will be noticed and promoted to the next rank.
And for some reason they are not noticed. And in the table of ranks there are people whose teams seem to have worse results … Why is that? Injustice? No, no work on visibility.
Well, that’s enough for now. It would be easy to bring the number of errors to 50, but for now we won’t. Avoiding these basic mistakes is sufficient for survival as a programmer manager. And if you are already doing them, then urgently fix it.
If you correct at least three mistakes that you have found in yourself, then the effect will already exceed all your expectations. The main thing is to do!
𝑷.𝑺. I’d appreciate it if you share in the comments exactly what mistakes you have found in yourself, so that everyone can see – ideal managers exist only in books. And in real life we are who we are.
I personally periodically return to this list and find myself a couple of mistakes. The main thing is to notice and correct them.