In the realm of Software Engineering Management (EM), technical expertise is paramount, but the true essence lies in leadership and empowering the team. My experiences at prominent companies have led me to explore diverse strategies to effectively manage and support teams, striving for outstanding results and exceeding expectations.
In the following sections, I am eager to share valuable insights and best practices that have shaped me into an efficient EM leader. The focus is on consistent delivery, team contentment, and a well-balanced work environment. Let's dive into these hard-earned lessons to elevate our leadership capabilities as EMs.
Team culture and efficiency
In the pursuit of Team Health, identifying a clear "North Star" becomes essential. A single upper-line metric can align the team towards achieving a common goal. For example, taking ownership of the Onboarding Flow and addressing bugs to enhance success rates drives tangible impact, guiding the team's efforts to fix significant issues first.
Conducting monthly surveys adds depth to understanding team sentiments. Anonymously gauging aspects like manager collaboration, career support, and retention intentions provides valuable insights. These trends facilitate prompt actions when needed.
Recognizing and expressing gratitude for the team's hard work plays a pivotal role. Making a habit of daily "thank you" gestures fosters encouragement and acknowledgment, fostering a positive work environment that fuels further accomplishments.
Create a Goals and Milestones Document for each team member to outline their objectives for the performance cycle. Encourage them to keep it updated to track progress and identify gaps, fostering accountability.
Hold monthly "Career Check-Ins" with each team member, dedicating time exclusively to discuss career planning. Whether they are meeting expectations, excelling, or facing challenges, these focused meetings offer valuable support.
While individual metrics like pull requests, interviews, and bug closures provide a bottom line, they may not always serve as the ultimate goal. Still, they offer insights into team performance. Stay alert for any drop in productivity and address issues promptly to maintain efficiency.
Establish clear work hours and in-office days with your team to foster collaboration. Consider time zone differences and ensure a synchronized online presence, like being online from 10 am to 4 pm in the main time zone.
Written communication is crucial for large, distributed teams. Set expectations for regular updates before project kick-off, technical reviews before implementation, weekly or bi-weekly progress updates, and broadcasted roll-out announcements. Encourage open communication, including immediate reporting of bad news.
Keep a private document to record positive and negative events during the week, noting commitments of team members and partner teams. These performance notes will aid in performance reviews and career discussions, saving time and providing valuable insights.
Weekly One-on-One Meetings: Engaging in weekly one-on-one sessions with each of your team members is crucial, following a collaborative agenda and capturing meeting notes for effective communication.
Projects Sync Weekly Meetings: Conduct team meetings focused on project execution and high-level updates, involving all engineers under your supervision, mandatory tech leads, and invited Product Managers and stakeholders. Taking notes on project progress, blockers, and potential pivots fosters transparency and accountability.
Workstream Weekly Meetings: Assign a Directly Responsible Individual (DRI) from the engineering team for each project to hold weekly syncs with engineers and stakeholders, maintaining an updated project tracker. As the EM, attend these meetings to offer support when necessary.
"Strike Team" Meetings: For fast decision-making and issue prioritization, consider scheduling "Strike" meetings several times a week. These sessions effectively triage and prioritize tasks, making them ideal for stabilizing the product after significant changes.
Build Relationships with Partner Teams: Treat partner teams with respect and seek to understand their perspectives. Avoid treating them as mere "contractors" and instead provide context and a bigger picture of your program. Consider inviting partner teams to offline gatherings you host to strengthen collaboration and goodwill.
"It's all personal, every bit of business," as Michael Corleone of The Godfather said. Recognize that your partners' support is based on goodwill, not obligation. Value their contributions and support.
Daily Walk-Around: Encourage open communication and prompt reporting of both good and bad news. Regularly check project dashboards, stability metrics, pull requests, and on-call chats to stay informed and address issues promptly.
Be a Role Model: Lead by example and set the tone for your team. Show genuine care for each individual and project, emphasize the pursuit of high-quality outcomes, and go the extra mile, especially during challenging times.
Everyone is the Leader: Empower your team to take ownership of the projects they handle, operating as CEOs for their responsibilities. Encourage them to bring up issues along with suggested solutions. Consider exploring the concept further with the guidance of "Turn the Ship Around" by L. David Marquet, providing a framework to cultivate this mindset.
As you begin your journey as a leader, keep in mind the importance of prioritizing your team's well-being, demonstrating care and dedication daily. Feel free to comment, connect with me on LinkedIn, and suggest other topics you'd like to explore regarding success in the tech industry.