Introduction
This is the first of what I hope will be a series of articles focused on how to manage a software engineering team. I intend to cover a broad range of topics from agile methodologies and product management to career development and conflict resolution. I am by no means an expert, I have no advanced degree, just my own perspective and routines. While these articles will be accessible to a broad range of technicians, the focus is intended to be for managers who are new to management as well as those who are building teams and organizations from the ground up. I will attempt to provide practical tools, mechanisms, and methodologies the reader can experiment with immediately. Experimentation is foundational to the reader’s own application of these ideas. If something doesn’t work discard it. There is no system that can fully capture all of the inputs and outputs of managing a software engineering team. As such, each of lessons will describe a set of principles, or tenets, that should provide a framework for navigating the application of the techniques and tools I will outline. These lessons are meant to provide a starting point for the reader’s own experiments. For those new to management, whatever you do, I encourage you to adopt the tenets, processes, and frameworks I will cover and practice them for sometime before you decide to change them. I will go into more detail about that in the lesson titled “Experimentation”. Lastly, I hope these lessons will be living documents and that I can incorporate feedback and update overtime.
First Day
The first day is probably the most important day of any new job. It is also the hardest day to get right. Emotional energy tends to cloud your judgement and impairs your sense of awareness and blinds you to the subtle cues that will help you navigate your new team, org, and company. So, don’t worry too much about it, instead just try to smile and say thank you. You may have transitioned from an engineering role into a management role, or you have been a manager and are new to the team, org, or company. Don’t worry about what you are going to do, what the projects are, how the company works, save that for the next week, month, year. On day one, focus only on establishing a personal connection with the people you will be working with and for. When I say for, I mean your direct reports, your engineers. Successful leadership is not telling people to do things and having them do it. Managers are leaders and leaders are stewards of resources. The most valuable resource are people. So you treat them that way, not as cogs in the wheel, or as fungible components. If you want to find success as measured by the output of your team as it creates value for your org or company, then the only way you will be able to do that is by enabling your engineers to do their best work. The difference between good work and great work is directly measurable. It is a function of time. The longer something takes to get done, the more expensive it is.
Second Day
On your second day, take some time to familiarize yourself with the team's projects, processes, and tools. You don't need to become an expert overnight, but having a basic understanding of your team's work will enable you to engage in meaningful conversations with them. Start identifying areas where you can potentially add value or help improve processes. Additionally, schedule one-on-one meetings with each team member to understand their roles, skills, and career aspirations better. These conversations will also help you assess the team's dynamics, strengths, and weaknesses.
Third Day
On the third day, begin to establish your management style and expectations with the team. Share your vision for the team's success and the values that will guide your decision-making. Encourage open communication and feedback, fostering a culture of trust and collaboration. Begin to involve yourself in team meetings and discussions, observing how the team operates and identifying potential areas for improvement.
Fourth Day
By the fourth day, you should have a good understanding of your team's projects and processes. Start working on a plan to address any gaps, inefficiencies, or areas of improvement you've identified. This could involve streamlining processes, introducing new tools or methodologies, or addressing skill gaps through training and development.
Fifth Day
On the fifth day, continue your one-on-one meetings with team members, and make an effort to establish a connection with other teams and departments within the organization. Building strong relationships with cross-functional partners will be crucial for your team's success and your ability to drive change and collaboration across the organization.
Sixth Day
By the sixth day, you should have a clear plan for addressing the areas of improvement you've identified. Present this plan to your team and solicit their feedback, ensuring that they feel involved and invested in the proposed changes. Remember that change can be difficult for some team members, so be patient and supportive as they adapt to new processes and expectations.
Seventh Day
As the week comes to a close, reflect on your first week as a software engineering manager. Consider the progress you've made in establishing relationships, understanding your team's work, and beginning to drive improvements. Moving forward, continue to foster a culture of trust, collaboration, and continuous learning within your team. Remain open to feedback and be prepared to adapt your approach as needed to ensure the success of your team and the organization as a whole.
The first week as a software engineering manager is crucial for setting the tone of your leadership and establishing a strong foundation for future success. By focusing on building relationships, understanding your team's work, and driving improvements, you will be well-positioned to lead your team effectively and help them reach their full potential.