Many people in the Agile community would bristle at the term ‘best practice’. Not because, in some situations, there are best practices, but because it’s a term that limits thinking, accountability, ownership of working processes and because, often, it’s wrong. Practices evolve and change over time. What practice works best for a problem also shifts. One of the key elements of the Agile Manifesto was the one that states “we are uncovering better ways to…”.
I recently read an interesting post on maturity models. It’s a little in-depth, but it’s worth a read if you’re trying to make positive changes to your working practices and want to align a team.
In the post, there was a reference to how the understanding of a practice might evolve over time and is similar to models we’ve used before. These were:
- Novel – this is new to us, it’s not well understood by anyone in the team.
- Emerging – we are trying this out, it’s something we can begin to explain to each other.
- Good – we are getting to grips with this, we know there is room for improvement and can improve it in our context.
- Best – we’ve nailed it. It’s a practice we’ve established in the team and might not even mention it in a retrospective.
The language is simple. It’s easy for a team to consider a technique that they’re trying to put into practice and figure out the different skill levels of team members. Whether you’re learning new prioritization techniques, a new programming language or design technique, this language will help you communicate your proficiency so everyone can improve.
Do you have a good way to level-set on your current skill level within the team on the practices you’re trying to adopt?