Thursday, May 06, 2010


So this week I introduced my team to the concept of done and done-done. I first got this idea from Dave Prior. Done means the developer thinks they've finished the task. Done-done means someone else has verified the task is really complete; such as a tester saying it passed testing or and end user verifying it is what they need.

This becomes important when you are trying to accurately track your progress. If a developer says they're done but they forgot something or it doesn't work right, there's still work to do. You may be nearing the end of your iteration and have a lot more work left than you think if you have a lot of tasks in the done stage but not really done-done.

So I don't even try to get % complete estimates I have found these to be notoriously inaccurate. I ask the developers to tell me either not started, in progress, done, and done-done. For those tasks in progress, I look for when they will be done. The tasks are all pretty small, around 8 hours of effort. That way, if I don't see at least some tasks getting done (and done-done) each day, I know I have a problem.

Agile is about being able to identify when you have problems as early as possible so you have more time to fix the problems. Having an accurate status plays a strong role in knowing the health of your project.


Sameer Bendre said...

For agile/scrum teams came across a good article on "done" by @davidjbland - Just would like to share a scrummaster's view at this relevant post.

Bob Tarne said...

Sameer - thanks for the link. One thing we do at my company is use before and after metrics to see if our product has improved the efficiency of the business.