Implementing Scrum

April 28th, 2009

sprintwritten by gunther gerlach-2009

Define your : A Sprint is a key when process is implemented in SDLC. The Sprint defines the amount of time where a team will release a feature or list of features from a giving sprint backlog. This is an important decision. suggests 30 days, but they could a week if you estimate that will improve your team efficiency. The optimum depends on many factors. I suggest going back to your team and analyzing the perfect duration to be able of releasing a piece of software. I suggest 14 days, plus a planning day for your team and Stake Holders to create the prioritize requirements form different teams and, analyze the product burn chart. This will leave 2 weeks of intensive work and also, two Sprints a month.

For fast-moving products or markets, such as web-based products - where there is central deployment and no rollout or user training - 1 month seems like a lifetime! Personally I like 2 week Sprints for fast moving products.

must be Consistent: Whatever you choose to go for, keep it consistent. This, in fact, is more important than the length itself. This makes your process repeatable and consistent with other process improvement methodologies like Lean. This consistency that allows you to start understanding how many points you can typically do in a Sprint.

Select Target Backlog for Sprint: After you have decided on your , you must decide the goal for the current Sprint. Look in your and select your target backlog for the Sprint. Make this decision as a team. It is recommendable to include more than you think can be achieved. It’s important to prepare more items during planning in case the team finishes early. These items can be clearly identified as stretch tasks and the Product Owner should not expect them to be completed. These are the things you will only do if the Sprint goes better than you expected. This decision is easy to make having your team’s previous chart (Velocity is the number of Points delivered in a Sprint).

Clarify Sprint Requirements: Take each item on the . It’s important to go through them methodically, one item at a time. The Product Owner presents each item and explains how he/she sees it working from a functional perspective.  The whole team discusses the item in detail. The whole team asks questions about the feature in order to establish what it should do and how it should work. The outcomes of this discussion should be captured on a whiteboard or flipchart, or someone could write notes on a laptop as the discussion progresses. Interactive or printable whiteboards are ideal for this process. But the important principle in , and in any development methodology, is that you write requirements feature by feature, just before they are developed.

Write requirements in a way that is lightweight and visual. Agile requirements should be barely sufficient. The fact the features will be developed and tested within the next few weeks, and by the team that were present, makes this possible. Consider writing ‘’, a concept from XP (extreme programming). Check my post about if you need more information about it. But the basic concept is to write features using this construct: As a [type of user], I want to [do whatever], so I can [achieve what goal].

The story can be backed up by a sketch of the UI, a wireframe or visuals. Annotate the sketch to describe the functionality. Backed it up with statements about how it will be confirmed (or tested). This will help to identify scenarios up front, before it’s developed.

 

The Process: The way to implement and track your results is simple.

1.    Get your backlog in order!

2.    How to estimate your

3.    Sprint Planning/clarify requirements

4.    Sprint Planning/estimate tasks

5.    Create a collaborative workspace

6.    Sprint!

7.    Stand up and be counted!

8.    Track progress with a daily

9.    Finish when you said you would

10. Review, reflect, repeat…

 

 

example: The following is a perfect example of a User Story that I found in Internet.

 

001-user_login 

Confirmation: Writing tests up-front helps to ensure the software is designed to pass. Writing tests up-front also helps to identify scenarios that users, developers and/or analysts may not have thought of. Keeping small enough to fit on a card helps to ensure that requirements are broken into small, manageable pieces of functionality, i.e. individual features.

Cards also work nicely in conjunction with whiteboards, providing clear visibility of progress and enabling team collaboration, moving cards around the board as things progress.

 

 001-user_login2

Gunther Gerlach

  1. No comments yet.
  1. No trackbacks yet.