The Three Amigos - All For One, One For All
The Three Amigos - All For One, One For All
The Three Amigos - All For One, One For All
O
Accounting-Jane, and Jane was the VP of accounting. That
ur story so far... must be the right one. Right on page one it clearly said, Item
Tom Tester paged through the story profitability is the sum of selling prices for the SKU, divided
descriptions in the iteration backlog. by the sum of item cost, minus 100 percent. Paula closed the
The vendor report shall list vendors in file, thinking “That was easy,” without reading the section on
the order of percentage they met their page three: Special calculations for profitability of SKUs used
monthly sales quota. “What if the vendor as loss leaders. She was already programming. “For ‘sum of
hasn’t yet reported their monthly sales?” Tom wondered. “Or item cost,’ I can just multiply ‘current cost’ by the number of
what if it’s a provisional vendor that doesn’t have a set quota? items sold,” Paula thought. “I should be done with this story
We’ve got a few cases like that.” He turned to the next de- by this afternoon.”
scription: The sales manager shall be notified of all vendors Alan Analyst fretted over his notes. Sally Security Auditor
below 50 percent of quota. “Notified in what way? Isn’t the had been emphatic that customer details for medical device
vendor report a form of notification? How can I test this?” purchases be protected from easy access. Did these purchase
Sitting a few feet away, Paula Programmer began to imple- details also need to be encrypted in the database? Could they
ment the Item Profitability report. The profitability of each even do that and still provide the access needed by customer
SKU in inventory shall be calculated according to the SKU Ac- support when the customer called in for help? “I’d better
counting document on the accounting department fileserver. specify encryption; better safe than sorry. The programmers
She looked at the fileserver directory and saw a number of will come back and tell me if it can’t be done,” Alan thought.
files. SKU Accounting 2010, SKU Accounting 2011, SKU “I wonder when the security team will make the decision
Accounting-proposed, SKU Accounting-Jane, SKU Ac- as to which categories of products should be treated as ‘sensi-
counting-Harry. The one with the latest timestamp was SKU tive’? Perhaps I should just reference their specification docu-
www.StickyMinds.com
NOVEMBER/DECEMBER 2011 BETTER SOFTWARE 25
“ ... a well-functioning Three Amigos will continue the dialog
so that any misunderstandings will be
discovered and corrected early ... ”
each meeting, as that dilutes the sense of responsibility. With The goal is to come up with examples that cover all of the
that dilution, important points might be overlooked. At the important scenarios and to boil them down to the essence of
same time, the need for everyone to have his say will make the the functionality.
meetings drag on longer. You might have different developers During this meeting, take all the notes you find helpful or
and testers at different times, but only have one representative think might be helpful later. The important thing is to emerge
for each. Changing the individual participants from meeting with a complete but minimal set of examples to illustrate the
to meeting helps get everyone involved, gives everyone a functionality. These examples don’t need to be elaborate or
break, and keeps it fresh. detailed, but they do have to be clear enough that they com-
Getting the right people—and only the right people—in municate the intent of the functionality.
the room is always preferable for the best results.
Planning Meeting
How the Three Amigos Work Together When we get together to plan the next increment of devel-
The Three Amigos need to collaborate to define what opment work, such as the sprint planning meeting in Scrum,
needs to be done, how they’ll know when it’s done, and that the Three Amigos will use these examples to communicate the
it’s done correctly. After implementation, the Three Amigos intent to the full development team. The content of the ex-
need to review the work to make sure it’s still correct from amples will give the full team a reasonably good idea of what
everyone’s point of view. In between these two points, a well- will be involved to implement the user story. The number of
functioning Three Amigos will continue the dialog so that any those examples will give team members a good idea of its size.
misunderstandings will be discovered and corrected early, and If the story is split into multiple stories, the examples clearly
so any new insights can be incorporated to everyone’s advan- indicate which functionality is assigned to which story. This is
tage. Here’s how it might take place in a typical iterative- a big timesaver in my experience. I’ve seen team discussions
incremental agile lifecycle: go round and round, with some members thinking the story
is a small slice and others thinking it includes many other sce-
Backlog Grooming narios. If you’re estimating the size of stories, the explicit na-
Before development of a user story, generally sometime ture of the examples makes it much easier.
during the previous sprint or iteration, the Three Amigos sit “Doesn’t this take as long as if the entire team developed
down to discuss the upcoming work. We don’t want to wait the examples?” I hear this question a lot. No, the examples
too late to add details, because the delay will slow us down. communicate better than does more abstract text. If the ex-
We don't want to do this too far in advance of implementa- amples for a story don’t cover a particular situation, either
tion, because the details might get stale. that example describes another story or it’s new functionality.
Detailed knowledge imperceptibly deteriorates over time, Most of the time you’ll want to defer that new functionality
and the context changes such that the knowledge may no to give time for serious consideration. Make a note of the ex-
longer apply. As we learn new things in the process of doing ample, too. It’ll be a big help when you come back to it.
the work, it changes the way we think about the details of the
functionality we want. External events can also change what Development and Verification
we want the system to do. During development, the examples are turned into auto-
The clarification of the planned work is often called mated tests. The user story is not considered complete until
backlog grooming. Some teams delay discussing the details the examples pass.
until they start planning the next increment of work. When Turning the examples into automated tests should be a
this happens, I've generally seen the discussion of what the pretty easy chore, depending on how you’ve expressed those
work includes overwhelm the planning, resulting in a long examples and the tools you’re using. This is best done prior
session, indistinct acceptance criteria, and uncertain planning. to implementing the story, but might also be done as work
In one or more small group meetings, the Three Amigos begins on the story. Hooking the example up to drive the code
examine the planned stories one by one. Starting with the under development may have to wait until the story is a little
highest priority item, we examine each story, discussing it to further along. That’s OK. Just hook it up as soon as there’s an
gain a shared understanding of the intent. We flesh out that appropriate place to connect it. This work is often a collabo-
understanding by proposing examples: “Do you mean that ration between tester and programmer.
when _____ then _____?” “Yes, but if _____ happens then
_____.” We then look at these examples to determine what’s Exploratory Testing
an essential element for the desired functionality and what’s As each bit of functionality becomes available, you’ll want
an incidental detail required by the chosen implementation. to take a look at it. Does it fulfill the original intent of the
www.StickyMinds.com
NOVEMBER/DECEMBER 2011 BETTER SOFTWARE 27