We’ve all been there. You’re a programmer-turned-new-manager and your team has a deadline coming up. You take a look at your calendar and you start to get that feeling in the pit of your stomach: we aren’t going to make it. You start to panic and feel that cold sweat. Maybe you should just go into a cave and code your way out of this one? But you’re a manager, not a coder anymore, so what do you do?
Step 0: Be Transparent Early and Often
Missing a deadline should never be a surprise. I regularly report statuses to my director in our 1:1s, but for more important projects we have separate weekly status meetings with stakeholders, like the VPs of Engineering, Product, or Marketing. Be transparent in those meetings with issues and delays. But what happens if there is a surprising turn or maybe you didn’t have one of these meetings and you realize you are going to miss your date?
Step 1: Create Breathing Room
A hard truth born from painful experience: you almost certainly can’t code your way out by yourself. We’re so used to coding our way out of trouble as developers. However, if the project is big enough to require a team, one person’s heroics are unlikely to save the day. Also, keep in mind that as a manager, your sense of the problem will be simplified because you aren’t involved in the minutia as much as a day-to-day programmer. You are likely to underestimate the effort needed it would take you to finish. But more importantly: if you rely on coding heroics, you’re not using the tools at your disposal. The secret superpower of a manager is as a force multiplier.
I have a team of four people. There is no way I am four times smarter, can code four times faster, and have four times better understanding than them. If I were to believe that the truth is likely that my confidence is four times greater than my ability. Relying on one person’s heroic efforts damages a team’s confidence, because you’re essentially saying “none of you are able to do this.” It’s hard on a floundering project to think long-term, but preserving the health and confidence of a team is so much more important than any one deadline: all future deadlines depend on them.
The first step is to create breathing room. Your engineers are certainly feeling pressure. Programming is fundamentally a mental game and when we’re stressed we don’t think as clearly. Appropriate amounts of stress can be clarifying, but the stress brought on by an unmeetable challenge is demoralizing and taxes our mental abilities. Your project is behind schedule and unless you do something it is going to slow down not speed up.
As soon as possible reset everyone’s expectations about when the project will be finished. These can be hard conversations to have but it’s best to be honest and upfront. Leave your shame and defensiveness at the door; be humble and focus on the practical. If you don’t know how long your team needs to finish, tell your stakeholders when you will know. Be willing to sacrifice scope and quality in the service of completion. Being upfront and willing to compromise helps build much-needed trust between you and your stakeholders.
Step 2: Reset
You’ve bought your team some time and given them the breathing room they need to think clearly. They are probably still feeling the weight of the project and likely feeling overwhelmed, embarrassed, or any of the host of negative emotions we all feel when not meeting expectations. It’s time for a reset. The goal of a reset is to provide two things: a clear emotional separation from the first half of the project and renewed focus and clarity.
Treat everything from today forward as phase 2 of the project. Create a clear line of separation between the previous phase and the new phase with a kickoff meeting. This clean separation will allow for new emotions and renewed focus.
During this phase 2 kickoff meeting with your team, genuinely emphasize the success of phase 1: look how far we’ve come! Don’t dwell on what went wrong — there will be time to assess that later and we don’t want negativity to creep in and steal your energy. Focus on the practical for phase 2: what do we need to do to complete this? It is good to show up with your own plan to provide clarity and direction, but remember that your engineers are problem solvers by nature; be open to their suggestions to finish as soon as practically possible.
Step 3: Focus and Momentum
Take advantage of your team’s renewed focus by making the tickets in phase 2 smaller. Look for any opportunity to break big tasks into smaller ones. There is more process overhead with smaller tickets, but this activity will create a feeling of momentum. Watching tickets move quickly across a Jira board or seeing people ship to prod a few times a day is so encouraging.
As a manager, keep tabs on what is in flight. People above you will come asking how things are going and you should be able to answer at any time. This helps build trust that you have a good grasp on the project and can accurately report on its progress. You need this trust to keep the breathing room for your team.
It is tempting to hover as a manager but, avoid it at all costs. There are few things as frustrating or disruptive as a nosey manager. Use the tools at your disposal to monitor how things are going from a distance. Our team has a Jira board where I can see the state of everyone’s tickets. I keep an eye on Slack to see if people are talking and if anyone is getting stuck. All our deploys trigger notifications in Slack, so I cheer those on as they go out. As much as possible I try not to get involved, instead of trusting the team to keep things moving.
Standups are your time to get involved. Here are a few things I’ve found useful:
- Keep standups focused and tight; if the conversation wanders, bring it back as soon as possible.
- Use questions about the status of tickets and next steps to create clarity for yourself and your teammates.
- Don’t leave with unanswered questions if at all possible.
- If you have unanswered questions, follow up on them immediately after standup. Answer them publicly. Public answers are good for transparency, but also models the accountability and focus that you want the team to have.
- Acknowledge people who are doing good things.
In addition to getting status updates, your job is to create an atmosphere of clarity and encouragement.
If someone seems to be struggling during the day, stop by and ask questions. Be on the same physical level when you do it and be genuinely curious. If you have an idea that you think would help them, present it as a question: “Do you think it would help if we did….?” or “What would happen if we did…?”. Asking questions in this way rather than suggesting immediate solutions gets your team involved in the process of getting unstuck. Also, you may not understand all the issues at hand, so be humble — your engineer may be finding something you hadn’t accounted for. Be grateful for their thoughtfulness and ask them to file new tickets for the issues they’ve found. However, resist the temptation of expanding the scope of their ticket: that threatens the feeling of momentum you are cultivating.
Step 4: Celebrate and Reflect
Keep this up and your team will be done in a surprisingly short amount of time. If you’ve set the right expectations and scoped your second phase correctly, you’ve finished without requiring overtime from your team. It’s important to celebrate this accomplishment: set aside time to play together and have some food. Make sure there is laughter and joy. You’ve asked a lot of your team and they have been through a bit of a rollercoaster. Laughing together is a healthy release.
After the celebration, it’s time for reflection. You should do this personally as a manager as well as together as a team. Focus on what went well first. This makes the next step easier to swallow and you will be amazed at all the things that did go well when things felt bad.
Next, focus on what could have gone better. Assessing what could have been better can be uncomfortable and even painful. As a manager, it may bring up feelings of shame or guilt or regret. Your ego will definitely be threatened. But unhealthy things thrive in darkness and the only way to make them better is with light. So be humble and honest (not castigating). For me, it’s easy to get overwhelmed on things to improve in myself. I have a practice of picking three things I would do differently and start with those.
Team assessments should also be humble and blameless. Your mantra as a leader: this was no one person’s fault; the process we set up broke down and needs to be improved. Humans are fallible and mistakes should be expected, so this assessment should focus on improving your process (technically or with humans).
Step 5: On to the Next!
That project is done! As my mentor used to say “kiss it and scooch it over.” Time for the next one! Your team is feeling confident and capable and riding a high of a project done well. Time to put your reflections into action and make this project even better than the last one