Don't be a Hero

Don't be a Hero

I am not saying don't save the day. I am not saying don't step up and help others. I am saying to make hero your job. There are many engineers that are always putting out the fires. They are always that one person who "knows" how to get something done. As a leader, it is your job to make sure your team or teams can take care of the things they own. If you just have one person that is critical to keeping the software running, then you are not doing your job.


As an engineering leader, it is your job to empower your whole team. This means you must take every opportunity to uplevel your team members. You need your hero to be a teacher, not a solo "get stuff done" person. How to debug the production issue? What are the landmines when working on this codebase? What permissions are needed to do this deployment? Obviously, all of this should be written down in your documentation store (first miss). If you have your hero, put them in charge of getting all of these responsibilities off their shoulders. If your hero is that good, you probably want them to bring your other team members up to par.


The process of moving your hero from saving the day to training the team can be difficult depending on their mentality. If they truly care about the company, product and customers this will be easy. They will want to get more people to the point that things run smoother. If you hear "It will just be quicker if I do it myself.", then you may have a battle on your hands. The statement is probably not false but may point to a mindset of "only I can do this". In actuality, you want any experienced person on your team to be able to get it done. Yes, there will be some faster or better than others but that does not mean you want to keep the hero doing it. What if your hero is on vacation? What if your hero is sick? What if your hero's phone died? In any team having a single point of failure is a bad thing. It makes your team weak.


The specific process for turning your hero into a wizen engineer teaching others the craft will take some time.

  1. Explain the problem (what if the hero is unavailable?)
  2. Set the expectation (things can take longer while teaching)
  3. Painfully repeat the expectation (the team needs to be able to do it, not just the hero)
  4. Talk through the benefits on the other side (less pressure on the hero, more team confidence, hero can do other projects, etc.)
  5. Again repeat the expectation (going to have to do this a lot)

Depending on the person or the team this may take more steps. This will make a much healthier team and you will be able to get more completed.


What if the hero will not get on board? You have to ask "why". If the answer is they don't want to waste the time or no one can do what I do, then you may have to think about replacing this hero. I know that might sound crazy as they are the only one keeping everything running, but if your hero has built a system so brittle that it requires them to keep fixing it you probably don't have the right person anyways. If the answer is the rest of the team is not good enough, you have some evaluation to do. Is your hero right? Did you hire a subpar team? If you want to really dive into this, have your hero take one person to teach. Get your feedback from both people. And then you can decide how to proceed.


Just want to reiterate, I am not saying your people should not step up in crisis and help. I am not saying you can't have truly amazing team members. I am saying that the job description of "hero" needs to be removed from your org. You should have teams that can take care of business. You should reward people for once in a while heroic act. Your teams are healthier when the people on them are equals. Not meaning everyone has equal skills or experience, but they have equal ownership, accountability and expectations.

Chris Hudson

Head of Innovation Advisory & Emerging Technology | AI Strategy, Cloud Architecture, DevSecOps, Modern Application Architecture & Software Engineering

9 个月

I have been the Brent before (check out the Phoenix Project book for the details). Its nice to hear wow, how did you do that, but it eats at the core of you and the team.

要查看或添加评论,请登录

Andy Knieriem的更多文章

  • Coaching/Measuring People Leaders

    Coaching/Measuring People Leaders

    A rarely discussed topic is how to lead and grow your people leaders. How do you measure how a people leader is doing?…

    1 条评论
  • Building leaders

    Building leaders

    Not all engineers have the drive or aptitude to be leaders. When you do identify someone who does have those special…

  • Handling Expectations

    Handling Expectations

    Many people might talk about "Managing Expectations", but I feel that you can't manage other people's expectations…

  • Coaching Styles

    Coaching Styles

    As a leader, your coaching styles are important. It is very important to know that you need more than one coaching…

  • Velocity

    Velocity

    The terminology in Scrum may give some misunderstandings. In running, velocity is hard to describe while sprinting as…

  • Getting the Quality

    Getting the Quality

    Delivering software efficiently relies heavily on quality. Delivering quality is the only way to get the value to the…

  • Coaching Experts

    Coaching Experts

    I have found myself at times leading people who are much better at writing code or designing systems than I am. It is…

  • Continuous Product Management

    Continuous Product Management

    We've discussed a bit about overall Software Delivery and some engineering practices. Now it is time for a focused…

    1 条评论
  • Are you efficient?

    Are you efficient?

    Measuring efficiency is a complicated topic. Do you use your time well? Do you use your money well? Are you doing well…

  • Continuous Delivery

    Continuous Delivery

    What is Continuous Delivery? It is the process of getting your software to your customers as soon as it is ready. More…

社区洞察

其他会员也浏览了