Evolving our organization: introducing Engineering Managers and Engineering Leads
As we wrote in a previous article, we used to have a Tech Lead role who had responsibility on “how” and “who” during product development: people management and technical execution. It became obvious that in most cases it’s too much for one person to manage people (growth, performance and motivation), along with driving technical execution. At the same time, in most teams, we had one or more senior developers on whom Tech Lead could rely and delegate architecture decisions, quality, mentorship, etc…
We decided to give these engineers roles to make them recognized in the company for their impact, also to improve communication channels, and to help team and product leads. We introduced the role of Engineering Lead to have a major influence on how we build products. Additionally, we replaced the Tech Lead role with the Engineering Manager role, which gave more focus on people and team management (“who”). Since we wrote about Engineering Managers (ex Tech Leads) in a previous article, this text will be focused on Engineering Leads.
The (holy) trinity: Product Manager, Engineering Manager, and Engineering Lead
Before officially introducing this role we met with all Product Managers, Tech Leads (now Engineering Managers), and developers who had a large influence on the team’s work and quality. We listed activities which one team needs in order to be productive and motivated. After listing, all of us together assigned each activity to the role ( or roles ) which we felt is (are) responsible for it. The result is the Venn diagram in Figure 1. below.
Figure 1. Venn diagram representing responsibilities belonging to the Engineering Leads, Engineering Managers, and Product Managers.
As it can be seen from the diagram, there was a mutual consensus on activities for which we believe that the Engineering Lead should be responsible. They are responsible for guiding the technical approach during product development. Engineering Lead focuses on “building software the right way” and also promotes pure-play technical initiatives.
From that diagram, we went on to officially define the role and introduced it to the rest of the org. This change went pretty smoothly, due to the fact that these people unofficially already acted as Engineering Leads and teams accepted this role very quickly.
It’s worth mentioning that one team can have more than one Engineering Lead, depending on product structure and how complex its technology stack is. Similarly, one Engineering Lead can lead more than one team.
Engineering Lead during product development lifecycle
Engineering Leads are very active during the early phase of feature or product development. They communicate frequently with Product Managers on defining stories and epics ready for development. Together, they make sure stories are feasible, negotiate expected time to market and determine needed quality, and also set success metrics for produced work.
During the Product or sprint planning phase, they usually lead or help Engineering Managers through these activities. Engineering Leads should validate technical decisions, estimates, and commitments. Bravo Systems engineering org has several standards on how we build, test, and deploy our software, and Engineering Leads make sure that we follow these standards, or escalate when standards aren’t met. They are also people who write those standards. Their responsibility is also to drive quality, performance, or security of produced work and usually own one or more OKRs related to these aspects. After the release, they should be helping the team monitor business KPIs and non-functional metrics (for example CPU, disk, ram, etc..). During the sprint, they should be reporting on the progress of their area of work.
Since Engineering Leads are experienced software engineers with great knowledge of software development practices and product domain, it is natural to expect them to mentor less experienced or junior engineers. They should contribute to the culture of learning by continuously providing feedback to other team members.
Results
The Engineering Lead role gave certain people a clear definition of what is expected, and also made them recognizable across the company for their impact. Also, it gave a chance to engineers who wanted to be leaders but didn’t have the desire to deal with people management work like performance reviews, hiring, etc. We started by identifying internal people but since then we also hired experienced leaders for this role.
Communication channels improved and we now have a better way to send messages up to top management and downstream to every developer.
What do current Engineering Leads say about the role?
Darko Ivanović, Eureka team
As an engineering lead, I have to be able to multitask as efficiently as possible. The constant juggling of the workload is the norm for this role and while some priorities take precedence, like the team being unobstructed in any tech-related way, it is not always possible to avoid triaging of priorities. This is challenging without a doubt but as long as the team’s velocity does not suffer I would dare to say that the job has been well done.
Dragan Ilić, Data Engineering team
As an engineering lead, my responsibility is to promote the best technical practices in our field of work as well as ensure that everything we build is in accordance with high-quality standards. This requires me to know not only the vast array of different state-of-the-art technologies, concepts, and technical principles in data engineering, but also to have skills in communicating this to the rest of the team and the stakeholders.
Written by
Dejan Cvijanović
Head of Technology