Photo by Annie Spratt on Unsplash
2 min read
Software development is a team sport. The engineering team's culture and composition plays such an important role in determining the success of the team/company and product's life cycle. In fact, the team culture determines the attitude and career path for the team members.
Early on in my career I worked with some of the smart, committed and kind people. They did not stick to one technology stack. They just did whatever it takes to solve a problem. They just did not do their work, they helped us new joinees onboard into the team and patiently answered our questions. That pretty much molded my attitude towards working with/in teams.
It's not acceptable for members of a team to just work on their deliverable and not help others. And similarly it's not acceptable for anyone to not put their fair effort and just throw their hand into air looking for help whenever they are stuck. It's works great for a team if the culture is to be willing to offer help to others and similarly not request help or bother others unless truly needed.
Not everyone in the team are equal and no everyone can be star performers. I read a statistic somewhere that good engineering teams have 20% low performers, 60% average performers and 20% top performers. I think this a great ratio, the 20% low performers can do the same grunt work for the team that the other 80% hate working on, 60% average performers can do the actual development and the 20% top performers can be the torch bearers who can iterate quickly and work on complex problems.
I have seen teams with higher ratio of top performers fail because they could not come to consensus on a single approach for delivering even simple features and they pull the boat in different directions. Teams with higher ratio of low performers fail because they are a burden for the whole team and won't let others do their work.
Team should be able to collectively make a decision when adding new members. A single bad hire can disrupt a well functioning team and ruin the culture. I have seen times managers just overrule no-hire feedback and still hire people 🤷. I understand there is urgency to add people or the budget is lost from manager's perspective. But imo, it's better for the budget to be lost than deal with a bad hire.