Everyone is crap, that’s why you need a team.


I'm talking specifically about software development here but this applies just as well to other areas too.

Is everyone really crap?

Yes, at something, whether it’s user interfaces, clean code, writing tests, design patterns, security, giving presentations or communication. Everyone has at least one chink in their programming armour.

What are the benefits of being in a team?

One of the biggest benefits is the different perspectives and knowledge a team has. One person will only know so much, think of it as a sphere of knowledge and experience:


But together, a team will have a greater area and variety of knowledge and experience, with varying degrees of overlap. This will help to create better solutions that take more things into account:

Some other benefits:

  • Shared learning – some people will be experts on specific things and as part of working as a team they will be able to share that with other team members. Techniques like pair programming are great for sharing knowledge
  • Better solutions – one person might come up with a good solution, but a team will typically make a better one. The team will be able to pick up on things that one person alone would easily miss.
  • Process refinement- when combined with something like a sprint retrospective, a team can take an open and honest look at any issues it has and make a plan to fix them. People on their own are typically less capable of spotting issues.

What are some properties of a good team?

  • Psychological safety - being open, honest and accepting that mistakes happen goes a long way
  • Everyone needs to feel they are being listened to, without that they’ll feel like an outsider
  • Help each other. This works both ways, everyone needs help at some point. If you think you never need help then you’re wrong - you’ll make more mistakes and hinder your learning potential.
  • Constructive criticism – you can tell someone when they’re wrong and help them to get better – no judgement - everyone is at a different stage of knowledge on different subjects
  • Accept criticism - if you receive constructive criticism then you realise that the person giving it may be correct and you should give some thought to what they’re saying.