Small, highly talented teams beat large, average teams. Every time.
I’d rather have a small team of 10 highly skilled developers, the ninjas, than a team of 100 average developers. Why? Because the 10 will outperform the 100, every time. You might need to pay double, even four times the salary, but it’s still cheaper overall. It’s also easier to manage, easier to interact with and easier to innovate.
Some say the perfect team size is 7, others say 12. I think it’s somewhere between the two, but is mainly down to how many super stars you can find and employ. If you find one more, hire them anyway.
Highly skilled software engineers also need far less supervision, and can result in the somewhat mythical self-managed team. But in fact it’s not mythical, it’s quite easy, if the leader is happy to be fairly redundant most of the time. Buy what they ask for and basically stay out of their way. If they want crazy expense huge monitors, don’t ask why, just buy them. If they want a massively powerful computer that would run a small datacentre, just buy it. Why, because they need it. You don’t need to know why they need to run nine virtual machines concurrently, to you it sounds crazy (how can you work on nine VMs simultaneously anyway, is what you are thinking) but stop worrying and buy the thing. Now you might be thinking this sounds nuts, but imagine how much hardware you’d need to buy for the 100 average developers. And it’s not just that, you’d also need a bigger office, all of a sudden you should feel better at paying several thousand for a laptop.
The fastest route to a completed project is all the resources you have, working on the highest priority tasks at their ultimate level of efficiency. If you want the project to run faster, you need to increase the efficiency and environment they work in.
Do they need to attend all those meetings? If not, then scrap them. Stop asking them how long things will take and whatever you do, do not impose arbitrary deadlines. Do they need to receive all those e-mails every hour of every day? Then don’t send them, or store them all up and send them at a set time of the week so they have a set time to read them and the rest of the time they can concentrate on their coding. Interruptions are the productivity killer for everyone, especially for high-performance teams.
The perfect environment may be a completely silent room, everyone with headphones on and with them occasionally getting up for food or the bathroom. To put this into context, I once deleted the Outlook profiles for my development team so that they literally couldn’t be e-mailed or invited to meetings. They didn’t notice and after a while people stopped e-mailing them and e-mailed me instead.
This was in a large government organisation, arguably the most bureaucratic of them all, and it took a while to figure out how to do it, but I got my way, and voilà: no e-mails or meetings. And the result? We did something that was never done before, took less time than we expected and became the model of how to achieve the apparently impossible. I know the team were super stars, and this has only been enforced by the crazy jobs they all do now at Google, Facebook, Lyft and Tesla.
Talent attracts talent, so after a while you don’t need to go looking for it as they come to you. I had a guy tell his family they were moving to a new country, pack his bags, turn up at my desk and tell me he was my new member of staff. I thought at the time: “this is odd, as I would probably know if I hired someone”. Either way he seemed a nice guy, I pointed him to the desk next to my top person and they seemed to hit it off. Normally after five minutes blood can be seen pouring from the ears of anyone who talks to my top person, they just can’t take it all in, but this guy for days just sat there and listened, taking it all in.
Turns out when I checked the paperwork was in place (as this was still in Govt.), he turned out to be their top guy. They insisted he didn’t go, he ignored this and came anyway.