Welcome to Dovetail Software Blogs : Sign in | Join | Help

Steven "Doc" List, Agile Novice

VP of Software Development learning to be agile
Exploring 'Done' and Pairing

Today's challenge was a two-part discussion.

Part One: How do we define "done" when talking about story cards?

We've had our share of challenges dealing with cards that were put in the "done" stack, but were not considered done by all members of the team. This is an issue that seems to be common with agile teams: how do you know it's done?

I borrowed a bit from Retrospectives (which we'll be doing later today), laid out the framework for our discussion, and asked the team to start throwing out items that would help us to qualify cards as done. After we had about 20 items on the board, we talked about them to make sure that all team members had a clear understanding of what was meant by each one. We then went through two different mechanisms to determine which ones the team felt should be included in our initial definition of done: registering preference/priority by putting dots by the ones they chose; using thumbs up/thumbs down to vote.

At the end of the process, we had 10 items, as follows:

  • Acceptance criteria are met
  • Automated tests, including unit tests, are written, checked in, run, and passed
  • Code is paired on or reviewed
  • Code is checked in to the repository
  • Customer approves it (Gary or Doc)
  • Automated scenario tests for acceptance criteria are written, checked-in, run, and passed
  • Documentation is produced and/or updated for behaviors and user guides
  • Project builds without errors
  • Code is clean
  • Procedures are documented

Clearly, this will be iterative and evolutionary.  Regardless, I, for one, feel much better knowing that we now have initial agreement on where we begin.  From now on, all cards will be evaluated against at least these criteria to determine if they are done.  It's no longer guesswork, shared understanding (although there is some), or arbitrariness.

Part Two: Pairing

As a result of attending Agile2007 and my experience here at Dovetail Software, I was feeling uncomfortable. The discomfort stemmed from my perception that my team was not clear about what we're doing regarding pairing. Yes, there's pairing going on. It's not consistent, the changes of partners is sometimes-yes-sometimes-no, sometimes pairs stay together for a full iteration or more, and I'm convinced that we're losing some of the learning-value of pairing in the process.

My understanding - and belief - is that all members of the team will benefit from more frequent changes of pairs. Knowledge and skill will thereby get passed around, and the resulting increase in quality and productivity will benefit all.  I don't see that happening yet.  So I asked for a discussion.

First, I shared Arlo Belshee's paper Promiscuous Pairing and Beginner's Mind. Arlo presents the results of various experimentation that his team did, including being rigorous in their use of metrics.  I recommend the paper to all. We talked about how much of each day should be spent pairing, how long each pair should stay together, the use of ping-pong pairing, and other topics.

Unfortunately, the first topic - "done" - had taken 90 of our 120 minutes, so this discussion had to be very focused since I'd committed to ending on time.

I'll jump right to the net - we agreed to practice ping-pong pairing for one full iteration, in order to learn from the practice, and to shoot for changing pairs at least once per 24 hours.  There's clearly more to discuss. 

Posted: Tuesday, August 21, 2007 3:52 PM by slist

Comments

Steven "Doc" List, Agile Novice said:

One of the team's Stop items in yesterday's Retrospective was " long meetings ". Of course, this was

# August 22, 2007 3:07 PM

rick_a_corbin said:

Doc, this was a fantastic entry. For instance, today several code changes I had to make affected the unit test assertions of my NUnit tests. I refactored, retested and all was well until I checked the code into Starteam. The same tests began to fail due to an unexpected and minor server config on the Starteam server. So, changes that should have only taken 30 minutes turned into an hour, the done(ness) of the tasks were incomplete until the build passed.. These updates were from the customer request, in our case the Product Manager. Even so, the completion of the task still need verification from the customer.

The "Promiscuous Pairing and Beginner's Mind" article was also very interesting from the standpoint of a C++ programmer somewhat new to Agile with a years worth of C#, DDD, TDD, NHibernate and Castle under my belt. I was dropped into a project and was able to ramp up on these skills in a short amount of time. Reading the article allowed me to define the mindset I experienced as Beginner's mind. Much like finally putting GoF names to patterns one naturally sees and implements prior to reading Gof, Martin Fowler's or Jimmy Nilsson's books.

Thanks,

Rick Corbin

# August 22, 2007 10:40 PM

Win playing baccarat said:

It never hurts for potential opponents to think you’re more than a little stupid and can hardly count all the money in your hip pocket, much less hold on to it

# April 7, 2008 6:48 AM

Play Casino Online said:

Slots are the most common and the popular game nowadays, since it not only entertains you but you may get to win loads of bucks too. Casino gambling freaks love playing slots online and offline as well. It’ s really too easy and what exactly you need

# April 23, 2008 9:42 AM
Leave a Comment

(required) 

(required) 

(optional)

(required) 

  

Enter Code Here: Required

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS