Friday, February 28, 2014

Sprint velocity basis yesterday's weather - Agile (XP)

Ok, before we understand what is 'Yesterday's weather' in Agile, let me tell you that Yesterday's weather is not an agile scrum term but an extreme programming term. Some of Agile terms are used interchangably now a days, and this is one of the methods to estimate sprint velocity for upcoming sprint, so thought to cover this term.

Lets take this example -
if it has been raining yesterday in Delhi, then it's quite likely that it would rain today as well. It may not be 100% accurate forecast but still good enough to suggest someone carry an ambrella today.

In Agile, 'yesterday's weather' refers to last sprint's velocity. Development team may have been working at varying velocity in past sprints (20, 18, 25, 28) so one of the ways to estimate how many story points development team can deliver in next sprint is to check last sprint's velocity - this may not be the best way but can be called a best guess, or bet. So in this case, 28 story points would be the answer.

You may also find these related posts valuable in Sprint Planning section.

Monday, March 25, 2013

Is Scrum Master a Project Manager in Agile Scrum?

The straight answer to that would be 'no' - and I guess everyone who has spent 30-40hrs learning Agile Scrum would know this short answer, but let's understand why behind it and that is really important.

OK, lets understand why these two roles are NOT same -
1) Agile teams are self-organizing teams, so if you are PMI Project Management guru (aka PMP) you would know - Project Manager spends lots of time and energy in organizing these resources (developers, testers, analysts etc, and their tasks etc) so by definition, these activities are no more required (to a greater extent), so Scrum Master is not supposed to (and may not even know how to...) do resource management. Scrum Master is like a coach in Scrum Team not manager.

2) Scrum Master (also explained as 'servant-leader' in scrum guides) - is there to do specific job(s) - ensure scrum rules/practices are being followed, remove impediments, (and keep chickens (sounds unfamiliar? - read this) away from team but keep them happy). Project Manager on other hand is assumed to be master of all these - so this is actually similarity between these two roles - but Project Manager is expected to anyways be master of all these (e.g. ensure project management practices are being followed, remove hurdles/blockers, keep chickens happy...), but this role carries lot of other responsibilities as well, than just that.

3) Ever heard of WBS, estimation, gantt charts, critical path analysis? - that's what we don't do in Agile Scrum, but on other hand in waterfall, all these are termed as 'most important tasks for a project manager', and hence a Project Manager is different from Scrum Master. Even estimation is done by developers in consultation with Product Owner, and Scrum Master has little role to play there.

So in nutshell, the role of Project Manager is divided is Agile Scrum, and the tasks are distributed (by nature of Scrum), among all members of Scrum Team.

Further reading - I strongly recommend you to read a short and simple (16 pages) Agile Scrum Guide by Ken Schwaber and Jeff Sutherland.

Wednesday, March 6, 2013

Release Sprint v/s Release v/s Deployment

Lets try to understand these three terms that sound so simillar - Release Sprint, Release and Deployment -

1) Release and Deployment are more or less same. Though these two may have different meanings in some cases - say in waterfall we say 'QA release' and 'Production deployment' - that are two different terms, but in this context these two are same. Once the Sprint Review is over, it 'may be' released/deployed.
At times, 'Release' can also be referred as 'Release Cycle', e.g. a large project can be proken down into mutiple Release Cycles and each may tie back with some organization/business/program objective. In my view, Release (as in Release Cycle) has same meaning in Waterfall and Agile.
2) Release Sprint is actually a special sprint that may take place if release/deployment itself is sizeable effort that is expected to span 2-4 weeks. This type of Sprint is not recommended and should be avoided, as efficient Scrum teams would always finish a functionality that meets 'Definition of Done' and always has a ROI value attached to it so can be released, hence teams are expected to use automated deployments tools to avoid need of such special Sprints.

Scrum Events Timeboxing

All the events in Scrum are timeboxed and here is the list of key events and their timeboxes -
  • Sprint (also called as iteration) - 2 weeks (or as planned - between 2-4 weeks)
  • Sprint Planning Meeting - 8 hours*
  • Sprint Review - 4 hours*
  • Sprint Retrospective - 3 hours*
  • Daily Scrum Meeting (also called as Daily Standup) - 15 minutes (fixed regarless of sprint time)
* - time box given here is for a four week (one month) sprint - to be adjusted depending upon the sprint duration.

What Product Owner is busy with during Sprint?

Though Agile Scrum has just three roles - Product Owner, Scrum Master and Developers, but the roles and responsibilites of each one can be very confusing at times. One of the most frequently asked question is "what activities a product owner engage during sprint?"

Answer: When sprint is in progress, Product Owner would usualy be busy grooming prodoct backlog, answering queries from development team (if any), talking to stekholders (dont forget- he is adding new items to product backlog, re-prioritizing items etc....so he needs to talk to stakeholders), and may help with some early testing and provide feedback as well.