I set out this year to spend some time each month thinking about how I could give back some of the learning I've gained over my career. I especially wanted to help new engineering managers transition from writing code (or other technical pursuits) to managing a team of software engineers.
Some of these articles took some effort and some just flowed through my keyboard like magic - but all of them were fun and represent a small part of what I've learned from my managers, mentors and friends.
I hope you find some useful nuggets in them!
How to use "ruthless prioritization" for engineering managers who face conflicting priorities between new software development and maintaining existing systems. It emphasizes the importance of making tough decisions, managing stakeholder expectations, and mentoring team members to ensure sustainable progress while minimizing burnout.
Talks about the importance for new technical managers to establish a clear process for how work is brought to their team, as it fosters trust with stakeholders and enhances team productivity by minimizing context switching. By managing work intake effectively, managers can create a predictable workload for their team, navigate exceptions thoughtfully, and maintain stakeholder relationships, ultimately leading to improved performance and value delivery.
Strategies for managing frequent priority changes and task overload in technology jobs to reduce stress and avoid missing deadlines. The author shares personal experiences and practical tips, such as using an inbox as a to-do list, setting calendar reminders, and maintaining a handwritten notebook, to help individuals develop their own effective systems for staying organized and on top of their responsibilities.
How to identify "tie-breakers" within a team—individuals who can help make decisions when priorities conflict or trade-offs are necessary. By understanding these roles and establishing relationships with potential tie-breakers, team members can enhance productivity, facilitate decision-making, and ensure transparent communication, ultimately contributing to better organizational outcomes.
Highlights the crucial role of planning for technical managers, emphasizing that effective long-term planning is more challenging yet equally important as crisis management. It discusses the need to set future goals, coordinate with stakeholders, and understand product strategy while refining planning skills through collaboration and ongoing learning to achieve organizational success.
Using the phrase "that's out of scope" judiciously as a technical manager to maintain team focus and manage workload effectively, while also ensuring that stakeholders understand project boundaries. It advocates for close communication and iterative development to clarify assumptions and prevent scope creep, highlighting the benefits of Agile practices in fostering mutual understanding between product owners and developers.
Fostering collaboration within a team, rather than simply assigning tasks, leads to greater success and a more productive work environment. By encouraging open communication, addressing hidden assumptions, and actively engaging team members in decision-making, managers can diminish risks and create a culture of trust and agency, although they may need to take control during crises or when consensus cannot be reached.
It's critical to define what "done" means in an Agile environment to ensure that all stakeholders and team members are aligned on project expectations. As a technical manager, it is crucial to enforce that tasks labeled as "done" are genuinely complete, as this not only maintains quality and scheduling but also builds trust with stakeholders by consistently delivering on commitments.
The dual role of a technical manager as both a protector of the team and a spokesperson to stakeholders, advocating for clear communication about risks and trade-offs rather than outright rejection of new tasks or changes. By framing discussions around the impacts on schedules, budgets, and team capacity, managers can foster understanding while helping their team grow as professionals, reinforcing the importance of evidence-based dialogue in navigating shifting priorities.
Priorities and Circles of Dependencies
Introduces the concept of "circles of dependencies" as a technique for engineering managers to prioritize tasks and requests while recognizing their role as potential bottlenecks. By assessing how their actions impact themselves, team members, colleagues, and the broader organization, managers can effectively identify and eliminate obstacles, ensuring smoother workflows and facilitating better prioritization of their next steps.
Engineering managers must know what each team member is working on and their next tasks, as this fosters trust, organization, and allows team members to focus on their coding. By maintaining awareness of individual workloads and skills, managers can build a flexible and resilient team, prevent knowledge silos, and nurture team members' growth while enhancing overall productivity and collaboration.
Encouraging appreciation for innovation and creativity fosters a culture of innovation, especially for younger engineers who may need guidance in navigating the excitement and subsequent inquiries from others.