To build, develop and manage a great team, a Software Engineering Manager needs to keep the focus on the important things. Master the top 5 responsibilities and become an effective leader.
#1 Develop People
People are your most important asset. Whether you are building a new team or managing an existing team, you should spend the most amount of your time on hiring, developing, and growing people. People have different goals, different motivations, and different working styles. People are complex and developing them is very challenging, yet the most rewarding as well.
1:1 is an important tool to provide feedback, gauge the pulse of your employee, build trust and provide clarity. Every person is different and you should tweak your 1:1s based on the person. Some need help, some need reminding, and some others just need space to vent things out. If they are not looking for a solution, don’t offer one. Just be there to listen. Sometimes, they need encouragement to keep going on. Provide them with a pat on the back. Most importantly, people need safety to discuss what’s on their minds. Make sure you can offer a safe and candid environment for all your 1:1s.
You can get my FREE guide for Effective One-on-Ones (1:1) here.
Coaching & Feedback
Give actionable feedback that helps employees improve their performance. Some folks need gentle nudges and take the hint quickly. For others, you may need to lay out an action plan. It’s OK to have different feedback strategies.
There are 3 attributes for feedback that are important – it should be timely (don’t wait too long, or feedback becomes stale); it should be candid (don’t sandwich the bad between the good, have the courage to say what’s important) and make it actionable (what are some ways in which the team member can action on it, discuss and have some next steps, even if it means to have a follow-up discussion next week).
Hiring & Onboarding
As a manager, you should always be on the lookout for ideal candidates for your team, even when you don’t have openings. This may seem counterintuitive. But, think about it. You cannot always anticipate attrition. What happens when a key member decides to leave and you don’t have a backup plan. That’s where “building leads” proves helpful.
When hiring, don’t always go for a rock star. If everyone in your team is a rock star, something is truly amiss. I like to hire employees with growth potential, aptitude for problem-solving, and team players. Hiring isn’t enough, you also need to plan onboarding new members. Offer them training, pair them with a buddy and mentor, and set them up for success.
Meaningful discussions about career development with each member of their team at least once every six months. Have you communicated a clear vision for your team (org or company) to every person on your team? Hows do their career goals map against the team vision? It is very important that they understand and relate to the “why”.
D#2 Deliver Value
You are responsible for creating products, delivering value to your business, and solving customer pain points. You need to wear multiple hats and do everything that’s needed to achieve this. You need to make sure your team is able to work as efficiently as possible, they have clear goals (both short term and long term), and that nothing prevents them from doing their work.
Provide Clear Vision & Goals
First, you need to drive excitement with a clear vision and share the roadmap. Does everyone on the team understand the customer and what we are building? Communicate clear goals to your team. Does everyone know why we are building what we are building? What’s the business value? Have you provided an opportunity for all stakeholders to come together and discuss the why? Is everyone aligned on the priority of our work?
Determine Right Priority
Keep your team focused on its priority for deliverables. In my experience, this is a big one. Engineers tend to get swayed and want to build the world. I help them by prioritizing to solve for the biggest pain and the highest value. Engineering time is precious, don’t whittle it on things that are less important. There is a soft balance in building what’s needed immediately v/s accumulating tech debt. You don’t want to sacrifice software quality for the speed of shipping. At the same time, don’t build what’s not needed. Try to keep the design open to accommodate new needs but don’t try to boil the ocean. Challenge work items that don’t add any customer value or reduce tech debt. The goal is to deliver successful, timely, and high-quality releases.
Check out my blog to learn more about the Prioritization Frameworks that I use frequently.
Get Your Hands Dirty
As a tech leader, don’t be shy to get your hand dirty. Dive in where ever team is struggling. This not only helps your team but also allows you to earn trust. Make data-driven decisions and trade-offs.
#3 Roadmap Strategy and Project Development
As a Manager, it is one of your top responsibilities to know your customer and understand your business priorities. You will be asked for project plans, work estimates, and launch dates. Create a framework to get on top of this.
This is an important aspect of your role. You can enhance this capability by – 1) gaining knowledge of project estimation techniques and 2) building back of the envelope estimates for commonly used software blocks (backend service, web page, database storage, and retrieval, offline processing, etc)
To ensure projects are run smoothly, you need to perform project planning. For broad planning purposes, I like to provide tshirt estimates. But for deeper, higher fidelity planning, I like to work with my tech team to get estimates.
Based on estimates provided by your tech team and available capacity on your team, you will build milestones and delivery timelines. As a manager, resource allocation is an important responsibility for you. Engineers aren’t just a resource. It’s your job to ensure to find the best person for the job, based on the criticality of the job and the person’s interests and goals. Do it in such a way that it allows you to deliver business goals, but also allows the opportunity to grow and stretch your engineering team.
As is true in life, nothing goes smoothly in projects. There may be scope creep, new requirements may need to be absorbed. Requirements ma. To ensure minimum churn, you will need to create a process control.
It’s your job to monitor progress against the plan, manage risks and report progress to your stakeholders. During the course of the project, you will need to course-correct as new findings surface or new risks show up. Your ability to problem solve, resolve distractions and keep the focus on delivery is crucial.
#4 Technologist & Operational Excellence
You are responsible for the effectiveness and quality of the software your team builds. Provide the technical expertise and guidance required to effectively manage your team.
The ability to guide your team towards a solid, scalable, reliable software design is key for an engineering manager. How do you make sure that the right system is being built? Do you have a “design review process” in place? You need to have the technical chops to review a design, ask the right questions to your team and provide technical guidance. You will also need to determine if it is the right solution for the customer, can your team build it, will it cause tech debt, and can be built in a reasonable amount of time.
Communicate to Stakeholders
Being able to communicate technical decisions, progress, and challenges to both technical and non-technical stakeholders is a must. You need to articulate delivery timelines and milestones to your product partners and leaders. Build a transparent framework for creating and reporting work breakdown, effort estimates, and project status.
You need to ensure the software you are building is of high quality. Establish software development standards and best practices for the delivery of scalable and high-quality software. You don’t need to be an expert here. Trust your engineers. But ensure you have a robust code review process in place. Be aware of implementation trade-offs being made.
Here are some questions for you to consider – How often do you review the code your team is writing? Have you discussed the testing strategy? Is the team committed to unit testing? Who is responsible for integration testing? Will there be any automation of tests? Don’t rely on assumptions, make sure your team understands the importance of quality delivery, not just timely delivery.
Know Your Operational Load
How reliable is your software? What is the operational load on your team? And what improvements have you planned to improve the operational burden? As an engineering manager, you need to be aware of these metrics. Establish, instrument, and monitor KPIs. Build a mindset that embraces sustainable growth. Allocate time in your team’s roadmap to improve the health of your software.
#5 Build Your Team
Create a Tech Strategy
As a leader of a tech team, it is vital to determine the project roadmap and tech strategy for your team. Do not let this slide. Otherwise, you will be left at the mercy of changing times. You of course cannot do this in isolation. Understand the aspirations of your team members. Then, work with your leadership and business stakeholders to create a roadmap and tech strategy that is aligned with growth aspirations on your team.
A Team Culture of Learning & Trust
Create an open transparent environment enabling the free flow of communication. This will help to build a culture of trust in your team. This is of paramount importance. A team with no or low trust will crumble as soon as the first wave of problems hits you.
Encourage learning, brainstorming, ideation and knowledge sharing in your team. Find creative ways to carve out learning hours for your team. A Hackathon is a great tool for promoting learning and innovation.
Enable Problem Solving
Emphasize the need for everyone to think of how to solve problems. When you see repeat occurrences of tasks or problems, document solutions as a Standard Operation Procedure (SOP) so that they can be used in the future.
Know Your Team
How do you track the pulse of your team? How are they feeling? Are they happy, bored, or burnt out? Is there a conflict between members? Are they getting challenged? Establishing a routine of 1:1s is one way to know the morale of the team? Team meetings and sprint ceremonies are some other ways to track team progress. And don’t forget to carve out some time for fun, team-bonding activities?
Get your FREE Guide for Effective One-on-Ones (1:1)
Use the Key Pointers and Tips from this Guide
to connect and build trust with every single person on your team.