Thoughts on managing engineering teams
I have played a role of tech lead for engineering team for almost three years; two years at Tata technologies and eight months at Intuit (current role). I wanted to take time and document some of my methods and techniques which have helped me to play this role with high proficiency.
Before I deep dive into the methods on different aspects of engineering management, here's a quick diagram from Holloway indicating the career paths for IC vs EM.
1. Communication, Delegation, Accountability
On Communication
Communication is the lifeline of every team.
As a EM / TL, you will be in constant communication with stakeholders at different levels. This includes your direct manager and higher leadership, your team that you are leading and your cross functional teams who are dependent on your deliverables either directly or indirectly.
I maintain a HOT LIST of key leadership stakeholders and initiatives. This is the list where I communicate updates daily, follow up on new requests or share outs. I have a HOT LIST section bookmarked in slack where I keep the the response SLA to within 15 min or less. This has helped me to ensure that all my stakeholders are informed of the current state of my teams progress on the initiative and next steps if any. I take full responsibility of communications coming through this hot contacts.
I like to work very closely with my flight crew or the team I am managing.I interact them throughout the day everyday and try to gauge a good pulse of the current state of the progress we are making, without being micro managing. I communicate the expectations explicitly before hand. I ensure that the team has all the clarity it needs to execute the tasks seamlessly. Some of the processes which help me with achieving this is daily stand ups, quick huddles, office hours, summary notes etc.
On Delegation
As an engineering lead, I get pulled into multiple things in parallel. Its extremely important for me to delegate tasks as they come.
I use delegation as the initial filter for every ask. If a task can be delegated to someone on my team, I delegate it immediately.
The framework of delegation that I use is very simple : Identify - Educate/Equip - Engage - Close
Whenever I have task at hand or a new ask, I try to identify one of two types of people 1) someone who already knows how to do the task 2) someone who has interest and want to learn the task. Once I identify a personnel, I equip them with all the information that they would need to execute the task. I also educate them about all the people / tools they might need to execute this task.
After this I let the person execute the task. Once the task is complete, I communicate feedback / appreciation and close on it.
One of the other frameworks for delegation which I am trying to practice these days is "the radical delegation framework by Shreyash Doshi".
Learn more about this framework here.
On Accountability
When working with a team of engineers, its important to keep the team accountable for tasks they own. I have been using a modified version of the Accountability Dial for keeping my team accountable. Rather than 5 steps, I follow a shortened 3 step version where I start with casual gentle reminder.
If the task is still incomplete, I share my concern through open direct communication. Additionally I try to cover two things - 1) what would I do if I were to do this task 2) consequences if the task continues to be undone.
If the last follow up, I start the communication including my escalation leadership and provide a strict deadline for the task to be done.
Learn more about this framework here
2. Conflict Management
"Never avoid conflicts. Just tackle them head on, without emotion and ego. Never be too attached to your ideas because there are better ones which you might be missing."
I had to do a 180 degree thought pattern shift and accept that conflicts are part of the day to day life in high stake environments.
The mental model that I really find helpful while handling conflicts , is conscious curiosity. With this method you are always trying to understand the other persons perspective and evaluate it from all the angles which your solution or proposal considers.
Always keeping an eye on the goal is key during conflict management. During conflicts, its very easy to drift away as people start defending their sides and sometimes become adamant. At such time, it always helps to remind the group of the goal that the team is chasing.
When you are in a deadlock situation, follow a simple rule to Disagree but commit
3. Product, Process
Sticky products can only be built by the engineers living in the customers skin.
Intuit has a formal process called "Follow Me Home" through which engineers are encouraged to connect with one of the existing customers and observe how they use our products. The goal is to learn the good points and the opportunities for future features.
I strongly believe that 70%+ of the problems in a team setting can be avoided or eliminated by having mature processes. Anything thats redundant, non-creative and static should be automated through processes. Processes build the foundation for a productive team environment. Always be on lookout for tiny / mid size problems which could be solved with process improvements.
Once you define the process, have drivers to ensure that the processes are followed and adopted diligently.
4. Relationships, Team Culture
The foundation of all teams is strong trust based relationships with open communication lines.
Trust can only be built when you spend time getting to know your team outside of work. Know their hobbies, what they enjoy doing in spare time and share your common interests with them.
People enjoy working with people who they can relate with and share commonalities with. For this reason, I always try to connect at personal level with my team. This has always helped me to build a trust based strong relationships.
Appreciate your team publicly. Always find and leverage opportunities to build your people up through active genuine encouragement.
5. Performance Feedback
I haven't done focal reviews personally but I do have to have these conversations where I need to provide certain feedback about how someone did on the task they were assigned.
I always aim to provide specific contextual objective feedback. In case of constructive feedbacks, I always recommend few alternate ways which we could explore next time.
Here's a quick feedback mental model for reference. I try keep my feedback format in the top right or bottom right quadrant.
Learn more about this framework here