Showing posts with label velocity driven planning. Show all posts
Showing posts with label velocity driven planning. Show all posts

Monday, December 1, 2014

Velocity driven Planning vs. Commitment Driven Planning

In my earlier blog, I explained how we should do commitment driven planning. I thought it would be good idea to share why I prefer Commitment Driven Planning.

I would suggest if you don't have experience then try them both yourself. I have my preference toward Commitment Driven Planning.

The biggest issue I face with velocity driven planning, is being predictable. Velocity is volatile. It moves around from iteration to iteration. It bounces around. Again it lot depends upon what your team is doing? Are they developing as well as supporting software which is under constant change. Because incase of less challenging environment you might be able to predict them but in average team environment it is very taxing job.

If I have to take average of my team's last 6 iteration velocity which ranges from 26 to 90 story points. The average is around 35 story points but can we plan 7th iteration with 35 points, is this right amount of work? I tried scheduling work based on our average and failed. I tried doing and taking same approach for next three iteration and failed..

I could not predict the number of story points my team might deliver. Simply because there were lots of unplanned work keeping coming along our way and also team did not think about technical design that well in advance and we failed for numerous other reasons.

Velocity depends upon lots of factor and I think it's variability create more issues vs. helping us. I would love to let my team work at their best potential without thinking about the velocity. Velocity is valuable over long term i.e like building customer profile may take 8 sprints on an average. My team is producing at 35 story points on average but that does not mean they have to product 35 story points every sprint. Over the period of 10 sprint they will produce on average of 350 story points but bringing this much work on each sprint based on this average would not work.

We should always remember the purpose of sprint planning. The purpose of sprint planning is to commit to a set of product backlog items. The purpose is not to come up with the list of task or hours but tasks and estimates are a tools for determining what we can commit to. 

As usual let me know your feedback or if are doing it differently in your team.

Thanks
Manisha

Commitment driven Planning: my favorite

I have worked with multiple teams and each team have their ways to estimate and plan the work in sprint. We can plan our sprint/iteration in two ways.

1) Velocity Driven Planning (VDP)
2) Commitment Driven Planning (CDP)

We all have fairly good idea about velocity driven planning but very few of us do commitment driven planning. My team loves it, so thought of sharing our process.

To start commitment driven planning, team estimate their capacity by simply taking a guess of how many hours of plannable time each individual would be able to devote in the sprint. In subsequent sprint team adjust their time by adjusting the plannable time up or down based on their experience.

What is Plan-able time? 

We all know that if we have to be good corporate citizen, we have to attend some meetings or reply to some HR emails or support our organization ecosystem. This is Corporate Overhead and varies from corporate to corporate. First think how much corporate overhead each individual have. 

The left over should be considered your productive time. Remember productive time may not be always working on planned things

Not working on planned thing is not slack or padding or buffer but working on things which can or may occur during a sprint like, production outage, blocker bugs etc. We don't know how this time would be used but team has all good intention to pull work incase Unplanned time is not used. It is a block to accommodate emergency. Look at your sprint and calculate how much time would you need to keep aside for these unplanned activities. 

Left over time is hopefully your plannable time. This time can differ from sprint to sprint and team to team. One sprint they might have lots of support issues but another sprint it might end up pulling more features. Over the period of time it will average itself out.

Once team have the fair understanding about their capacity then team looks at the prioritize backlog. Team will commit to item by item in the backlog. They look at an item, break them into tasks and ask "Can we commit to this". If yes repeat the same process for next item. 

I prefer Commitment Driven planning because team tends to do three things: planning, technical design discussion and product design discussion vs. just planning.

Would love to hear your experience.
Manisha

***Mastery is capability in context