Monday, December 1, 2014

Release Planning

How the Release Planning in Scrum is different from a Traditional Waterfall Model?

In a Traditional Waterfall Model, once we start the project, three factors are fixed - Time, Cost and Scope. But in Scrum the Scope is evolving as we progress and Product Backlog is updated as and when we get more information. So how the Release Planning can be done in a scenario where the Scope is not fixed?

First let's discuss what Release Planning is in Scrum. Scrum Release Plan is a high level plan for multiple Sprints. It serves as a guideline that reflects how many features will be developed and when those features will be developed. It also serves as a baseline to monitor the progress of the project. Think of it as a roadmap guiding you towards your final destination; what exits you will take or what actions you will take while driving will be decided en route.





In Scrum, before we start Release Planning, we need to have the following items ready.

  1. Prioritized and Estimated Product Backlog.
  2. Estimated Velocity of the Scrum Team - Total number of Story Points done per Sprint.

Product Backlog: Product Backlog is the list of items/features the Product Owner wants the development team to deliver at the end of the Project. Before the start of the first release, the Product Backlog should be ready. The Product Owner and the Team work together on Product Backlog Refinement. This process could take a few days or weeks. This process may involve workshops, detailed requirement analysis and estimation of all the items identified for the release. 




Estimated Velocity of Scrum Team: 
There are two methods the Velocity can be calculated.

  1. Velocity based on Historical Data
  2. Velocity Estimation with no Historical Data


Velocity based on Historical Data:
The Following graph represents the historical data of multiple Sprints. Based on this data we get Avg. Velocity (Vavg), Maximum Velocity (Vmax) and Minimum Velocity (Vmin) of a Team. 



Velocity Estimation with no Historical Data:
When there is no historical data then the Velocity can be calculated by using the following method.

Based on the team size and availability, calculate the capacity of team. (e.g. 300 Hours)

  1. Select high priority user story from the product backlog
  2. Breakdown the user story into tasks.
  3. Estimate the tasks in terms of hours.
  4. Add the hours of all the tasks of user story.
  5. Now check if there is more capacity for a Sprint. 
  6. If yes, then repeat the same exercise for the next user stories till you are full with your team’s capacity.
  7. Add the total Story Points of User Stories selected for this Sprint.
  8. This will give you the velocity for the first Sprint.


Once you have your prioritized Product Backlog and an estimated Velocity, you can start working on release planning.

Release Planning:
As mentioned above, in a traditional software development model Scope, Time and Cost are fixed whereas in Scrum, Scope is evolving. So there are two ways Releases can be planned.

  1. Feature Driven Release Planning (Fixed Scope)
  2. Date Driven Release Planning


Feature Driven Release Planning:

  1. In Feature Driven Release Planning, the features are fixed for the release. 
  2. Calculate the total Story Points of the features identified for the release.
  3. Add up the Story Points of all the features and divide the sum of story points by expected Velocity.
  4. This will give you the number of Sprints needed to complete the required functionality.
  5. Based on the Sprint numbers you can arrive at the release date.
  6. As Velocity of Team changes from Vmin to Vmax, the number of Sprints needed to complete required functionality as well as release date also changes. 




Date Driven Release Planning:
In the Date Driven Release Planning, Release Date is fixed and number of features delivered by that date can be estimated based on the Team's Velocity.

  1. Calculate the number of Sprints for the period of given Release Date.
  2. Calculate the estimated Velocity of your team by one of the methods mentioned above.
  3. Multiply the Velocity by the number of Sprints for the given Release Date.
  4. It will give you the total number of Story Points that can be completed within the given timeline. 
  5. As the Velocity of the team changes from Vmin to Vmax, the total Story Points delivered changes.






The final step of Release Planning is drawing a Release Burndown Chart. Based on the Story Points, Velocity and Planned Sprints, Release Burndown Chart is developed. The progress of the project can be tracked with the help of Release Burndown Chart.




Wednesday, August 19, 2009

Project Management in Everyday Life

You must be wondering by the title of my post, Project Management in Everyday Life. You might be thinking, am I going to write about Project Management Framework and give some technical details. But today I am going to discuss the basic principles of Project Management and how you can implement it in your daily life.

So what is Project? And how it is related to our life? I am not going to discuss the technical definition of project. But in our daily life, you can manage many activities as a project. Whether it is a birthday party, you are preparing for an exam or a trip to Vegas; we can manage these activities as a Project.

Now we will discuss briefly about basic principles of a project management. There are the nine knowledge areas of Project Management.

1. Integration Management.
2. Scope Management
3. Time Management
4. Cost Management
5. Quality Management
6. Human Resource Management
7. Communications Management
8. Risk Management
9. Procurement Management.

Is it looking complicated? Believe me it is not.

See below for the project plan of one of my projects. Again I will not go into details of this Project Plan. By showing this, I just wanted to remind you about actual project plan from our corporate life.

Today we will discuss a family trip and how we can manage it as a successful project. Last year my parents were here and we had a family trip to East Coast. I managed that trip as a project. Let’s discuss it as a case study.

So our project of discussion is Trip to East Coast. We will plan this project in above Project Management Framework.

Scope Management:
We will start this project with scope management. Overall scope of our project is to visit different places on East Coast. Out next step is to break down this scope into more specific details, like the cities which we want to visit and the list of attractions from each city. At first we will note down all the attractions which we would like to visit. Later on we will narrow down this scope, based on availability of time and budget. By this process we will define complete scope of our Trip.

Time Management:
Once we define the scope, we will start working on Time Management. What is the total duration of our trip? What are Start Dates and End Dates? Consider it is a 10 days trip. Now we have to develop rough schedule to visit these places in these 10 days. So we will put tentative dates for each city. Once date for each city is finalized then based on number of days allocated, we will decide how many places we can visit in that city.

Cost Management:
After time management, we will work on the most important part of our project. It is the cost management. So what is the allocated budget of this trip? We will consider it $10000. After budget allocation, next step is to list down the activities that will need money. Activities may be like Flight Tickets, Car Rental, Hotel Booking, Attraction Tickets, and Food etc. Once we have all these activities listed down, we will estimate tentative cost of each activity. After activity cost estimation, add all those activity costs to calculate total cost. If this total cost is more than our allocated budget, which generally is, then we will start working on reducing the estimated cost by eliminating some of the activities or finding some cheaper option.

Quality Management:
After cost management we will think about Quality Management. Let’s take an example of hotel booking. What kind of quality you are expecting from hotel in your allocated budget? You might get decent quality from Holiday Inn but if you want to compromise on quality for limited budget then you can stay in some motel and save some cost over quality. By this way you will give a thought on quality of overall trip activities.

HR Management:
Next topic is HR management. How HR management come into picture of family trip? Yes, you need to take care of needs of all the family members in your trip. It could be a diaper box for your little one or to have dinner on time for your dad. You have to manage your family as a project team. Your main job is to manage expectations and conflicting interests of your family members. Here you need to apply your team management skills as well as your negotiations skills. This is very important area in your trip management. Also at the beginning of trip you need to make your expectations very clear from each of the family member and establish some ground rule e.g. if we are getting late, don’t be panic. We are going there for enjoyment. So even if we miss some attractions, it will be fine.

Communication Management:
After HR Management, we will talk about communications management. You need to start working on communications management early in the project. You need to make everybody well informed. During the trip also you need to make sure that communication is going well within each and every family member.

Risk Management:
For each project you have to think of potential risks and have a risk management plan ready. For a family trip risks could be like bad weather, flight running late, car breakdown, health of family members etc. Once you identify all risks then have risk mitigation plan for each identified risk. For example, for health issues you need to have your regular medicines in your bag. If there is bad weather in one city, you should be able to reschedule your trip so that you visit different places on that day? Try to find as many risks so that you will have plan ready for each identified risk.

Procurement Management:
Once you are ready with all of the above planning then start working on Procurement Management of our project. Here first work on Flight Tickets. You all know the problem of getting reasonable tickets on given dates. After that you can start working on booking of other things like hotel, car, sightseeing tour etc. Here you can talk with different venders and based on you budget and required quality you can do the final bookings.

Once you have plan ready for your trip then next part is execution and monitor and control of this plan. During the trip you need to make sure you will go according to you plan. It will help to have a successful trip. Also during Monitor and Control, you need to make sure nobody is making drastic changes in this plan. If you need to change the plan then first analyze the impact of that change on overall trip and based on your analysis, allow or reject that change.

In this post, I discussed a family trip as a case study but you can apply same principles for any other events in your life. I am sure by applying these basic principles and framework of Project Management; you will become a successful Project Manager in your personal life.