A Sprint Walkthrough
Introduction Purpose Tools Recap Sprint Walkthrough Product backlog: Creation, Prioritization Sprint planning: Sprint backlog, Sprint calendar Daily activities: Daily Scrum, Sprint progress, Visual aids Sprint review and retrospective: Review, Retrospective Metrics: Sprint reports, JIRA Agile Gadgets What s next? 2
3
The target of this material is to exemplify a Scrum cycle a Sprint The material will not cover the XP (Extreme Programming) practices associated with Scrum but will focus on the daily activities and how to manage a Scrum project using JIRA Agile plugin Throughout the material the framework will be presented from the points of view of all Scrum team members: Product Owner Scrum Master Development team 4
Common Scrum management tools Whiteboards Agile Scrum management software: Rally Visual Studio TFS VersionOne JIRA with JIRA Agile Plugin Why using a software and why JIRA? Easier to present the steps (compared to a whiteboard) Easier to collaborate for non-collocated teams JIRA: out of the box Scrum integration, easy to setup, friendly licensing, a lot of plugins 5
Made by Atlassian (https://www.atlassian.com/) Best known for Confluence (Enterprise WIKI) and JIRA (originally bug tracking system) JIRA and JIRA Agile JIRA issue tracking product, developed by Atlassian, used for bug tracking, issue tracking and project management. The product name, JIRA, is not an acronym but rather a truncation of "Gojira", the Japanese name for Godzilla. It has been developed since 2002 JIRA Agile Plugin used for creating and estimating stories, building a sprint backlog, identifying team commitment and velocity, visualizing team activity and reporting team progress 6
7
Classical methods of software development have many disadvantages: huge effort during the planning phase poor requirements conversion in a rapid changing environment treatment of staff as a factor of production Agile Software Development methods: Scrum Extreme Programming Adaptive Software Development (ASD) Dynamic System Development Method (DSDM) Agile Alliance = A non-profit organization promotes agile development 8
We wish The customers know what they want The developers know how to build it Nothing will change along the way Reality The customers discover what they want The developers discover how to build it Many things change along the way 9
Individuals and interactions Working software Customer collaboration Responding to change over over over over Process and tools Comprehensive documentation Contract negotiation Following a plan That is, while there is value in the items on the right, we value the items on the left more. 10
Scrum is an agile framework that allows us to focus on delivering the highest business value in the shortest time. It allows us to rapidly and repeatedly inspect actual working software (every one week to one month). The product owner sets the priorities. Teams selforganize to determine the best way to deliver the highest priority features. Every one week to a month anyone can see real working software and decide to release it as is or continue to enhance it for another sprint. 11
Self-organizing teams Product progresses in a series of one- to four-week sprints Requirements are captured as items in a list of product backlog items No specific engineering practices prescribed One of the agile frameworks 12
13
Scrum projects make progress in a series of sprints Typical duration is 1 4 weeks or a calendar month at most A constant duration leads to a better rhythm Product is designed, coded, and tested during the sprint Sequential vs. overlapping development: Requirements Design Code Test Requirements Design Code Rather than doing all of one thing at a time......scrum teams do a little of everything all the time Test 14
Define the features of the product Decide on release date and content Be responsible for the profitability of the product (ROI) Prioritize features according to market value Adjust features and priority every iteration, as needed Accept or reject work results 15
Represents management to the project Responsible for enacting Scrum values and practices Removes impediments Ensure that the team is fully functional and productive Enable close cooperation across all roles and functions Shield the team from external interferences 16
Typically 5-9 people Cross-functional: Programmers, testers, user experience designers, etc. Members should be full-time May be exceptions (e.g., database administrator) Teams are self-organizing Membership should change only between sprints 17
18
A collaborative meeting in the beginning of each Sprint between the Product Owner, the Scrum Master and the Team Two part meeting : 1 st when the Product Owner presents the User Stories from the product backlog determining the Sprint Goal 2 nd when the Team thinks they have enough Stories to start the Sprint, they might begin breaking it down in Tasks to fill the Sprint Backlog. As a vacation planner, I want to see photos of the hotels. Product backlog Sprint Backlog Code the middle tier (8 hours) Code the user interface (4) Write test fixtures (4) Code the foo class (6) Update performance tests (4) 19
As a [user role] I want to [goal] so I can [reason] For example: As a registered user I want to log in so I can access subscriber-only content 20
The bigness of a task Influenced by How hard it is How much of it there is Relative values are what is important: A login screen is a 2. A search feature is an 8. Points are unit-less As a user, I want to be able to have some but not all items in my cart gift wrapped. 21
An iterative approach to estimating Steps Each estimator is given a deck of cards, each card has a valid estimate written on it Customer/Product owner reads a story and it s discussed briefly Each estimator selects a card that s his or her estimate Cards are turned over so all can see them Discuss differences (especially outliers) Re-estimate until estimates converge 22
Parameters Daily ; 15-minutes ; Stand-up Not for problem solving Whole world is invited Only team members, Scrum Master, Product Owner can talk Helps avoid other unnecessary meetings What did you do yesterday? What you will do today? Everyone answers 3 questions which are not status for the Scrum Master but commitments in front of peers Is anything in your way? 23
Team presents what it accomplished during the sprint Typically takes the form of a demo of new features or underlying architecture Whole team participates Invite the world 24
It is attended only by the Team, Scrum Master, and Product Owner Start the meeting by having all Team members answer two questions: What went well during the last Sprint? What could be improved in the next Sprint? The Scrum Master writes down the Team s answers in summary form. The Team prioritizes in which order it wants to talk about the potential improvements. The Scrum Master is not at this meeting to provide answers, but to facilitate the Team s search for better ways for the Scrum process to work for it 25
The requirements A list of all desired work on the project Ideally expressed such that each item has value to the users or customers of the product Prioritized by the product owner Reprioritized at the start of each sprint 26
27
Requirements can be captured in various ways (specialized software, Excel) Managed by the Product Owner Initial product backlog: 28
The initial www.scrumalliance.org site was a Wiki implementation (using Doku) Staring with 2006 the new site (with areas like Profiles, News, Courses and Events, FAQs ) was launched using a Scrum framework for the development Old version: First release of the new version: 29
The update was not only to improve the overall experience of the surfers but also to create an enriched experience at www.scrumalliance.org and allowing the members and would be members to manage their membership with the site Also, the update allowed the inclusion of training material, useful resources and the addition of both a News and Courses and Events sections providing further help for anyone planning to become a Certified Scrum Master (or a Certified Scrum Product Owner, Certified Scrum Developer, Certified Scrum Professional) Another goal of the upgrade was to allow easy payment of the certification and membership fees (this was implemented in subsequent releases) 30
Can be imported from CSV files (an admin task, not part of this presentation) Access to the Agile toolkit in JIRA is done by selecting the Agile menu For the Product Backlog select Plan User Stories and Epics can be created by using the Create Issue button Epics can be created also using Create Epic (see below) Hover over EPICS Click on Create Epic 31
32
Sprints Edit User Story Drag and drop ordering 33
Starting with the provided backlog, order the epics to help launching the first version of the www.scrumalliance.org site as soon as possible Epics: Articles, Courses and Events, FAQs, For Trainers Only, Home Page, Jobs, Membership, News, Profiles, Ratings, Registry, Resources, What is Scrum? Remember: the Product Owner can be helped by the Development Team to establish both business priorities (1 st version ready as soon as possible) but also to understand the technical constraints (like approving job postings only after having implemented the users and roles) 34
Create a Sprint just by pressing the Creating Sprint button Move the bottom of the sprint marker to include the planned user stories Sprint marker 35
Story points are assigned using Poker Planning (see Recap) Modifying and viewing current story points estimates can be done on the Plan view Current Story points Edit Story points Sprints are planned based on team velocity Sprint total estimate 36
For the following user stories, provide story points estimates using poker planning, and assuming As a site member, I can mark my email address as private even if the rest of my profile is not. as a reference user story with a Story Point estimate of 1. User stories: As a site member, I can mark my profile as private in which case only my name will appear., As a site member, I can search for profiles based on a few fields (class attended, location, name)., As a site member, I can fill out an application to become a Trainer., As a Trainer, I want my profile page to include additional details about me (i.e., some of the answers to my Trainer application)., As a site member, I can fill out an application to become a Practitioner., As a Practitioner, I want my profile page to include additional details about me (i.e., some of the answers to my Practitioner application)., As a site member, I can view the profiles of other members. 37
For the following user stories, define the sprint goal (the user stories in the sprint), using the previous estimated story points and a team velocity of 27. User stories: As a site member, I can mark my profile as private in which case only my name will appear., As a site member, I can search for profiles based on a few fields (class attended, location, name)., As a site member, I can fill out an application to become a Trainer., As a Trainer, I want my profile page to include additional details about me (i.e., some of the answers to my Trainer application)., As a site member, I can fill out an application to become a Practitioner., As a Practitioner, I want my profile page to include additional details about me (i.e., some of the answers to my Practitioner application)., As a site member, I can view the profiles of other members. 38
Use the Start sprint button The Start and End date of the sprint needs to be specified 39
Use the Work mode The Sprint Board will appear 40
Drag User Story from To Do into In Progress 41
Drag User Story from To Do into In Progress 42
Fill details Press Close 43
Move to Report view Use the Burndown Chart 44
Changes in sprint scope or User Stories status 45
46
Add flag Comment on the impediment 47
Run a daily scrum assuming any day of the sprint except the first and the last Each team member should explain: What has he/she done yesterday? What he/she plans to achieve today? What are his/her impediments? At least one impediment should be raised and discussed after the status (for example: development database is down) For the past and planned activities, the user stories from the planning exercise can be used 48
This activity is run outside of JIRA and consists in demoing the implemented functionality to the Product Owner and other stakeholders To exemplify this activity please open the www.scrumalliance.org site and demo the Courses & Events section 49
This activity is run outside of JIRA (but you can use outputs like the Sprint Burndown or the feedback during the Sprint Review) Each team member will write on a piece of paper some ideas around: What went good? What didn t go right? What are the steps to improve? Then the Scrum Master should gather the papers and centralize the results (without naming the persons who gave the feedback) Then the team will discuss each item and will put together the list of improvements (based on the notes but also on the emerging ideas during the discussion) The result can be recorded like in the following example 50
51
The JIRA Sprint Report is organized in 3 sections The Burndown Chart: Completed User Stories: User Stories to complete: 52
53
54
55
56
57
For this run we used a simplified one shot release of the product JIRA offers the possibility to group the User Stories by Release (allowing for example to organize the Product Backlog for several releases) This is achieved by using JIRA Versions 58
Another approach for development using Scrum (which was already discussed in the previous sessions) is to estimate the user stories in story points and the task in time. Most of the Agile coaches do not recommend this approach as it creates a mix of estimates defeating the purpose of using Story Points (that is to estimate complexity and not effort) However, if needed, one can track the time spent on User Stories or Tasks in JIRA by simply using the Log Work form 59
Atlassian maintains a very detailed documentation on both how to use the product but also about the philosophy behind the JIRA Agile plugin design Some of the available resources include JIRA Documentation: http://docs.atlassian.com/jira-latest/ Do Agile Right: https://www.atlassian.com/agile/ JIRA Homepage: https://www.atlassian.com/software/jira 60
Confluence (WIKI useful for team collaboration): https://www.atlassian.com/software/confluence Bamboo (Continuous integration, deployment, release management): https://www.atlassian.com/software/bamboo Crucible (Code reviews): https://www.atlassian.com/software/crucible/ FishEye (FishEye read-only window into Subversion, Perforce, CVS, Git and Mercurial repositories): https://www.atlassian.com/software/fisheye/ Stash (Git repository management): https://www.atlassian.com/software/stash Clover (Java and Groovy Code Coverage): https://www.atlassian.com/software/clover/ 61