Posts Tagged BDD
Taking repetition to task
Posted by AntonyMarcano in Agile, BDD/ATDD, Business Analysis, Project Management on July 8, 2010
This originally appeared on my old blog in March 2010.
Others have talked about the virtues of stories as vertical slices of a problem (end-to-end capabilities) rather than horizontal slices (system layers or components). So, if we slice the problem with user stories, how do we slice the user-stories themselves?
If, as I sometimes say, acceptance tests (a.k.a. examples/scenarios/acceptance-criteria) are the knife with which we slice a story into even thinner vertical slices, then I would say my observation of ‘tasks’ is that they are used as the knife used to cut a story into horizontal slices. This feels wrong…
Sometimes I also wonder, hasn’t anyone else noticed that the idea of counting the effort of completed tasks on burn-down/up charts is counter to the value that we measure progress only with working software? Surely it makes more sense to measure progress with passing tests (or “checks” – whichever you prefer).
These are two of the reasons I’ve never felt very comfortable with tasks, because:
- they’re often applied in such a way that the story is sliced horizontally
- they encourage measuring progress in a less meaningful way than working software
Tasks are, however, very useful for teams at first. Just like anything else we learn how to do, learning how to do it on paper can often help us then discard the paper and do the workings in our heads. However, what I’ve noticed is that most teams I’ve worked with continue to write and estimate tasks long after the practice is useful or relevant to them.
For example, there comes a time for many teams where tasks become repetitive. “Add x to the Model”, “Change View”… and so on. Is this adding value to the process or are you just doing it because the process says you should do it?
Simply finding that your tasks are repetitive doesn’t mean the team is ready to stop using them. There is another important ingredient, meaningful acceptance criteria (scenarios / acceptance-tests / examples).
I often see stories with acceptance criteria such as:
- Must have a link to save the profile
- Must have a drop down to select business sector
- Business sector must be mandatory
- …
Although these are “acceptance criteria” they aren’t what we mean by acceptance criteria in the context of user stories. Firstly, they are talking about how the user interacts rather than what they need to achieve (I’ve talked about this before). Secondly, they aren’t examples. What we want are the variations that alter the behaviour or response of the product:
- Should create a new profile
- Profile cannot be saved with blank “business sector”
As our product fulfils each of these criteria, we are making progress. Jason Gorman illustrates one way of approaching this.
So, if you are using tasks, consider an alternative approach. First, look at your acceptance criteria, make sure they are more like examples and less like instructions. Once that’s achieved, consider slicing each criterion (or scenario) horizontally with the tasks rather than the story. Pretty soon, you’ll find that you don’t need tasks anymore and you can simply measure progress in terms of the new capabilities you add to your product.
Updated 30-02-2010: I’ve inserted a new paragraph as the opening paragraph referencing an article on slicing user-stories to add some background to the vertical slicing metaphor. I’ve provided a link but I’m not sure who first came up with the metaphor.
agile, ATDD, BDD, extreme programming, old favourites, TDD, testing, testingReflections, user stories
About
Antony Marcano is a consultant in software craftsmanship, effective software processes, software quality and software testing. He has over fifteen years experience with... (read more)
@AntonyMarcano on Twitter- AntonyMarcano: RT @jmrtn: A note about how the @RiverGlide approach to bootstrapping differs from @flowapp: http://t.co/Ap7FkwkC May 15, 2012
- AntonyMarcano: The Floppy Disk means Save, and 14 other old people Icons that don't make sense anymore - Scott Hanselman http://t.co/mtuzFM0r May 14, 2012
- AntonyMarcano: Over the moon! At my sons 3rd kart race meet ever, in his first season of kart racing ever. He wins, beating others who've raced for years! May 10, 2012
- AntonyMarcano: @vsbmeza no, that's the only place. I'm sure @skillsmatter would appreciate specific feedback on their video settings :-) May 10, 2012
Tags
Acceptance testing agile Agile Planning Agile QA Agile software development ATDD automated tests BDD Boredom business computing Cucumber Exception handling Exception handling syntax extreme programming Information technology management Java junit kanban lean legacy code old favourites programming project management risk management RiverGlide scrum Software development software economics Software engineering Software project management software requirements software teams Software testing Story points TDD Technology Technology/Internet testing testingReflections this is not a manifesto user stories Values Waterfall Waterfall modelArchive
May 2012 M T W T F S S « Feb 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
