Successful software projects need two things:

  • The ability to learn: a feedback loop and quick iterations to learn how to solve the problem you’re faced with)
  • Cohesion of people and purpose: clarity on the problem to solve, confidence in colleagues, and trust in how the team works together

Some teams spontaneously succeed at both of these. Often, they’re very experienced or have succeeded together before. In all other scenarios, someone has to wear the leadership hat to keep the team pulling together, in the same direction.

Below, my ever-evolving hypothesis of how I build effective, creative, and fun teams that deliver ambitious software.