Three Amigo sessions are a great way to get people together to talk about a ticket. The structure ensures that they are quick and have representatives of the groups interested in the ticket. The best time to use one of these sessions is when you have found something emergent before or during development. Welcoming change late in development is one of our agile principles, and Three Amigos is a practice that can help to make a change as painless as possible.
One of the most costly things in software development is when what’s delivered isn’t what is wanted or needed by the end user. The cheapest time to fix unmet requirements is before we’ve attempted to meet them. By having people sit and talk face to face (another agile principle) we can help to build a shared understanding not only of what the user wants, but also why they want it. When a development team understand the user’s motivations, they often exceed the customers expectations in delivery.
Not an Alternative to Grooming
I have seen some teams using this in a more frequent and ceremonious way. Three Amigo sessions are best utilised when the team encounters some kind of emergence whilst near or in development. It’s important to have frequent grooming sessions so that dev, test, and product are aligned on user stories prior to Sprint Planning. I typically support teams to reach a stage where they have half an hour grooming on eight of the 10 days in a two week sprint. However, sometimes things cannot wait to come into the next grooming session, or are already in flight and therefore would be inappropriate to bring into a grooming session.
It’s best not to bring the whole team into a Three Amigos session, though it shouldn’t be restricted to three people. Try to at least have a representative from dev, test, and product. If the team has easy access to other stakeholders who share an interest in the story to be discussed, then bring in a representative in too. This is a great way to fulfil the Conversation part of the 3Cs.
I prefer to have these sessions around someone’s computer, in the team area. Just like a Stand Up, an uncomfortable environment helps to keep the conversation on track and as fast as possible. By having the session around the other members of the development team, the conversations can be overheard and perhaps built upon by those not directly involved.
Any answers that are found during the session need to be recorded against the ticket, either electronically or on the scrum board. Every conversation that is had about a ticket, should be like everyone in the development team had it. The next person to work on the ticket needs to know what the business is expecting, what has and hasn’t been agreed, and how to deliver value. Making sure everyone understands every requirement doesn’t just benefit developers, but also testers, product, and anyone else in the wider business who wants to confirm that the increment or iteration has achieved it’s goal.