Top 10 features of truly agile teams¶
I've been very lucky to have worked alongside some hugely talented people from the Government Digital Service on the Land Registry Concept and Alpha projects. Although I was experienced in working with the Scrum framework before this, I have come to better appreciate what it means to be a truly agile team.
After reflecting on what made the team so great, I've drawn up this top ten list of the things that, if we hadn't done them, would have seriously impacted on the teams' culture, productivity, pace, and enjoyment.
Open working environment¶
Create an unrestricted, open working environment that doesn't inhibit the team from innovating. Give the team the tools and space they need to do their jobs, in the best way they decide they can, and trust them to do it.
Promote culture over everything else¶
With the right culture, the team will perform the best practices they can and constantly seek to find better ones. Culture is the collective attitude of everyone on the team and attitudes can only be changed by doing, not by telling.
Work in the open, as far as possible¶
Source code should be held in an open repository such as GitHub and made publicly available. Private or sensitive information should always be kept as such.
Adopt open standards¶
No closed-source, proprietary, costly software. Working to interoperable open standards makes it easier to change technologies if needed.
Empower the team¶
Tools, technology, practices, and culture should all be decided upon by the team, because they are best placed to make those decisions by being the ones using/doing them.
Ask "What is the user need?"¶
If there isn't one, stop doing it. If it's unclear, more user research is required.
Multidisciplinary team¶
Everyone has specialisms; however, every team member should have at least a base level of knowledge in all disciplines. Everyone should be able to code, and coding should be a part of all disciplines.
Work collaboratively¶
Do pair programming in a collaborative and supportive working environment, both within and between specialisms and levels of ability or knowledge.
Learn by doing¶
Make lots of mistakes, make them fast, learn from them then try again until you don't make them anymore.
Don't do agile, be agile¶
Scrum is great, as a framework, not as a rule. If it works keep it, if it doesn't change it.