Imagine the following scenario.

One of your team’s engineers has a challenging task and struggles to complete the work for months. She repeatedly mentions she’s nearly done, only to face a new issue each time. This forces a decision on your end – either tell her something is wrong and draw boundaries or let the cycle repeat. 

If you don’t solve the problem, your jobs will be at stake because your team appears unproductive and you as an incompetent manager. But if you say something, you might come across as “the bad guy.”

You have to solve the problem because that’s your job, but doing so isn’t about punishing your engineer. Instead, you can take steps toward a better resolution, such as:

  • Talking to them
  • Understanding what is happening and why 
  • And suggesting improvements, like scheduling daily meetings to review her work and doubts 

Examples like the above are important to be aware of because this approach is key to helping your team (and you) succeed. You’re only the “bad guy” if you handle the situation aggressively or unprofessionally.

Instead, learn how to set reasonable expectations, communicate about them, and respond as needed. Anything else results in:

  • Confusion and frustration
  • Burnout and low morale
  • Decreased trust in your leadership
  • And high turnover

The first step is understanding what makes an expectation reasonable.

1 - Learn what reasonable expectations are

In reality, no one knows what reasonable expectations are – we are all using our best judgment to make decisions. 

But this isn’t very helpful. It’s the same as telling you to “do your best,” which isn’t useful whether you’re just starting out as an EM or have been in the role for a long time. Unfortunately, there is no one-size-fits-all answer, but there are some things that are true for everyone. 

Specifically, expectations are a strong belief that something will happen based on your experiences. In engineering, these experiences come from your time as an engineer. As an EM, you use what you’ve learned to develop certain standards for you and others to follow.

For example, you remember a bug took you four hours to: 

  • Diagnose the problem
  • Identify the root cause
  • And fix it

Naturally, you’ll expect the same from your team.

Whether or not this expectation is unreasonable depends on who you ask. If a junior engineer is handling the problem, he may need eight hours instead of four, whereas a senior engineer only needs two.

But just because you’ve set an expectation doesn’t mean you can’t change it.

2 - Adjust as needed

Should you adjust your deadline for the junior engineer? Not necessarily. 

You can, but taking steps to help them meet the expectation first is a better option. For example, you could pair them with the senior engineer so they learn strategies for working more quickly while still maintaining a high quality.

Unfortunately, what frequently happens is new EMs immediately lowering their expectations due to lack of experience and thinking they’re helping the other person. So, they allow the junior engineer eight hours instead of four, which: 

  • Doubles the work time
  • Gives the impression they can expect such adjustments in the future
  • Potentially frustrates other engineers who have tighter windows
  • And doesn’t help the engineer improve

But more often than not, working directly with the engineer who’s struggling or doing things differently solves the issue. You will then know your expectations weren’t unrealistic. However, you’ll still want to take the time to go through these steps because you’ll learn more valuable information than if you hadn’t.

And it is possible the expectation can’t be met even after all the assistance. Maybe fixing such a bug in four hours or less really is impossible. Or maybe they’re not the right engineer for the job. Regardless, you’ve still gained insight you can act on, whether that’s to:

  • Increase the allotted time
  • Recommend someone else for the task
  • Or let the engineer go

The last is a hard choice to make, but if others are meeting the expectation with similar assistance, then they should, too.

Overall, this work is a trial-and-error process, but that’s how you learn what reasonable expectations are – when you start working with someone who confirms them.

And there are ways to discuss challenges, setbacks, and mistakes with your team that don’t make them or you feel bad.

3 - Communicate when things go wrong

You will have conversations with individuals and your team as a whole about them not meeting expectations. This is never an easy thing to do. Even when you approach the discussion with collaboration in mind, criticizing someone else’s work is uncomfortable.

But this is part of your job.  Your task is to: 

Managing these tasks will never make you a bad person, and you can take several steps to feel more comfortable doing them.

Steps to communicate effectively

First, read more about communication – at least one book. 

There are many such books, but Radical Candor and How to Win Friends and Influence People are great starting points. 

Second, use on-camera communication (or face-to-face if you can). 

Discussing difficult topics through messages is certainly easier, but the chances of someone misunderstanding you are also much higher. This creates even more problems, which necessitate even more challenging conversations.

Third, focus on the task, not the person. 

Never attack the person or say something implying they’re the problem. The goal is to solve issues together, not create new ones.

Fourth, leave your emotions at the door. 

Ideally, you develop friendly relationships with everyone, but that’s not always possible. And whether you like the engineer or whether they hurt you with something they said or did doesn’t matter. Getting emotional will only hinder you from achieving your desired outcome.

And last, when things get a little tough, imagine you're a ship’s captain. 

Someone on your ship is responsible for lowering the sails to keep it moving. Failing to do so stalls the ship, and you risk running out of fresh water, putting the crew in danger. People might not enjoy being called out, but it’s your duty. And upsetting the few is worth the future of the many

4 - Use missed expectations as learning opportunities

I’ve often heard you should deliver negative feedback one-on-one and positive feedback in group settings. However, I believe you can effectively communicate both types of feedback in a group to avoid creating tense situations.

For example, everyone will be confused if things seem fine and then someone is suddenly removed from the team. If all was well, why was John fired? People need to be aware of the challenges others face.

That said, don’t focus solely on negativity or embarrass anyone publicly. You can use difficult situations as teaching moments and ask the team for their input on finding solutions together. This way, they understand why that problem is a problem and learn how to avoid similar situations in the future. 

Also, if your team sees that John faced the same challenge multiple times, they won’t question your decision to let him go. You still don’t want to share too many details, but you can discuss some for their learning and growth.

The same principle applies to positive feedback. The team should recognize Anna’s strengths, which not only boosts her morale but also helps the team appreciate having someone like her on board.

The short version: expectations are necessary

Setting clear expectations, sticking with them, and communicating when they’re not met are key to you and your team’s success. Failing to do so can lead to burnout, low morale, and trust issues. But there are steps you can take to ensure more successes than not:

  • Understand what reasonable expectations are: Reasonable expectations depend on experience and context. Use your time as an engineer to guide your expectations but remain adaptable based on your team’s capabilities.
  • Be proactive in adjusting expectations: Don’t lower expectations immediately. Instead, support struggling engineers to improve their skills. If issues persist, consider whether expectations need to change or if staffing adjustments are necessary.
  • Communicate openly: It’s essential to address problems directly with your team and individually. Engage in honest conversations about challenges and collaborate on solutions.
  • Maintain professionalism: Losing your temper or acting unprofessionally can damage relationships and undermine your authority. Always strive to remain calm and composed.
  • Feedback should be constructive and inclusive: Provide both positive and negative feedback in group settings to foster learning and transparency among team members.

In short, effective management requires being okay with making tough decisions while staying empathetic and having clear communication. And the more you practice, the better you’ll get. 


Want more tips on leading effective software engineering teams?

Join my newsletter if you’ve found this content useful


Originally published on Medium.com