- A sense of direction. A goal that the whole team can work towards.
- A place in which everyone, on each level, can learn and grow.
- A culture which promotes knowledge sharing.
- A culture that promotes (timeboxed) investigations.
- A person who acts as the ‘source of truth’. This is a person who, for example, when asked “what’s our coding style?” can guide you to an answer.
- A facilitator. This is a person who, might not necessarily have as deep a tech knowledge as others, but who knows how to facilitate efficient discussions that lead to actionable outcomes.
- A branching strategy that works for the team.
- Rigorous code reviews.
- Coherent code style.
- Well organised, clearly written documentation (inc. meetings, processes, investigations etc.).
- ‘Retrospectives’, or periodic meetings dedicated to addressing any team, or project-wide issues.
- Periodic 1-on-1 meetings to address individual issues.
- A work-flow that allows working from home.
- A refined, documented, setup process that allows a new starter to get up and running quickly.
- Well-specced developer machines.