The days of tech teams hiring ‘ninja,’ ‘rockstar,’ or ‘unicorn’ developers is done. If you are still seeking these people, stop what you are doing immediately.
What is a ninja?
To me, ninja, rockstar, or unicorn developers (which I’ll lump together as ninja for the rest of this blog) are defined as “someone who is outstandingly amazing in code, but doesn’t play well with others.” This is someone for whom the rules of the team don’t apply because “they are just so good they are allowed to do whatever they want.”
It is true there are people who are amazing developers and also play well with others. We should all aim to hire these people.
Ninjas are toxic
I believe even one single ninja can be toxic to the entire team. If the ninja doesn’t respect the social norm of the group, the rest of the group will follow; I’ve seen this happen with my own eyes.
A team I knew had a ninja on it. This person was brilliant inside the code. This person also liked to work from home so they didn’t come into the office on Tuesdays,and as a result they missed standup every Tuesday.They also missed retrospectives (which were held on Tuesdays).
Pretty soon, they were pulling random features from the team’s backlog instead of working on what the team had agreed were the highest priorities. Then another developer on the team got mad. “Hey, if this person can work from home and work on whatever they want, so can I.” And so the second developer started working from home and working on features they felt like working on.
And so it began. No one attended standup, no one came into the office, and everyone worked on what they personally believed was important. The team fell apart, communication was poor, deadlines were missed, and features were half built and abandoned.
You see my point.
What to do if you have a ninja on your team
If you have a ninja on your team, my recommendation is to have a conversation with that individual:
- First, write down what you believe the disconnect is between what the team needs from them vs what they are giving the team. Tie these to lack of outcomes. For example, “The team isn’t finishing their weekly stories because you are pulling from a different backlog than the rest of us.”
- Also write down the positive contributions to the team this person is making.
- Discuss ”team productivity vs individual productivity” with them. It is likely their individual productivity might decrease in order for them to do things like commute into the office to be with the team, or pair program with someone more junior than them.
- Ask the person for their opinion. They will likely disagree with you and they will most certainly have a different perspective. Listen and be prepared to be wrong and have your mind changed. Everyone has a different perspective and that’s valuable.
- Agree on a small handful of action items you can each agree to, with due dates. For example, attending standup daily.
- If the ninja can agree to these things, check in again in 2-4 weeks. If the person becomes more of a team player, all is well.
- If the ninja cannot agree to these things, I recommend you speaking to the hiring manager for that person and discussing if moving this person to another team or firing them is an option.
Should ninjas be fired?
I’d advocate for firing any individual that negatively impacts the team. Team productivity is the number one priority for a software team, not individual productivity. I don’t care how fast someone can write code; if they are negatively impacting team productivity, they do not belong on that team.
I know I’m drawing a line in the sand here and I stand by it. I also know what I’m advocating for is hard to do, and often the person who wants to do the firing doesn’t have the authority to do so.
If you have a ninja on your team and need help identifying how to deal with this person, email me and we’ll talk through it.
How to avoid hiring Ninjas
This is the most important question and it must be answered. Hiring is how you bring new individuals into your team. Hiring is how you build upon your culture for the future. So, avoid hiring ninjas by:
1. Make Core Values “Table Stakes”
- At Stride, we filter out candidates that aren’t 100% a core values fit. We have five core values and specifically ask interviewers to rate candidates on core values. If a single core value is identified as missing, the candidate is rejected.
- Hiring for values is hard. Here are tips on how to hire for integrity. And here are tips on how to hire for motivation.
2. Ask candidates, “What are you not so great at, or not interested in doing professionally?”
- Answers will be telling. If the person is not interested in doing things that are important for your team’s productivity, it’s not a fit.
3. Ask, “How will your current/most recent boss rate your performance on a 1-10 scale when we talk to them?”
- It’s important to ask the question verbatim, exactly like this. People who feel their most recent boss will rate them low on a scale of 1-10 are often bad team players.