Sunday, August 15, 2010

Scrum (Part 1: Planning & Poker)

One of the things I have really enjoyed here at Sony is working within a Scrum.  I plan on covering this topic in three separate posts.

1. Sprint Planning Meeting
2. Daily Scrum
3. Pros/Cons

Lets start with the basics... What is a Scrum? As Wikipedia says:

Scrum is an iterative, incremental framework for project management and agile software development.
That seems a bit wordy.  I typically read at a 5th grader's reading level, so from my perspective: its a process for breaking up a large project into manageable bites.  In Sony's case, 2 week 'sprints'.

At the beginning of each sprint we hold a Sprint Planning Meeting, which is the official title for figuring out what the hell we need to do in the next two weeks to meet our deadline.  This meeting usually starts by prioritizing the list of 'stories' we need to complete and estimate how long each one should take.  A story could be 'I would like to able to log in and out of the game.'

We (anyone involved in this story) then estimate how long this story will take to complete by using Planning Poker.  Planning Poker involves giving each person a deck of cards with numbers on them representing days of work.  Each deck has cards with numbers (1,2,3,5,8,13,20,40,100,?).  Each person decides how many days he/she thinks the task will take, finds the appropriate card (rounding up), and then at the same time everyone flips over their cards.  So if you think a task will take 6 days, then you will find the 8 card and flip it over.  If everyone agrees, great, move on to the next story.  Otherwise, the people with the highest and lowest estimates plead their cases on why they think it should take as long as they estimated and then everyone gets a chance to pick a new card and flip again... this process continues until there is a compromise/majority.  Once a good chunk of stories have been estimated we look at how many days of production we have available for this sprint and figure out how many stories we can tackle.  This entire process of choosing and estimating stories usually takes most of our morning.

In the afternoon we meet with our teams (in my case, the client team or Flash team) and we break down each story into tasks.  A task might be 'Create a modal for when you get disconnected from the server."  For each task we then estimate how many hours we think it will take, using a similar process as above although we are usually less formal at this point.  We give ourselves 6 hours of work each day to buffer for everything that comes up during a normal day as well as to help counter underestimating on tasks.  Tasking out all of the stories for the two weeks usually takes the remainder of the day.

Thus, we just spent 10% of our two week sprint in initial planning alone.  From here, we jump into our work while monitoring our daily progress.  I will explain in more detail in a future post.


Josh said...

Looking forward to more posts on this subject. It's interesting to see how other companies are utilizing scrum.

Ryan said...

I am 'testing' a Scrum project for my employer. We were 'trained' on it via some massive IBM created PowerPoint slides. Sadly, while upper management is pushing us to prototype a project using Scrum (versus our normally long and annoying project management methods) we are still being constrained by corporate IT. Even though we are in theory doing Scrum, 90% of what we have done is the same as normal.

If you choose to try Scrum, make sure you don't have to follow your typical documentation, approvals, code release cycles, etc. or it is a joke.

(I'm at a big telecom company)

poker tips said...

This sounds very interesting, I'll be sure to check this one out. Thanks.

Oliver Drend said...

Thank you for sharing such great information with us. http://roulette-gamedownload I really appreciate everything that you've done here and am glad to know that you really care about the world that we live in :)