Last week, I replied to a tweet (see below). I try to keep my comments to the allowable characters to make a point without making it a full discussion. I’d rather have those in person, which is what happened. Paul Seaman (from Australia and @beaglesays on twitter) took me up on my offer to chat and we ended up having a great discussion about tasks and columns on a story board among many other things. I learned a little, and he took away some ideas that he wants to try with his team – a win-win in my books.
Our chat started with the idea of using testing tasks rather than a lot of columns on your story board or in whatever tool you use. My personal preference is a physical story board, but I recognize that is not always possible.
In our conversation, Paul shared that their five initial columns were “To do, in dev, walk thru, in test, done”. Because it felt like phases rather than flow, they removed the ‘walk thru’ and ‘in test’ columns so were left with three. I know many teams that use those three columns or some version of them “to do, in dev, done”. What you call them doesn’t really matter as long as — ‘in dev’ means more than coding.
I like the simplicity of three columns, but I also think having the work called out in tasks is important (unless the stories are very small). One problem I often see in teams, is there may be many tasks for coding but only one for testing. The testing task will say something like “Test this story”. When teams do that, it hides all the work that really goes on in testing the story.
What is preferable to me, is to make the work visible. By having individual tasks such as ‘Create test data’ or ‘Create exploratory test charters’, we enable the rest of the team to help with the testing activities. Anyone can then pick up one of the testing tasks – it is not limited to the tester.
Paul’s team hasn’t created tasks before the start of an iteration, they create them as they start developing the stories (if at all). It has seemed to work well for them, but he liked the idea of making the testing tasks visible. His team does a lot of small experiments to continually improve so this was one idea he wants to bring back to his team.
As an aside, my columns (or states) of choice are “To do”, “In progress or doing”, “To review”, and “Done”. Most (if not all) tasks are not testable, but they are reviewable, so having a column for reviewing makes sense. For example, ‘Creating automated tests’ is a good thing to review with someone before you check the test into your version control or give them to the programmer.
In our conversation, Paul mentioned that their stories can vary from ½ day to almost 2 weeks. I started to talk about how I coach teams to break the stories up early – in story readiness workshops before the iteration starts. That was when Paul said – “That is what’s happening with our stories. The programmers are asking to do it earlier now”. That made me realize that sometimes, it is best to let some ideas emerge organically, especially when a team has the culture of continuously experimenting. They feel safe enough to try new things.
The next part of our conversation was about getting people to pair. Paul was having a hard time selling the idea of pairing, so I shared some of my positive experiences. Sometimes the soft sell works best. Don’t call it pairing … use different terms, and when you have success, call it out.
Our conversation weaved in and out, talked a bit about things like formats of tests such as ‘Given/ When/Then’; what was good, what was bad. I loved that Paul’s team is working with people on the autistic spectrum. Diversity is a great way to get new ideas into a team.
Our final bit of the conversation turned a bit to something more personal – how we saw testing in our lives. We both experienced spouses who tell us to stop … just stop testing all the time. I’ve often said I can’t help it, it is who I am. But, I like Paul’s way of expressing it – “Testing is a way of thinking, it is a lifestyle”.
So, the next time you have a conversation on twitter, think about taking it off line to get a better interaction, and maybe even make a new friend.