Some thoughts on team leads and leadership that have come up from time to time. This is often a question many software engineers becoming a team lead have. Leadership is really a different set of skills. Some have an natural ability, but that doesn't mean it can't be learned. As a long time lead and now a manager here is some of the advice I give to first time leaders.
LeadingA team leads fundamental role is maintain and look for ways to improve the performance of the team as a whole. As an individual contributor you want to maximize the return on investment of your time. As a team lead you want to maximize the return on investment of everyone's time that is on the team. This can often come at the cost of not being able to contribute as much individually. But that is okay because you responsibility is not just yourself, it's the team as a whole.
The Bigger Picture
A skill that should already be developing as a Senior Engineer is the ability to shift between the widen focus away from just the implementation and design, to understanding the requirements and their origin. Understanding the business drivers allow a good lead to give alternatives and options that may solve the underlying business problem faster or cheaper, or sometime both. This can only be done by understanding who the customer is, what the problem is that is being addressed for the customer and the business value.
Communication is as much about how to communicate is it is what to communicate. The what may change from job to job, but there is always going to be an analysis, summarization and presentation of options and their costs and benefits. There will also be questions regarding priority, overall strategy and just making sure that your manager is well informed about what is going on.
Intra-team communication is just as important as up-down communication. Making sure everyone on the team is on the same page. Fostering and encouraging collaborative discussions as well as quick daily status standups. This also includes the team's strategy for communicating and interacting with other teams. Making sure that regardless of who on your team someone works with they get the same good customer experience, and same level of communication.
Identifying When to Add New Process or ProceduresLeadership is about widening your lens and taking in all the individual things, the good and the bad, and looking for recurring patterns. Things that cost time, resources, that impact value and that recur are good candidates for new processes or procedures. Raising this recurring patterns to management with options for how to solve or mitigate cost is key to being a good lead.
Leaders at every level are given a certain amount of autonomy when it comes to making decisions. One of the most challenging aspects of becoming a lead is being comfortable making those decisions, as well as understanding where to draw the line. Mutual agreement with your manager on the boundaries of your autonomy is necessary, and can be done on an as-you-go basis since communicating the decisions you make is still required. The boundaries of autonomy are also not necessarily static, they can and should evolve over time as experience and managerial rapport increases. The transition if often from asking permission before doing anything, to informing and potentially being overridden. The later is always preferred as long as the lead and the manager are on the same page as far as priorities and goals.