SCRUM Implementation

Easy steps to implement SCRUM based on Kelly Waters' How To Implement Scrum in 10 Easy Steps.

Step 1: Organize Backlog
  • Align with Business: At least one person per product (if supporting multiple products).
  • Start with Business as Usual: Use a project in bug fixing and enhancements cycle.
  • Find a Willing Product Owner: One person responsible for prioritizing on the product.
  • ScrumMaster: One person supporting the Scrum Team, removing obstacle blocking progress.
  • Create Product Backlog: A list of things to be done to product, in priority order (expressed in business terms, not technical). It can contain anything: bugs, enhancements, whole projects, issues, risks, etc.
  • Prioritize Backlog: Only the Product Owner can prioritize the Product Backlog.
Step 2: Estimating Product Backlog
  • Estimate in Points.
  • Use a Point System: Eg: Fibonacci numbers: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987… Typically just 1 - 21.
  • Estimate as a Team. Each member offers an estimate.
  • Review Priorities.
Step 3: Sprint Planning (Requirements)
  • Sprint meeting: all developers, testers, and product owner involved. All roles must be included.
  • Decide sprint duration: 1 week, 2 weeks, 1 month (recommended).
  • Keep Sprint Duration Consistent.
  • Select Target Backlog for Sprint: pick a section of items/features from the top of backlog that can be achieved in sprint. Include stretch tasks, which are items to tackle if sprint finishes early.
  • Clarify Sprint Requirements. Discuss and write down each requirement feature by feature. Write user stories: As a [type of user], I want to [do whatever], so I can [achieve some goal]. The story can be described by a UI sketch.
Step 4: Sprint Planning (Tasks)
  • Sprint meeting: all developers, business analysts, testers. Product owner and customer do not need to attend.
  • Set Sprint Budget: number of hours required for sprint. Deduct from total man-hours available for sprint.
  • Break Requirements into Tasks. Tasks can be: Design, Development, Unit Testing, System Testing, UAT (User Acceptance Testing), Documentation, etc. State tasks as deliverables.
  • Estimate Tasks in Hours. Ideally a task would be less than 1 day. Breakdown large tasks if necessary.
  • Commit to the Sprint Backlog. If all tasks add to more than alloted sprint, then remove lower priority tasks.
  • Identify Stretch Tasks. Tasks that can be tackled when team delivers early, in order to keep sprint a fixed length.
Step 5: Create A Collaborative workspace
  • Whiteboard your walls.
  • Create a place for collaboration. Whiteboard is the collaboration hub.
  • Management by post-it note.
    • Whiteboard with 5 columns: columns: Product Backlog, Tasks To Do, Work In Progress, Ready To Be Verified, and Done.
    • Use notes with Backlog Items (and all tasks listed for that Item), and place them in 'Product Backlog'.
    • Use notes with Tasks, and place them in 'Tasks To Do', then move as needed.
Step 6: Sprint
  • Develop, implement, test, etc. as necessary to finish a Task.
  • Testing is part of lifecyle of each Sprint.
  • No interference. Changing priorities mid way adds double the time to new task that caused disruption.
  • Aborting a sprint should be reserved for rare cases. You must go back to sprint planning at this point.
Step 7: Stand Up And Be Counted!
  • Hold a daily stand-up meeting.
  • All must be present (non-optional), including product owner and active customers, and users.
  • Semi-circle around whiteboard.
  • Each member reports to team. Person reporting is the only one speaking. Report should be concise and focused. Must address 3 questions:
    • 1. What have they achieved since the last meeting? (yesterday)
    • 2. What will they achieve before the next meeting? (tomorrow)
    • 3. Is anything holding up their progress? (impediments)
  • Quick questions can be raised, but discussed with revelant people after scrum meeting.
  • Scrum Master facilitates the meeting, keeping time, on topic, no obstacles. Impediments are noted on the whiteboard to be dealt later by Scrum Master or delegate.
  • Meeting must be held the same place, same time, every day, routinely, at a time all members can attend.
  • Penalty for late arrival to meeting (like $1), to be later spend at end of sprint.
  • Stay focused, avoid overrun, since all members are present and it is expensive. Typically 15 min should work for large teams.
Step 8: Track Progress With A Daily Burndown Chart
  • Update the estimated time to complete (ETC) each task on a daily basis.
  • Each team member can be responsible for updating their own ETC’s on a daily basis before the Scrum.
  • Plot progress visually on a line graph.
    • Series 1: Original Estimate.
    • Series 2: Current Estimate.
  • Annotate with key events, describing key events along the way.
  • Scrum highlights your problems – it doesn’t solve them. You get the true picture.
Step 9: Finish When You Said You Would
  • When sprint is completed, those tasks are 100%, allowing to ship when time is up.
  • All changes must be reversible, to make sure you can always ship in case something goes wrong.
  • Complete each feature before moving to the next.
Step 10: Review, Reflect, Repeat
  • Sprint review meeting:
    • All must be present, including stakeholders.
    • Review deliverables, demos. Each member presents his/her work.
    • Purpose:
      • Show achievements, demo contributions.
      • Key stakeholders see what has been done, and feedback, while there is time.
      • Helps team stay focused on deadline (no one wants to be there empty handed).
  • Sprint retrospective meeting:
    • All team members, and product owner. Stakeholders not invited. It is a chance to discuss how to improve things.
    • Purpose:
      • Review the final burndown chart.
      • Review the team's velocity. Velocity is the number of points estimated on the original product backlog, for the items completed in the Sprint (i.e. number of product backlog points delivered in a sprint). Plot this on a graph.
      • Discuss what went well.
      • Discuss what could have gone better.
      • Decide what the team will do differently in the next Sprint.
  • Repeat: Reflect on what went well and apply it.
    • How the software looked after the last Sprint.
    • Feedback about the product developed so far.
    • To what extent the team was able to deliver what it committed to in Sprint Planning.
    • The team’s Velocity and what is achievable in a typical iteration.
    • What went well.
    • What didn’t go so well.
    • What will be done differently going forward.