Lead developer role

In our team, we develop multiple projects. Each of the projects has a lead developer. The lead developer is responsible for:

  • Performing the role of the developer
  • Having a deep understanding of the project
  • Leading the development
  • Making sure the development process is being followed
  • Tracking monitoring alerts
  • Handling emergencies
  • Introducing improvements
  • Keeping an eye on the team

Understanding project

Lead developer fully understands the business requirements for the project and the project structure. Lead developer communicates with clients to keep up with their expectations of the project, guides other team members through the codebase, and shares own knowledge when needed.

Leading the development

Major features, refactorings, and all merge requests to the upstream has to be approved by the lead developer. When some developer of the team encounters a difficult problem that cannot be solved on their own, it is the responsibility of the lead developer to either find a solution to the problem or acknowledge that problem is unsolvable and communicate with a client about the issue.

Making sure the development process is being followed

Lead developer manages or assigns a person to manage sprint plans, makes sure retrospective meetings with clients happen on time, merge request and testing flows are being followed, and team members are estimating stories on time.

Leave of absence

In case the lead developer takes a leave of absence, the following responsibilities have to be taken care of:

  • Notify the representative of the client’s team.
  • Assign a substitute lead developer who will be responsible for the project.
  • Forward all emails related to the project to the substitute lead developer.

Tracking monitoring alerts

Lead developer keeps an eye on the monitoring alerts (errbit, monit, etc.) and assesses the issues. If an issue is not mission critical, lead developer informs other developers about it as soon as the workday starts so they can fix it.

Handling emergencies

In very rare cases an emergency may occur. An emergency is defined as a mission critical bug or a system failure which makes the app unusable for the end-user. The lead developer is responsible for making sure that the issue is solved as soon as possible.

Someone from the team will be notified about an emergency. Possible channels to be notified about an emergency include:

  • Monitoring alerts.
  • Member of the client’s team.
  • End-users (depends on the project if the end-users have a direct communication channel to the developers).

It is then the responsibility of the lead developer to fix the issue immediately or find the responsible developer who will fix it.

Introducing improvements

Lead developer identifies problems and pain points in the development process and offers improvements to it, may it be things that speed up development, automate boring tasks, or prevents mistakes from happening. When other team members present improvements to lead developer, the lead developer is supportive and encourage further improvements unless these improvements don’t bring benefit, and not otherwise.

Keeping an eye on the team

The lead developer keeps track of what each member of his team is working on, what are the things that slow down the development, and what causes frustration among the team members. It is the lead developer’s responsibility to professionally assess the situation and find the solution quickly, without getting into arguments and emotionalities.

The lead developer is also responsible for tracking the performance and bug ratio of each team member at least once a week. The bug count may be determined by consulting with the tester. This will assist in finding if one particular team member is responsible for the majority of the bugs. For example, the velocity of one particular team member may be very high, but the team member might be causing many more bugs compared to other team members. In such case the lead developer should, in a professional manner, inform the developer about the issue explaining how to balance the performance and bug ratio.