Source – https://reliably.com/blog/how-to-build-high-performing-engineering-teams/
Do Not Simply Hire the Smartest People You Can
‘You want to hire everyone you can from MIT and Stanford, and aggressively poach as much talent as you can.’
That’s how most recruiting organizations seem to approach hiring, which is backward because great engineers don’t make great teams.
If you hire the best engineer in the world to come and join you but it takes you three days to ship a change, it’s still going to take them three days to ship a change.
It’s the other way around – great teams are what make great engineers.
The thing that makes a google engineer great is typically not their skills going in but the fact that they get to work on one of the world’s largest, most complicated, and interesting systems for a few years.
Think of the amount you learn when you’re on a good team – you learn the same defaults, best practices, and skills that have taken millions of engineering hours to evolve and arrive at.
Productivity tends to rise or fall to match that of the team that you join. This is not only because of your knowledge of algorithms and data structures, but also the socio-technical system that you participate in.
Acknowledge the Fundamental Attribution Error
‘Fundamental Attribution Error’ is a sociological term used to describe how much our environment and system contribute to our success.
People tend to attribute most of the results to their individual capacity and very little of it to the system around us. People would estimate that it is 80% them and 20% system when it is the reverse. 80 or 90% system and 10 or 20% them.
The smallest unit of software delivery is a team and therefore, technical leadership – whether you are an IC, individual contributor, senior engineer, manager, or director, you must pay a lot of attention to all the feedback loops that are at the heart of the sociotechnical system.