J
J
JeanLouis2011-03-30 00:42:35
Programming
JeanLouis, 2011-03-30 00:42:35

What should a lead developer know and do?

Dear habralyudi, probably many of you work in the office. Some of you work under the direction of a person whose position can be called "lead developer", and some of you are.
Please tell us about your concept, who is the person in the position of “lead developer” for you, what duties does he perform, what should he know, what qualities should he have?
Can he know, on average, less than the members of his development team?
Is it more of an administrative position, where the main thing is the ability to manage, and not technical savvy?
I have these questions because I have been a humble self-employed freelancer all my professional life, now I am interested in the office lifestyle.
Thank you for your answers.

Answer the question

In order to leave comments, you need to log in

8 answer(s)
T
totosarg, 2011-03-30
@totosarg

I can share my American experience, I am a team leader, we have 5 teams in our company. Each team leader, including me, should:
Work with project managers (who formulate tasks in general)
Distribute work within the team
Monitor the timely execution of work
Check the quality of the code of junior developers
Be responsible for your team (they will ask exactly from the team lead)
Compose tons any reports
Timlid reports to the development manager.
By the way, in our company, team leads program no less than others, and the demand from a team lead is greater.
The team leader is not required to know more than the members of his team, however, he is usually an expert in his field.
Teamlead is largely an administrator. However, he is also a programmer. The team leader makes decisions about
certain approaches to solving the tasks. I would say that the team leader is the very first
step on the managerial path.

V
Vitaly Zheltyakov, 2011-03-30
@VitaZheltyakov

- Firstly, he must be able to speak neatly and politely, necessarily, weighing every word. The same goes for his writing. This quality is necessary, both for communication with subordinates, and with superiors and clients. No matter how funny, ignorance of the Russian language is bad for business.
- Secondly, he must be able to organize the work of people. This quality of personality was originally laid down in about 10% of people, in the rest it is developed with experience.
- Thirdly, he must understand the system in which he works. This applies to both the programming environment and the application area. For example, a leading ABS programmer must know not only the programming language for ABS, but also the accounting of credit institutions.
These three qualities distinguish a good lead programmer from a bad one.

W
Wott, 2011-03-30
@Wott

The host, if this is not a formality, should be significantly better as a developer - write code better and better, understand and edit the code of his team - as a rule, he is blamed for managing the code in VCS as part of the work of his team, feature or product. That is, knowledge and experience with VCS is necessary.
Also, the presenter often acts as an expert in his field of competence. Writes/creates a design, defines his part of the architecture, and so on - look towards architects, evangelists and followers
Additionally, the leader, as a rule
, determines/confirms the terms and volumes of work of his team, participates in planning, technical risk management
- controls the volume and quality of work
- deals with the routine in terms of managing the volume of work, quality, plans - escalates, confirms, root bugs, writes reports, and so on - look towards the work of the PMA, which delegates part of the responsibility to the leader within the part of the project assigned to his team. That is, the presenter is a little PM, quite a bit, but this is a different direction than coding as such. For good, this should be taught - courses at least.
It is wrong to blame the line manager for the team in charge, but often it falls down to him.
In developed companies, the leader is the only position in which managerial and technical roles are combined. Some grow in the future into PMs, others into technical experts.

B
Bambre, 2011-03-30
@Bambre

All in all, it really depends on the company. As they wrote the other day, the fact that a person worked as a team leader in a small office does not necessarily give him sufficient skills to qualify for a simpler position as a lead developer in some Microsoft - the requirements can be completely different. In general, a lot has already been written about team leads above. Suppose we have a longer hierarchy - not “team lead -> programmer”, but for example “team lead -> lead programmer -> programmer -> trainee”.
1) With the team leader, it is less and less clear, this person should ideally have the skills of a manager, an architect, be a technical expert in his field and an authoritative member of the team. At the same time, he should not forget that he is part of the team, and not the main dude with the servings. This person makes many decisions (both independently and by accepting the opinions / ideas of other people), is responsible for the team to the management and responsible to the team for everything that happens.
2) lead - usually an experienced developer. Must be able to independently make a decision about the method of implementing the task and think about the consequences of choosing one or another decision. He clearly knows how good code differs from bad code, knows how to evaluate the speed of code execution and the resources it consumes (such as “this code is four times faster than that one, but it eats twice as much memory and increases the load on the database”)
3) a programmer / coder is a person capable of encode a clearly described task on your own (write a function with such and such an interface that will solve such and such a task, and fasten it there). If the task is not described specifically enough, there is a chance to get a crappy solution. On the other hand, vagueness in the problem statement is one way to make the coder think.
4) an intern is a person who, in order to solve even a fairly clearly defined simple task, will need the attention and advice of elders. It is important to distinguish between an idiot and a person with no experience, attention will be required for both, but the second option is the “right” trainee :)

A
Anatoly, 2011-03-30
@taliban

He must be able to communicate with people
He must be able to listen to people
He must be a good example
He must understand that he is not a developer.
He may know less, but then he must know exactly who from his team is capable of what in order to successfully delegate tasks.

J
javax, 2011-03-30
@javax

I call myself an "architect", in fact - the same thing.
Know technology and follow technology. Regularly read specialized websites and blogs.
Have experience in technology selection, architecture, high and low level design solutions.
Be kind enough that people reach out to him with questions.
Have leadership experience or just be far-sighted enough to look at things not only from a developer's point of view, but also from a marketing perspective.

F
FeNUMe, 2011-03-30
@FeNUMe

as for me, the lead developer is the one who makes the main contribution to the development of the project (roughly speaking, the main coder). therefore, the qualities should be appropriate: excellent knowledge of the programming language and related technologies, the ability to correctly understand the tasks and select the best ways to solve them. In general I agree with javax .
But what people described in the comments above is all about team leads and project managers.

A
Andrey Osty, 2013-02-13
@2king2

What's the right way then? "Lead Software Engineer" or "Lead Developer"

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question