What makes an Agile delivery team effective and successful?
We are living in an era of group accountability and collective ownership. Cowboys have traditionally been very effective and organizations have loved them for far too long but have started realizing the latent cost of encouraging that kind of rogue behaviour. Instead, what we need are teams that work together well and bring out the best in each other. That brings us to today’s topic. What are the 11 fundamental habits or characteristics of highly effective agile delivery teams?
1. Great teams pursue excellence — Whether it is using development and deployment checklists, automated testing, test or behaviour driven development, pair programming, extreme programming or continuous integration; teams that succeed are on the constant pursuit of excellence. Being “Good Enough” does not cut it for them.
2. Effective teams have W.I.P limits — The teams that are successful have a habit of keeping focus on a limited number of tasks like a hawk. Their Work-In-Progress limit is extremely low. Like bees, they practice swarming. They finish what they start before picking up new tasks by having many people work on single tasks at the same time rather than going through a series of hand-offs.
3. Constant backlog refinement — Backlog refinement and grooming is second nature to effective teams. They focus on this task as a group rather than letting the Product Owner/BA and Scrum Master do it in isolation. They set aside a number of hours every iteration to refine their backlog just enough to be able to effectively pull in work for the next couple of Sprints. They understand that business priorities may change and are ready to adjust to that but always have ready user stories in their backlog to pull in. More mature teams do not need story points. They’ve refined the product backlog in such a manner, the size for the top items don’t vary much. They know how many items they can realize each sprint. Counting the number of stories is enough for them.
4. They follow the Scout rule — This is self-explanatory. Always check-in code cleaner than you checkout. Successful and respected teams follow this rule and live by it.
5. Criticize ideas, not people — Great teams have fun during retrospectives. They understand that all team members want to do what is best for the team and the organization. They brainstorm ideas and criticize the ones that either don’t make sense or have run out their usefulness. They know that most people are inherently good but most ideas may not be.
6. Fix dependencies with other teams — Great teams proactively and aggressively seek out external dependencies both incoming and outgoing and fix them before they cause heartache. Dependency management, be it technical or functional, is the biggest challenge to scaling. Organizations who are able to scale have their teams actively manage dependencies and counterbalance them with just enough planning.
7. Understand the business value of technical tasks — Highly effective teams understand the business value that their technical tasks are bringing. They understand the value stream and can visualize the concept to cash model. The product owner makes sure that user stories outline the business benefit of the work being done which then puts the team in an advantageous position. They can now think of themselves as users and build it with a functional mindset as opposed to just completing a technical task.
8. Successful teams know their customer — Customers can be both external and internal. Effective teams know who they are and know what each of them expects. Knowing the customer allows them to make good decisions. Over time the customer trusts the team and gives them more autonomy. It is a win-win.
9. Effective teams are truly cross-functional — Great teams are truly cross-functional and understand that it is nearly impossible to always have the exact right balance of skill-sets iteration after iteration without tampering with the core team every time. Manual testing, if at all required, is not beneath the developers and a test engineer can help write unit tests if required. They understand that it is more important to complete fewer user stories as opposed to finishing isolated tasks on user stories that have no chance of getting completed.
10. Great teams update their work tracking system daily — Whether it is Rally or Jira or just a scrum board, effective teams know that keeping it up to date is in their best interest. It makes the daily scrum focused, provides transparency and most importantly it keeps the suits away.
11. Spend time on innovation — Great teams build in some slack into their iteration plan. They understand the importance of innovation and make sure they set aside some time for that. Building some slack allows them to do that if nothing unexpected turns up during the iteration. They know it’s necessary to keep up with the rapidly changing environment and technology. They ensure they have time for innovation during regular working hours, and that it’s fun and exciting!
That is it. These are the 11 things effective teams do really well. There are definitely more things that teams can do to become effective. But, if you want your team to succeed, introduce and encourage these things to be adopted and you will experience magic.
Originally published at www.linkedin.com.
The 11 habits of highly effective Agile delivery teams was originally published in Achievers Tech on Medium, where people are continuing the conversation by highlighting and responding to this story.