Development Lead
The Development Lead Role
The Development Lead is responsible for ensuring that the development conducted is of high quality and that the team are creating maintainable, scalable and secure software solutions that meet the needs of the customers and stakeholders. To achieve this the Development Lead recruits, manages and coaches developers in the Stream Teams and defines the Development principles to guide their work.
In addition, the Development Lead assists the product strategy by providing insights and perspectives from the development work conducted.
Key Responsibilities
- Defining Development Principles: Defining the development principles that guide the work of the developers in the Stream Teams.
- Contributing to the Stream Team Structures: Assisting with the value stream definition, Stream Team allocations and ongoing management of the structures.
- Contributing to the Product Strategic Direction: Contributing to the product vision, strategy, Stream Team objectives and tracking the progress of the Stream Teams.
- Tracking Product Performance: Monitoring the performance of the product in the market and the performance of the Stream Teams in delivering the product.
- Recruiting: Recruiting developers for the Stream Teams and ensuring effective onboarding to get them up to speed quickly.
- Coaching: Setting clear expectations for the developers in the Stream Teams and providing regular feedback and support to help them improve.
- Managing Performance: Looking after the performance of the developers in the Stream Teams including conducting performance reviews and managing any performance issues.
- Collaboratively Designing the Culture: Working with the other Product Team members to define, design and implement the culture of the Stream Teams.
Key Artifacts Produced
- Development Principles: A document outlining the development principles that guide the work of the developers in the Stream Teams.
- Product Strategy: A document outlining the current diagnosis of the market, the areas of focus and the actions required to achieve the product vision.
- Skills Gaps Analysis Report: A document outlining the skills gaps in the Stream Teams and the actions required to close them.
- Candidate Pipeline: A continuously updated list of potential candidates for the Stream Teams.
- Detailed Job Descriptions: A document outlining the roles and responsibilities of the developers in the Stream Teams.
- Performance Levels: The different performance levels of the developers in the Stream Teams and the expectations for each level.
- Development Capability Assessments: Assessments of the development capabilities of individuals to guide the coaching and development of the developers in the Stream Teams.
- Individual Career Development Plans: A document outlining the career aspirations of the developers in the Stream Teams and the actions required to achieve them.
Should the Development Lead be a Developer?
Going from a developer to a development lead is a career change. You are no longer responsible for the development work but for the people who do the development work. In essence, you are a people manager. Therefore, while helpful, it is not necessary for the Development Lead to be a developer themselves.
A deep understanding of development principles and practices will help the Development Lead to more effectively recruit and manage developers, but these skills can be learned. As people grow through the ranks of people management, they will increasingly need to manage areas where they do not have any expertise and will need to learn the necessary skills to do so.
Some companies insist on the player-coach model where the Development Lead is also a developer. This can work but the needs of the two jobs are very different and it can be difficult to balance the two. The intent behind this is that you need someone who knows the craft to lead and grow the performance of the team. ZeroBlockers achieves this goal with a separation between Development Leads in Product Teams and experienced developers in Enabling Teams.
Enabling Teams are functionally aligned teams staffed with the most senior and experienced individual contributors in the company. They are responsible for defining the functional standards and best practices for the Stream Teams and training people to improve the quality of the craft.
On top of allowing people to focus more and be more effective in their respective areas, this separation delivers a secondary benefit: it provides an alternative career path for developers in the company. You can choose to move into people management and look more into the strategy of the product or you can choose to stay in the craft and become an expert in your field. Both options provide an opportunity for people to leverage their skills and experience.