Discovering the role of a Dev Lead

Przemek Smyrdek
Smart Up
Published in
6 min readJul 4, 2018
Photo: Pixabay — https://bit.ly/2KhiOdY

Today’s SmartUp blog post is going to be a bit different. Instead of digging deeper into technical details of our platform, I’d like to shed some light on roles you can find inside of our engineering teams — especially on a role of a Dev Lead. Let’s try to discover this position from an engineer perspective by discussing it with Bartosz Czerwiński, Director of Software Development at SmartRecruiters.

Przemek: Today’s discussion is dedicated to discovering the position of the Dev Lead inside SmartRecruiters, but first I think we should make one step back and talk about our ‘engineering way of doing things’. Could you please explain what’s the default structure of an engineering team inside SmartRecruiters, what are the roles within each team, and how do we develop our product in general?

Bartosz: Yes, let’s start this way. In most cases there are about five people inside of each team, where you can meet back-end engineers, front-end engineers, and for most teams a QA engineer. One of the most important facts about engineering teams at SmartRecruiters is that nearly every team is product-oriented and collaborates with product managers on delivering specific parts of the product roadmap. When it comes to roles of individual team members, there are of course roles tailored to your area of expertise, defined by your contract — i.e. back-end engineer, but additionally you can also be involved in more functional roles like the role of an architect or the Dev Lead. It’s worth to add that this assignment to functional role can change over time, based on, inter alia, projects you’re involved in.

Przemek: Could you explain what areas of team’s daily life could work less efficiently without someone like the Dev Lead? Why do we even need such position?

Bartosz: Well, first let’s understand the fact that developing software is something completely different from e.g. working at the factory. We’re not spending our time on projects where everything is defined right from the very beginning, where you can put an employee into this cycle of getting some piece of work to do, delivering it, and thinking what’s next in front of them. In such case you don’t need someone like the Dev Lead — that’s for sure. Work related to a given project is not limited to implementation phase, but it actually starts much earlier. Before engineers start coding, product managers need someone who can help them gather all the requirements, discover technical and business obstacles, and try to find as many corner cases as possible. Then, when the project enters the implementation phase, there are various activities like business spikes, where both engineers and PMs need someone who can facilitate and connect both worlds to enable smooth cooperation and communication. Answering the original question — without Dev Leads I can imagine much less efficient work environment, where PMs do not get the enough focus and support from the engineering side they need, and where life of a team is full of interruptions e.g. due to broadcasting questions to everyone.

Przemek: Based on what you’ve just said we can say that the Dev Lead role is something which lives pretty close to the business side of projects. How would you compare it then to roles such as a team leader or technical leader, which are often found in other companies? Are there any similarities between them and are we interested in introducing other technical leadership roles?

Bartosz: At SmartRecruiters there are architects who are basically shaping and leading the technical roadmap of each team, and their role is very close to the role of the technical leader. The biggest difference between this role and the role of the Dev Lead is basically about the length of tenure and involvement in projects. Architects, or technical leaders as we could call them, are promoted to this role after reaching a certain level of expertise, commitment, and experience, and very often they stay in this position for long period of time…

Przemek: …and starting from this point we should listen to their advice ;)…

Bartosz: …Yes, exactly (laugh). People who hold the Dev Lead role, on the other hand, change over time. Basically, each member of a team can become the Dev Lead of a given project, and, therefore, everyone has a chance to develop new skills e.g. in the field of project management, and exercise non-technical skills in a real-life, and, last but not least, people have a chance to promote their own brand within the company and outside of it.

Przemek: Can we say that our company values learning and growth opportunities for all, rather then assigning responsibilities to engineers with the most experience and letting them drive every single project for many years?

Bartosz: Yes, exactly. Also, for us, it’s very important that the role of the Dev Lead is not assigned by a manager but instead the team decides who takes the Dev Lead role for a project. It helps us strengthen the identity of the team, as well as you probably know, there are many companies doing this completely differently — instead of giving engineers the autonomy to choose as a team, managers often assign someone, without anyone understanding the reasoning behind it.

Przemek: Could you tell me why it’s the time we started to invest more time into figuring out what’s the proper definition of this role in the context of SmartRecruiters? We know that in the past there were people already holding this position — what kind of improvements are we looking to introduce?

Bartosz: Well… one of the most obvious reasons behind shaping this role properly is the fact that our company is getting more mature, and faces much more complicated and difficult projects on our roadmap. Projects often involve more than one team, with several teams collaborating closely together. In the past Dev Leads were very often focused only on the domain of their ‘own’ teams, while nowadays they need to cross this border and think about cross-team concerns, communicate with multiple PMs, share the knowledge, and ensure the highest of transparency to make sure everyone is on the same page. Another reason for clarifying skills and responsibilities of the Dev Lead is the fact that the company itself grows — there are new people joining us with different background and experience, so by introducing guidelines and documenting the role we’d like to facilitate the onboarding process. For any team member who becomes the Dev Lead, we’d like to provide sufficient support to help them understand their role in the project, and, more importantly, clearly define responsibilities and expectations..

Przemek: What kind of skills can help you become a successful Dev Lead, or help you take the next step in your own development in the context of this role?

Bartosz: I would start with project management skills — of course, from a slightly different angle than the perspective of a Project Manager, but still valid. On the engineering side Dev Leads are responsible for managing efforts around technical spikes, architecture discovery, defining testing strategy, as well as finding answers to most urgent questions raised by other team members. Dev Lead, however, is not obliged to deliver or execute all the things I’ve just mentioned, but instead, along with the team, he or she can decide who would be best to work on a given task or challenge. Second thing I’d mention is the technical expertise and understanding of the domain of other teams. For successful execution of bigger, cross-team project it’s very important to identify who you can reach out to when engineers are struggling with some corner cases, or project details that may affect various parts of the platform. Another important aspect are soft skills — something that brings technical and non-technical concerns together. Dev Leads should develop their skills towards becoming great communicators, so that they are able to collect feedback from various team members and utilize it to make the team work efficiently and collaborate on cross-team projects. Obviously, not every engineer has sufficient experience in all of those areas to become a Dev Lead, but the point is to give everyone a chance to develop their skills.

Przemek: I think it’s very important to notice that only one of the points you’ve mentioned is specifically related to our company — domain knowledge — while other two — soft skills and project management skills — are universally useful in any engineering role or future career.

Bartosz: Yes, and this is exactly what I’ve said earlier — Dev Lead role helps you build your own brand inside of the company, but at the same time you’re developing yourself in multiple, equally useful directions helping you to grow in your professional career. I’ve been interviewing many engineers and I can definitely say that skills you can learn as a Dev Lead are still very rare nowadays, but believe me — market demand for them is huge.

https://www.facebook.com/SmartRecruitersEngineering/

--

--

Przemek Smyrdek
Smart Up

Helping programmers grow and work better. Engineering manager @ DAZN