Friday, November 16, 2007

Scrum for One

I was talking with a friend who has found himself as a project lead on a large project where is is doing mostly managerial stuff. In an effort to avoid that work he has turned to Scrum project manament. If you have not heard about Scrum, you can google it, or read the wikipedia link here . I'll try to give you a quick description for those who don't want to go read about it.

There is a product backlog which is a list of all the requirements and issues for the product. You have a "Sprint Planning Meeting" in which you pick the items from the product back log fro the sprint backlog, which is the list of tasks you are working on during the sprint (typically 30 days). Each task is given a time estimate. As you work on a task you track how much time you spent on it. You graph these using a burndown chart which helps you monitor your progress, lack of progress, over estimating, under estimating, etc. Each day that is a "Daily Scrum" which is only 15 minutes long and you are not allowed to sit down, helps limit it to 15 minutes. There are 3 questions
  1. What did you do yesterday
  2. What did you do today
  3. What is blocking your progress.
Since it is agile development, anyone can add items to the sprint backlog or product backlog. That is the high level basics. There is more details, but you can learn about it from the many sites about this practice.

It was asked of me how I keep my self on track and monitor my progress by Bob Walsh. At the time I was using Basecamp, but I've been slacking on it a bit. Mostly because I switched gears to work on OmniCustomerSupport, which I have to admit now has been more of a detour than I originally planned. I just created an account at Code Spaces which I plan to use instead of Basecamp.

At the same time I plan to incorporate the Scrum approach. Now since there is only one of me, it is a bit overkill, so I'm only going to take bits and pieces. Right now I plan on trying the following principals: a product backlog, a spring backlog, the sprint and the daily scrum. I don't think I have to worry about anyone being late to the daily meeting :) Also I might reduce the sprint time to 2 weeks instead of 1 month. Maybe even 1 week, but that might be to short. I'll experiment and let you know how it goes.

I want to credit TJ Etherton over at IKollect for the idea of this post. He has been posting about his productivity experiments. I will continue to share my results of using Scrum as a uISV.

6 comments:

Anonymous said...

As a practitioner of eXtreme Programming for 1, I'll watch with interest :) We should compare notes! Good luck!

Rob Searles said...

Thanks for the post Chris. Like you I'm a team of 1, so I'm always interested in methods for keeping productivity high. Please post some updates to let us know how you're getting along. Have fun.

Chris said...

Tim, Rob,
Thanks for the comments and I'll be sure to post some follow ups. The holiday is going to mess the schedule up a bit. I try to not work during vacations, but I hope to create my product backlog over the holiday and kick things off the following Monday and figure out my sprint backlog. I've been doing the daily meeting which I've found useful so far. It keeps me focused on what I want to accomplish each day and if I was successful the day before.

Michael Dubakov said...

I don't think you will benefit from scrum being one-man-shop. When I've started TargetProcess.com alone it was easy to keep most important things in mind and work on top priority items. Burn down is not required, since for 1 person it will be highly biased (working on web site, answering emails, doing marketing is not a part of development). Backlogs are great and you should have them for sure, but all the other things are not required.

Now we have 5 developers in team and doing 1 week iterations. Now scrum is helpful, but for 1 man person it will be an overhead. Why you need burndown? It's better to spend this time to post some comments on forums or blogs :)

Chris said...

Michael,
I agree that trying to use full blown scrum is overkill. I'm trying to pick a few pieces from it that I think will help me move forward. Part of the issue for me is chaning gears between my consulting work and my uISV work. With the pieces I've pulled out of scrum, I think it will help keep me focused on what I'm working on now and the next few items. And the daily meeting (with myself) is to keep me honest about my productivity.

Nice website btw. Target Process looks like a nicely put together app. Great work.

Michael Dubakov said...

As I see you will benefit from backlog and maybe daily meeting (It is hard to name it that way in fact for such a case :) Maybe "daily mISV focusing?"

Also some practices from XP work great for 1 man as well. For example, I've used Test Drive Development with very good results.