In this post, I want to talk about development team leadership. Even with the right mix of people in your team, without the right kind of leadership, even the best teams will fail.
For the purposes of this post, I am talking about the types of leadership, and the mindset required for someone to be the development team lead.
This person is most likely a member of the development team itself. In some cases, the leadership role could be held by multiple team members, but that is harder to achieve in practice.
What does it mean to lead a development team?
To me, leading a development team is all about supporting the development process. It is about helping the members of the team to be their best, and deliver the best product in line with the business vision.
This statement is about helping, supporting, and directing, but not commanding or controlling in any way.
When leading a team, I’m trying to resolve issues before they affect the team. I’m trying to anticipate questions, resolve ambiguities, and clarify direction before the team works on a particular area of the product.
I’m also working to facilitate the team in their day to day work. I’m helping them, not blocking them. I’m working with the team to help ensure the business vision is delivered in an efficient way, without under-design or over-design.
What types of leadership need to exist?
There are a few different areas of leadership that need to exist within a team. I want to look at the 3 main leadership areas now.
The first area of leadership is product leadership. You probably have some product management or ownership function within your business. This could come from people employed in the product owner or manager role, or it could be the founder themselves.
In terms of leading the development team, in addition to this role, you need someone who is more technical but still has a product focus.
It is their role to bridge the gap between the business vision and set of features, and the implementation of the product.
They need to ensure the development team are aligned with the features.
They need to ask the difficult questions of the product owner in order to fully understand the impact and the detail of the changes being requested.
There are likely many edge cases to be considered with most features. There are some product features that may go against industry best practice. There are some elements of features that may be hard to implement due to contradictions with other features.
Someone needs to be working with both the product management and the development team to identify and resolve this kind of issues.
In addition to product-related leadership, the development team will need strong technical leadership.
There are many types of technical leadership required. This can range from high-level technical strategy to software architecture and design or even just providing advice on the best ways to implement tricky parts of the product.
The details of this role will depend on the capacity your development team has.
The key responsibility is to make sure the product is not held back by an architecture that is either too simplistic or overly complex.
It again is a supporting role in that someone providing technical leadership should be supporting and helping the development team, leading by example, and demonstrating best practices in the context of the product being developed.
This requires full knowledge of the product roadmap and an understanding as to technically what is required to deliver that.
The final type of leadership I want to talk about is process leadership. In a typical agile environment, you could see this as being closely related to someone in a Scrum Master role.
This type of leadership is about ensuring the development team can operate efficiently in a way where they are able to focus on delivering the right things at the right time, without becoming burdened by an over-involved process.
This type of leadership is hard. There will always be a conflict between different people who appreciate or reject different levels of process and autonomy.
The way to approach this again is as a facilitator and always bring it back to focusing on the product in line with the business vision.
This might mean that you have to understand the different levels of service required for different types of work the development team performs.
This might mean that you have to work with everyone in the business to set realistic milestones and help business stakeholders understand how development works, and help developers better understand the needs of the business stakeholders.
This type of leadership is very much about communication and having the confidence and freedom to make a change and get others to buy into that change.