Sunday, March 2, 2014

Impediment v/s Bug - are they same or different?

Let's understand what is impediment and bug in Agile Scrum. First of all they both are not same, they may be distantly related in some special situations but they are different.

Here are the basic definitions:
An impediment is a situation that is stopping/blocking the completion of work.
A bug is referred to a defect or issue in the work product.
On side notes do you know that the word "bug" was used to indicate an actual bug (fly, moth) on a circuit board causing a short-circuit or other problems. You can read more details here - http://theinstitute.ieee.org/technology-focus/technology-history/did-you-know-edison-coined-the-term-bug

A defect would typically NOT block the completion of work, though in some situations a defect may impede work and also be am impediment at same time. For same reason, a defect would relate to implementation of a work item (user story), where as impediment would block one or more work items (user stories).

Defect and impediments are tracked seperately in defect tracker and impediment tracker. Bugs would eventually be prioritized and added to product backlog and re-prioritized by product owner. Impediments would never be added to product backlog, but resolution of an impediment may be taken out as spike; if some research work is involved and/or a major bloker to work.

While bugs can be identified during development activities (coding, testing etc), and impediment would typically be identified during daily scrums. The scrum master is responsible for helping resolve these impediments to improve team productivity.

Saturday, March 1, 2014

BRD, Requirements Document in Agile Scrum?

While comprehensive documentation is valuable, a working software is MORE valuable as per the Agile Manifesto. One of the myth about Agile Scrum is that it promotes no documentation. The fact is that documentation is certainly not a bad thing, but Agile suggests to create minimum required documentation.

So the question is where do you keep user requirements - trying to find something similar to BRD (Business Requirements Document) in Agile?

The answer is rather simple - "product backlog"! Product backlog is only place to capture all the user requirements and as we know these requirements are prioritized by product owner for each release, sprint and is called release backlog and sprint backlog respectively.

Pic: 1) Product Backlog, 2) Release Backlog, 3) Sprint Backlog

You may also want to check this post to learn more about difference between terms Release, Sprint.

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.

Sunday, April 7, 2013

What is the best way to resolve conflicts in Agile Scrum teams?

Before we discover the best way to conflict resolution - try to answer these questions -
  1. If a team member or some of the team members observe that a particular member is not performing as he/she should who should they talk to about this first? - Product Owner, Scrum Master, Manager or that member?
  2. Who should resolve conflicts in scrum teams? - Scrum Master, Product Owner, Manager, or the team?
Answers to the above questions are 1) member, 2) the team. Did you get you questions right? If not, here is explanation -

There is no role called Manager in scrum, so it has to be one of other three parties - since Scrum teams are self-organizing teams so as first step they are expected to talk to the member they have problem with to resolve any possible issues, conflicts. Important part is 'first step' - if this doesn't work, they may take Scrum Master's help and/or may follow organization escalation process.

So the best way to resolve scrum team conflicts is that team shall discuss about issues within themselves and try to resolve it that way.

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.