Saturday, September 3, 2011

Scrum Simplified

SCRUM is an agile methodolgy for software projects.

There are 2 ideas which form the core of SCRUM : :
  • Maintain Product Feature List  ( called Product Backlog )
  •  Time Boxed Development (called Sprint)
The Product Backlog is the master list of all functionality desired in the product.
It is not necessary to start a project with a lengthy, upfront effort to document all requirements.

Typically, it starts with a small list and it grows and changes as product evolves.

It helps in following ways:
  • It helps maintain one single list for all product Requirements.
  • Tracking: A status is maintained for all backlog items which give visibility of what is complete, what is current work in progress and what the future plans are.
  • Prioritization: List of features can be prioritized based on business scenario to align development with the business need.
  • Estimation: Each Backlog Item has a rough size and complexity estimate. This helps in
  • Planning the work for future iterations/Sprints.
  • Understanding team productivity based on work completed in previous iterations/Sprints
Development is divided in small iterations called SPRINT:
  • A Sprint has a fixed period (generally 1 – 4 weeks).
  • Once decided Sprint period is not changed. This helps in setting a rhythm in the team.
  • Every Sprint has a defined Start and End Date.
  • A Sub set of backlog Items from Product Backlog are taken and assigned to the Sprint. This is called Sprint Backlog.  This defines the target or the output for the sprint.
  • End Date for sprint is fixed; if all the items from sprint backlog could not be completed they are moved on to future sprints.
  • The Sprint Backlog Items are prioritized as
    •    Must Have
    •    Good to have
    •   Nice to have
  • All the “Must have” items should be completed by the end of sprint. “Good to Have” and “Nice to have “could be picked based on time available.

  • All work should be present in Product backlog and there is no requirement outside it.
  • The End date of Sprint is fixed.
  • Once a sprint has started, Sprint backlog items in that Sprint should not be changed. If there are changes coming up in the work under progress, they should be captured separately and assigned for future sprints.

  • Daily Standup Scrum Meeting by Development team ( less than 15 minutes each day ) where each team member  tells about :
    •  What was done yesterday
    •  What is planned for today
    •  Any Blocker in doing the work
  •  Lessons Learnt or retrospective Meeting at the end of each sprint to evaluate what worked and what not and find out ways of improvement.
  • Sprint Pre Planning Meeting: here the work for the sprint is planned before start of the sprint.
  • Sprint Demo Meeting: This usually is used to give a demo to stakeholders from dev team as to what work was completed in the sprint.
  • Sprint Burn down Chart: The estimated work remaining in the sprint is calculated daily and graphed, resulting in a Sprint Burn down Chart. The vertical axis displays the hours of effort remaining for the Sprint.  The horizontal axis displays the days of the Sprint.  The burn down is supposed to be shown by the line of descent from the start of the Sprint with the starting hours, down to the end of the Sprint with no hours remaining. 
  • Product Burn Down Chart: No of features completed in each sprint.
  • Sprint Velocity: No of Backlog Items completed by team in a sprint. This helps in planning work for future sprints.
Following lists are required to be maintained:
      1.  Sprint List: List of planned sprints.

      Required Fields:
  • Sprint Name
  • Start Date
  • End Date
  • Description

      2.  Product backlog List: List of all the product features

       Required Fields:
  • Backlog Id : an auto generated field
  • Dependency : multi select list where backlog ids of other features can be filled
  • Sprint: Combo Field coming from Sprint list. This helps in defining sprint backlog
  • Release ( e.g. 1.0 , 1.5 etc ) : release in which this feature is planned
  • Week (  within sprint  which week this feature will be developed )
  • Module: a logical division of features ( e.g. User, Account etc)
  • Sub Module : a logical sub division of features
  • Category ( e.g. :New Screen, Workflow, enhancement,Bug  etc)
  • Backlog Item Title
  • Backlog Item Description
  • Complexity ( Complex, Medium, Simple)
  •  Priority ( must have, good to have , nice to have)
  • Status ( not Started, In Progress, Completed, On hold, Released)
  • Assigned to
  • Time Estimated
  •  Time Spent
  • Time Remaining
  • Remarks
  • Source :  This item was requested by whome or was promised to whome ?
  • URL of  document location ( These are detailed requirement document or link to a wiki page for this backlog item)
      3. Task List: list of all the task required to be done for development of a feature. Should be a child of a feature/ Backlog item

      Required Fields
  • Task Title
  • Sprint
  • Backlog Id
  • Task Description
  • Time Spent
  • Start Date
  • End Date
  • Assigned To
     4.  Optional - Release Plan : expected release plan for the product : required only if multiple sprints are to be clubbed for a release

      Required Fields
  • Release : ( e.g. 1.0, 1.1. 2.0)
  • Dev Complete Date
  • QA Complete Date
  • Move to staging Date
  • User Acceptance testing  date
  • Release Date

No comments:

Post a Comment