I work in a large team of 14 people. I am the team lead.
Over the past few years, as the team has gotten larger new people have joined. My manager was mainly responsible for hiring the team. I became team lead after the team was expanded. Nonetheless, my manager and I have different expectations of good developers.
Personally, I think a lot of the people in my team are not suitable for developing new features.
There are 3 developers who I would consider capable of doing new development. The other 11 are capable of fixing bugs and doing what is considered as small enhancements. Even sometimes with small enhancements they need to do "pair programming" and it ends up slowing down the other team members by a large margin. Needless to say, the team dynamics are way off balanced. 2 seniors, 1 mid level, 11 juniors.
Honestly speaking, my manager does not see this fact.
I have tried things like such:
- In the daily standup, I will ask specific people if things are clear to get their confirmation in front of the manager. Even after they say everything is "clear". They insist to meet and "go over things", my manager allows it. He even promotes "pairprogramming".
- I have also stepped back and watch people fail. This does no justice to the company.
- Each time I start a new feature, I try to assign the new work to the top performing people. I want the strongest players in the right place at the right time. However, my manager always interferes and allows the most junior people to "lead" some of the most challenging parts.
From what I know, my manager does not hold people accountable if they underperform.
How can I tell my manager that certain people are not capable of handling new features? He either needs to fire them or just give them small bugs to fix and have low expectations.
Updates and Clarifications
Thanks for the comments and answers so far.
- I don't mind pair programming. The real problem is we have too many guys in our team who just expect pair programming each time now. Whenever they have to repeat the same tasks for a new Module they don't even remember working on the same task for another module. I check the git history and it was clear they worked on an existing module they just have to remember how we "peer programmed" that part.
- People are not preparing themselves. There are only 2 junior guys, who I see them reading technical blogs, watch technical videos, and so on. I think those guys will do well in the long run.
- Time lapse of this has been 2 years. It's a repetitive process with some guys and I don't see them cutting it, in the long run. They don't know how to ask the right questions and I don't see them trying since there are no "real" consequences.
- Since I became a lead, I stopped patronizing management's decision to hire juniors. At this point when I see the Seniors working extra long hours to pick up the slack, I would prefer for 3-4 of the juniors to burn and crash fixing bugs only. Instead use that money to hire 1 extra senior guy.
I have put in a transfer for another division because the situation is now detrimental to my continuous growth. The top developers are also in similar situations. We spend a lot of time at work "peer programming" and we don't have enough day hours to complete our tasks. We end up having to work extra hours and the manager is complacent with the situation as long as the juniors are learning.
There has to be some balance right?