There are many approaches that work well when elaborating stories and the team should decide on the approach that works best for them.
Some people worry that in our rush to become more agile we might be leaving good architecture behind. So I often reassure with the following statement:
Don’t worry – There is no doubt that the system’s architecture will emerge from what we are doing. The only question is whether it will be the architecture we want.
Comparison tables involve listing stories and then comparing the components or factors relevant to each story. Generally speaking a comparison table is created as follow:
- Stories are listed as either column headings or row headings; and
- Story components or characteristics are listed for each story.
Abstract to concrete is a term I am going to use to describe the idea of elaborating stories by:
- Using a structured format to interrogate the story;
- “Abstracting” the context and meaning behind the story rather than just listing acceptance tests or task; and
- Making the abstract conversation more concrete by discussing what needs to be done in order to build the story.
Rather than breaking the story into tasks or acceptance tests, some teams simply break stories into multiple, smaller stories until they are small enough to build from.
In some teams, the iteration or sprint begins with the team discussing each story and breaking it down into the specific tasks that each team member will need to perform in order to complete the story. The team then track tasks on their story wall rather than complete stories.
Elaborating stories using acceptance tests involves defining the criteria for stories before turning them into code. This is the approach we often teach in agile courses.
This article is one of a couple I am writing to explain how agile projects can hand over useful information to support teams if they want to.
So this article is a (hopefully) straightforward description of how we can use stories to define the knowledge that to create and handover when the project goes live.
Testers keep telling me that testing is not just about breaking things. They also tell me that they are there to help the team think rather than just point out the dumb things they have done in the last sprint.
That’s probably all true. But I have been asked by someone to give them a mechanical set of steps to do when you are an agile tester. That way they have a starting point when they join an agile project.
So here are the 8 steps to follow:
I have recently been talking about elaborating stories in agile projects and the topic of architecture came up.
As as result Philippe Kruchten sent me a link to the “Hard Choices” game – a game that can be run in workshops and training courses to demonstrate the difficult tradeoffs involved in architecture on projects.