However you’re choosing to celebrate, in the season’s spirit of giving, LeadDev will be handing out gifts this year.
Every day this week, we’ll be adding bite-size articles from engineering leaders below, so that you can finish your year in style.
Without further ado! Behind our last advent calendar door...
Door 1: Increasing visibility by learning and working in public
One of the most effective ways I've found to increase my visibility as a technical leader to my management as well as my peers, is by adopting a habit of working and learning in public.
Learning in public, as Shawn Wang puts it, is “to have a habit of creating learning exhaust.” Learning in public doesn’t mean putting together a perfectly written dissertation on the topic you're learning about, but the more persistent, visible, and accessible, the better. This could be a simple post in Slack (or whatever chat app your company uses) with a “today I learned…” (TIL). It could be a document that's accessible to and discoverable by others, which you use as a diary or log as you go. You could create a channel where you can dump your learnings, and those who want to follow along can join the channel. You could record a quick video demonstrating how to do something you just learned.
Learning in public also brings the added benefit of showing management what you've been continuing to invest in your skills. Not only this, but you're also trying to help and lift up others in the process. Showing others what you're learning about normalizes not knowing something – regardless of technical seniority – and can foster an environment of continual learning and sharing.
Working in public is an approach where you publicly share your progress as you work on a given task, project, or the troubleshooting of an issue. As you work on the given task, log your thoughts, theories, actions, results, etc., as you go. The most obvious benefit is that you are making it very easy for management and others to see the work you're doing in a very unfiltered, genuine way. Additionally, you are documenting the history of your steps, reasonings, trials, and how you came to a certain result – helping others learn. Working openly like this also makes it very easy for stakeholders to keep up with your status, as well as allowing others to weigh in, ask questions, and even collaborate with your effort.
Employing these techniques takes some courage to show your authentic, imperfect self at times, but the benefits to you are great, and the benefits to others can be even greater!
Door 2: Effective time management for engineering leaders
Time is your greatest asset. Mastering it isn't just about getting more done, but about ensuring that what we do is impactful, purposeful, and leads our teams to success. Here are some of my tips for making the most of time:
Prioritize relentlessly: The biggest tip I can offer is the art of relentless prioritization. Understanding what truly matters is crucial. This doesn’t just mean sorting tasks by their deadlines but evaluating them based on their impact. Ask yourself, “What task, if completed today, will make the biggest difference for my team and our goals?”
Embrace the power of “no”: Saying “yes” might seem like the path of least resistance, but it’s a surefire way to clutter your schedule with non-essential tasks. Learning to say “no”, diplomatically yet firmly, is essential in keeping your focus on what truly matters. Empower your team to do so too. Remember, every time you say “yes” to something, you’re inadvertently saying “no” to something else.
Delegate smartly: Finally, understand that you can’t – and shouldn’t – do everything yourself. Effective delegation is not just about offloading tasks; it's about empowering your team. Match tasks with the right people, not just based on their current skills but also considering their potential for growth.
Batch similar tasks: Group similar tasks together to increase efficiency. By focusing on similar tasks in a single time block, you reduce the mental load of switching between different types of work. This approach can significantly enhance focus and productivity.
Regular reflection and adjustment: Time management is not a set-it-and-forget-it skill. Regularly reflect on how you are spending your time. Are you focusing on the right things? Are your strategies effective? Adjust and refine your approach as needed. This continuous loop of reflection and adjustment helps in staying aligned with your goals and makes your time management efforts more effective.
Door 3: How to mitigate clashes in priority on cross-team projects
Clashes in priorities are a common problem across teams. Often, this comes about because one team does not necessarily have all the expertise or resources to deliver a feature end-to-end, so outsourcing is required. Inevitably, a situation will arise that makes it difficult to get the dependencies delivered in a timeline that works for everyone. I have found that setting up a system of continuous cross-team communication early in the process and developing shared roadmaps will ensure the best chance of adjusting to delivery conflicts.
Identify all of the teams involved in the delivery of the feature and key personnel involved in both decision-making and technical design. Then, establish a meeting cadence for each of these purposes where shared roadmaps and design and/or implementation details are regularly reviewed. Having those shared roadmaps is critical when going to upper management to lobby for priority adjustments.
Talking about a problem will not fix it. However, there is a much better chance of identifying and heading off bottlenecks with creative problem-solving. If a team is blocked waiting for a module to be code complete, think about leaning on mocks instead. If velocity needs to be increased, there may be room to incur a short-term tech debt to help move faster. Generally, it’s prudent to consider what other calculated risks can be taken in order to deliver customer value sooner.
In a project requiring cross-team collaboration, none of the decisions should be made in a vacuum. Frequent, transparent conversations about what and when each team can deliver, makes a difficult process a bit smoother.
Door 4: How to instill psychological safety in your teams
Psychological safety is an important aspect of any healthy engineering team. There are many nuances to ensuring that everyone on a team feels psychologically safe, but the first step on that journey is trust.
1:1s are the perfect opportunity to develop trust with team members. They open the floor for folks to discuss anything that’s on their mind, inside or outside work. Provide frank and constructive feedback, but always with a learning and growth mindset. In other words, present yourself as a resource and ally rather than a boss or overseer.
Not only is it important for an engineering manager to show that they trust their team by allowing them flexibility and creativity in how they work rather than being overly prescriptive, but it’s equally important that the team trusts each other individually. Create an open and honest environment through forums such as consistent team meetings or blameless retrospectives for the team to share ideas, opinions, concerns, highlights, and disappointments will provide that initial framework. And if you’ve already established trust with individuals, your presence in team meetings will be felt as an aura of protection.
There may be instances where you need to lead by example by demonstrating candor yourself, whether in 1:1s or team meetings. Be open to admitting your own mistakes and faults. Talk about the things that worry you or that you’re diligently working on. Not only will this transparency give your team wider business context, but it will also set norms and clear expectations for communication within the team.
Implementing these cultural changes takes sustained work over time – trust can’t be established overnight. But when it comes to team psychological safety, trust is a must, and your team will be all the better for it.
Door 5: How to elevate engineering productivity by focusing on team health
There has been a lot of discussion this year on the topic of measuring engineers’ productivity. I have read some incredibly thoughtful posts and some others that seemed to oversimplify a complex topic in ways that could drastically harm the health and productivity of a team.
Team productivity is very difficult to measure via primary criteria. The best of these would be throughput and cycle time, but, particularly with senior engineers, their productivity is often seen most profoundly in the work produced by their teammates, and the pitfalls avoided entirely because of their thoughtful influence. This is worth measuring and tracking, not just leaving and hoping for. Monitoring trends in qualitative metrics of your team's health, well-being, and interaction points is often the most valuable way to make this visible.
High-performing teams – productive teams – are those who truly collaborate on problems rather than working near each other but separately. This cannot be done without effective and constant communication. This goes for engineering leaders, too: the most important thing you can do is speak to your team. Ask them what is helping and what is hindering their productivity. Engineers love to solve problems and are often at their happiest when they are at their most productive, and vice versa. They are deeply aware of the things that are holding them back, so track trends in the things that your engineers see as pain points and make it a genuine priority to continuously improve them.
Make small changes often and measure the outcomes. But above all things, maintain a team culture where it is you and your engineers against the things holding them back. Never stray into a place where you are pointing at a graph, telling them that a number is not good enough.