Leader of the development pack
1. Separate trails of alpha developers
No one who has not been in large firms will believe it, however, the problem of communication in them often confounds development not due to weakness, but due to the strength of the team. Such firms can afford to hire top programmers: with a lot of experience and, at the same time, capable of creative solutions, with a pure flame of source code warriors burning in their hearts. Such alpha developers are ready to break concrete walls and armor, any problem for them is an inspiring challenge.
Jokes aside, this team seems to be a development paradise. Give any task – they will make a top-end, unique solution and ask what else to refine.
However, don’t be fooled by this imaginary oasis of development. Paradise easily turns into hell. Alpha developers are often self-centered. It is difficult for them to communicate, because everyone has a strengthened belief system.
It’s not just that this section is accompanied by a picture from a famous meme. Riddle: how do you think the path of the wolves will continue if you imagine that they are alpha developers on a top project without proper leadership?
Will something stop a real alpha wolf? And what will happen if everyone has powerful paws? I think you can guess…
War will not be prevented by the path trodden by the first woolen leader. Everyone will break through the snow in their own direction.
2. Battle royale driven development
It’s no surprise that out-of-control alpha developers are wreaking havoc in the code. They often perceive rallies as a senseless killing of time. Everyone has their own project in their head. Everyone’s hands are itching to try to do “the right way.” That is, for everyone in their own way.
“Stop” – tell them – they won’t listen. Entities in the code without unity in approaches breed not just beyond the need – a rod through all the holes, forgetting about decency. Duplicate solutions, architectural beauties, frills mixed with the most fashionable technologies. Some of the crafts take root, some remain the lot of their creators. New programmers, of course, are also alpha developers (the company is a top one) – they quickly get tired of figuring out where it is customary to use what. They understand by what rules they play here, uncover creative guns and figure out each one of his own-that-have to.
Talking to alpha developers is also not easy. These are people of technical faith. They will hoot to the manager, they say, “understood, accepted” – and quietly continue their sacred battle for beauty in the code.
Oh, and, of course, the most offensive … The decision of everyone in this massacre is of high quality and strong. They’re really good as hell. People with experience and the will to act. If not for the endless battle for the Truth (which everyone has their own) – the project would have become the best in the world. Can something be done about it?
Only one thing can put an end to the policy of unbridled creativity – the authority shared by the whole team.
3. Chief Tech Lead
All alpha developers can be commanded by a technical leader – a developer who sets the route that other developers will follow.
Through the strength of its expertise and authority technical lead can put things in order in approaches to development. At the same time, it is good if he practically does not participate in the development of features. Its task is to set others a single path for the development of the code base.
Avoid doubts in this matter – the development team is not a magic box in which you pour cool developers, throw tasks and get a fast-growing, high-quality code as a result. Alpha developers need control no less than novice programmers. Unlike the self-doubting Junes, alpha developers can do a lot and do a lot. If there is no unity in their actions, there can be more harm from this than from the meager changes of timid guys taking the first steps in development.
The mobilization of extra efforts before releases can also be avoided by controlling such a person. The tech lead will help pave the way for critical fixes with a cool head, and will also calmly track the dismantling of crutches after the pre-release fever subsides.
The ideal tech lead should have the following qualities:
Undisputed technical authority. The most important thing is quality. It is necessary that all alpha developers agree to one thing: this is the best technical expert in the team.
Yes, fortunately, it is not the law of the jungle in IT, Akella is allowed to miss here. But the alpha developers will not forgive regular mistakes, and the organization will crumble. Underground games will begin with jokes from the tech lead, unspoken contempt and resentment against the tech lead for illiterate decisions.
Willingness to take responsibility. Do not choose a leader who is not ready to take responsibility and lead a team.
Willingness to be a mentor. A good tech lead is teaching 80% of the time. He can practically not write application code on the project. Techlead is like DNA in a cell, it defines the principles of code development. If the tech lead isn’t willing to patiently teach people, it’s a bad tech lead.
One of the key uses for tech lead mentoring is quality code reviews. There is nothing better than learning by example. And there is no better example than practical situations in live code.
Ability to speak. The tech lead must be able to speak in such a way that everyone listens to his words. He can’t be constantly interrupted, he can’t be silenced under the pressure of other alpha developers’ discussions. He should be the facilitator at technical team meetings.
It is up to the tech lead to pronounce the final decisions based on the results of the meetings: firmly and weightily, and at the same time with respect for the team.
The ability to hear. As was said in the last article, you cannot learn to speak convincingly without learning to hear. The tech lead must listen to different opinions and convey to the people expressing these opinions his understanding: the pros and cons of their decisions.
Politeness. The tech lead should be able to give thanks and celebrate achievements. The leader who only orders and distributes cuffs will not be loved.
4. How to choose a tech lead
Dictatorship is not the best way to manage development. The tech lead should give room for the team to act, guiding them with advice – but not imposing decisions only with their authority. If you choose a technical lead who is too tough in pushing through decisions, instead of order on the project, you will get a new level of battle of all against all: with an anti-lead underground, jokes and hidden grievances.
On the other hand, the organization will collapse in which the technical lead takes the position of a mentor without the will and authority to influence the team. The tech lead should have the last word on major technical issues.
Creative freedom guided by the common sense of the tech lead as the most experienced developer on the project is the best policy.
will win balance between creativity and order.
Tips for choosing a tech lead:
You don’t have many tries. The tech lead is an extremely important person for the team. It will be hard to change it. If you change it, the technical team will have distrust in the next lead and in you as a project manager.
Choose your tech lead as if the life of the project depends on it. Such a statement of the question is close to the truth.
Techlid is easier to grow from the old-timers of the project. The expertise of experienced dudes is known to the team. They do not need to prove their authority.
Be sensitive to the team, do not make a mistake in choosing.
If taken from the outside – involve the team in the choice. Invite the developers to compile a questionnaire for the candidate. What knowledge do they expect from a tech lead? Let them themselves set the bar of knowledge, which they consider worthy.
Together with an authoritative alpha developer, select 20-30 questions and arrange a marathon for the candidate. If he falls on the questions of the team, then he will lose credibility in the eyes of the team.
You very unlikely find a person who perfectly combines everything required competencies at a high level. You, as managers, will need to support the tech lead on those skills that he has not covered. As a rule, the main difficulties arise in communication skills.
Don’t be greedy with a tech lead compensation package. High technical expertise, the ability to take responsibility, the ability to combine a unique set of skills – a person who combines so many multi-vector qualities should receive decent money.
Tech leads, at first glance, can seem like useless people. This feeling arises because they are not as involved in applied development as other programmers. However, a team of strong and creative individuals will not work as a unit without a tech lead. For effective development on any project, the main path of development and the one who sets it is necessary. We need one person who will be able to convey his idea to each alpha wolf and unite all powerful paws with well-deserved authority.