agile scrum in theory and practice
DESCRIPTION
Application Development with The Agile Scrum Method. Agile Scrum in Theory and Practice. Tom Pletzke, CSM. Scrum Alliance. - PowerPoint PPT PresentationTRANSCRIPT
Agile Scrum in Theory and Practice
Application Development with The Agile Scrum Method
Tom Pletzke, CSM
Scrum Alliance
“Scrum is an agile framework for completing complex projects. Scrum originally was formalized for software development projects, but works well for any complex, innovative scope of work. The possibilities are endless. The Scrum framework is deceptively simple.”
http://www.scrumalliance.org/ http://www.youtube.com/watch?&v=XU
0llRltyFM
Why Agile?
What are the Agile principles and practices that guide teams?
What are the roles of an Agile team? How do teams apply these Agile
practices? Maintain a high-level Product Backlog Conduct Release Planning Conduct Sprint Planning Track progress daily and stick to a heartbeat Deliver a demo with a review and retrospective
Agile software development practices were introduced during 2007 to help improve productivity, cost and time to market
The IT industry widely recognizes that Agile practices help teams: Effectively manage changing requirements which leads to… Increased productivity (and Business Partner satisfaction) which
facilitates… Improved time to market therefore…
….driving cost down Agile practices address the typical IT project problems
through…. Developing usable software more quickly Providing timely and regular visibility of the software to the
Business Partner “Small to medium sized teams using Agile are on average
30-40% more productive than traditional teams” ****David Garmus – founder The David Consulting Group”
Several popular variations of Agile Software Development exist, we will discuss the Scrum framework in this presentation
Methodologies all characterized by: Adaptive rather than predictive processes People oriented rather than process oriented Assume requirements will change Assume Business Partners do not know what
they want until they start using Short iterations or “builds” of 2 – 6 weeks Tight project planning for the short iterations Constant Business Partner interaction Integration/ regression testing as each build is
integrated into the whole
At the heart of Agile, is a paradigm shift in the way projects are planned and managed
Constraints
Estimates
Requirements
ScheduleCost
ScheduleCost
Features
Plan Driven
Current PEP
Value /VisionDriven
Agile PEP
The Plan creates cost/schedule estimates The Vision creates feature estimates
Waterfall Agile
The Waterfall method typically engages the Business Partner at specified touch points, with weeks of silence in between
Software SystemRequirements
Software SystemDesign
Detailed Design
Code & Unit Test
SystemRequirements
Review
PreliminaryDesign Review
Critical DesignReview
Test ReadinessReview
Business PartnerEngagement
System Concept
Business PartnerEngagement
Integration & Test
Agile methods create a Business Partner feedback cycle with the project team which enables regular visibility of the software product
Product Owners
Define System
Plan Releases
Small Releases
Iterate Accept?
Track & Adjust
Release Roadmap
Product Backlog
Product Owner is a key role to this
process
The success of Agile depends on the implementation of these guiding practices
Time-boxed development Establish a heartbeat through standup meetings, short
iterations and incremental releases Plan, design, build, test and review each iteration
Just in time elaboration of requirements Maximize work not done by avoiding unnecessary inventory
Highest priorities first Implement highest priorities to acceptance
Pull quality forward Reduce technical debt by building in quality early in the
lifecycle Collaborate, Inspect and Adapt
Visibility, reviews, demonstrations, retrospectives
Program/Product Management with Scrum relies on multiple levels of planning with ever increasing detail
High Level (Less detail)
Release 1 Release 2 Release 3
Sprint 1 Sprint 2 Sprint 3 Sprint 4
Task 1 Task 2 … Task n
Who, What, How Long
Who, What, How LongWhat’s leftto do?
Product Roadmap
Release Plan
Sprint Plan
DailyVery Detailed
Burndown Chart
Product Vision
At the lowest level of planning is the Sprint or iteration – this is where the task level details are elaborated and executed
Daily Scrum Meeting• Done since last meeting• Plan for today• Obstacles?
24 hours
14 days
Product Backlog Prioritized product featuresDesired by Business Partner
Backlog tasksexpandedby team
Sprint Planning Meeting• Review Product Backlog• Estimate Sprint Backlog• Commit to 14 days
Potentially ShippableProduct Increment
Sprint Review Meeting• Demo features to all• Retrospective on the Sprint
Sprint BacklogFeatures assigned to SprintEstimated by team
15 mins
3-4 hrs1-2 hrs
Sprint = iteration
Scrum Framework
Agile encourages “cake slice” development and testing…
So the Product Owner has visibility to functionality earlier
and provide feedback often…
…as opposed to the traditional “cake layer” approach in waterfall methods
Collaboration and Consensus
High performance teams rely on collaboration to create and respond to change
Collaboration – team makes decisions, project manager only guides the decision process
Consensus – “I can live with and support that.” Fist of five:
▪ 5 = wild, unbridled support▪ 4 = this is a fine idea, wish I’d thought of it▪ 3 = I can live with and support it▪ 2 = I have reservations I’d like to think about▪ 1 = I am very opposed; we shouldn’t move forward
Pigs and Chickens
Pigs are fully committed (Development Team, Product Owner/Business Partner, Project Manager/Scrum Master)
Chickens can make contributions (Team Advisors) Only the fully committed can speak in daily
meetings Contributors only get to observe in Daily Standup They are active contributors in Planning and
Review meetings
Six Step Approach for Applying Agile Practices
Create a Product Vision Define a Product Backlog Conduct Release Planning Conduct Sprint Planning Track Daily Progress and Maintain
Heartbeat Deliver a Sprint Demo, Review, and
Retrospection
Define a Product Backlog
Product Backlog – what are all the desired features for this product?
Product Owner defined and prioritized though others contribute items (Architect, Team, Stakeholders)
Team estimate at the gross level Story Points - tells the team how large a story is
Prioritization and estimation: First best guess, high order Fluid and organic
New items can be added at any time to the Product Backlog
Story Points
A story point is a number that tells the team how large a story is
1 2 3 5 13 10040
Complexity
Effort
Unknowns
A typoThe largest new feature
Story points == actual hours
8 21
Actual Backlog From iPhone Project
Story ID Story Priority Points Release Sprint Status
1.1 Download and Install Software 1 2 1 1 Complete
1.2 Procure Mac 2 2 1 1 Complete
1.3 Program simple "hello world" app in xcode4 3 5 1 1 Complete
1.4 Design Meeting with Sponsor 4 5 1 1 Complete
1.5 Research web service connectivity to iPhone 5 2 1 1 Complete
1.6 LCB app icon graphic completed 6 3 1 1 Complete
1.7 Place "hello world" app on personal iPhone 7 2 1 1 Complete
1.8 Screen menu display complete 8 13 1 1 Complete
1.11 Complete bio iPhone page 9 5 1 1 Complete
1.12 Link Core Data database to iPhone bio page 10 3 1 1 Complete
1.15 Complete Event listings display 11 8 1 1 Complete
1.16 Link Core Data database to event listing page 12 5 1 1 Complete
1.13 Complete web links iPhone page 13 3 1 1 Complete
1.14 Link Core Data database to web links page 14 3 1 1 Complete
1.17 Link and add app to personal iPhone 15 3 1 1 Complete
1.18Testing phone app 16
3 1 1Complete
1.10
Write program to fill Core Data database from XML web page file for ( event listing, web links, bio)
17
13 1 1
Complete
1.9 Test HTTP GET calls to XML Web Page 18 5 1 1 Complete
1.19 Add event button to home page to go to events page. 19 2 2 1 Blocked
1.20
Add email button to detailed events page that will send event details via iPhone mail client.
20 8 2 1
Blocked
1.21 Use RSS feed from ReverbNation instead of Lost City Band XML. 21 5 2 1 Blocked
Actual Release Plan From iPhone Project
RELEASE PLAN
Release: 1.0 Theme: Apple iPhone App for the Lost City Band Updated: 10/14/2011 Release Start Date: 9/30/11 Release End Date: 12/2/11 Release Story Points: 85Number of Sprints: 1 Total Story Points Expected: 85Total Story Points Planned: 85Total Story Points Completed: 85Expected Percent Complete (EPC)100%Actual Percent Complete (APC) 100%Sprint #: 1Theme Apple iPhone App for the Lost City BandStatus CompleteStart Date 9/30/2011End Date 12/2/2011Story Points Planned 85Story Points Completed 85
Stories Included (ID#)
1.1 Download and Install Software1.2 Procure Mac1.3 Program simple "hello world" app in xcode41.4 Design Meeting with Sponsor1.5 Research web service connectivity to iPhone1.6 LCB app icon graphic completed1.7 Place "hello world" app on personal iPhone1.8 Screen menu display complete1.9 Test HTTP GET calls to XML Web Page1.10 Write program to fill SQLite database from XML web page file for ( event listing, web links, bio)1.11 Complete bio iPhone page1.12 Link Core Data database to iPhone bio page1.13 Complete web links iPhone page1.14 Link Core Data database to web links page1.15 Complete Event listings display1.16 Link Core Data database to event listing page1.17 Link and add app to personal iPhone1.18 Testing phone app
Sprint Planning Meeting
Sprint Planning
Meeting
Product Backlog
Team Capabilities
Business Conditions
Technology
Current Product
Produ
ct O
wner
Devel
opm
ent T
eam
Man
agem
ent
Busin
ess
Partn
ers
• Priorities• Detailed Tasks• Detailed Estimates• Assignments
Sprint Goal
Sprint Backlog
Inputs
Participants
Outputs
Sprint Planning Meeting
Review the current Product/Release Backlog Estimate team velocity Select an initial Sprint Backlog with theme Task out stories and provide estimates
using story points Finalize priorities Complete task definitions and assignments Commit team Alert stakeholders
Daily Standup
Purpose: To collect status and set the day in motion
Participants: All team members: developers, testers, Business Partners, project manager
Agenda: 15 minutes (1-2 min/participant)▪ “What did I do yesterday?”▪ “What I am doing today?” ▪ “What is getting in my way?”
Outcomes: Team commits to tasks for the day Re-assignments as necessary Updates to Burndown Chart, task status, and story
status
Daily Standup—The “Gotchas”
Same place/same time every day (What works for the team?)
Always start on time – honor each other’s time
NO PROBLEM SOLVING! Everyone is responsible for keeping to
the agenda and time box This is the TEAM’S meeting.
Actual Burndown From iPhone Project
Sta
rt
30
-Se
p
7-O
ct
14
-Oct
21
-Oct
28
-Oct
4-N
ov
11
-No
v
18
-No
v
25
-No
v
2-D
ec
9-D
ec
16
-De
c
23
-De
c
30
-De
c
6-Ja
n
-
20
40
60
80
100
120
140
Sprint 1 Burndown Chart
Remaining Resource Capacity Remaining Hours of Work
Sprint Burndown Spreadsheet – iPhone Project
Hours of Work Remaining @
Task Description ID Priority Responsible
Status Actuals Start 30-Sep 7-Oct 14-Oct 21-Oct
Remaining Capacity (hours left) 126
126
112
98
84
Sprint Total 121
121
107
99
89
Download and Install Software 1.1 1
Tom Completed 8 4 4 0 0 0
Procure Mac 1.2 2
Tom Completed 3 3 3 0 0 0
Program simple "hello world" app in xcode4 1.3 3
Tom Completed 5 3 3 0 0 0
Design Meeting with Sponsor 1.4 4
Tom Completed 5 2 2 0 0 0
Research web service connectivity to iPhone 1.5 5
Tom Completed 10 2 2 0 0 0
LCB app icon graphic completed 1.6 6
Tom Completed 3 4 4 4 0 0
Place "hello world" app on personal iPhone 1.7 7
Tom Completed 2 2 2 2 0 0
Screen menu display complete 1.8 8
Tom Completed 35 20 20 20 18 8
Complete bio iPhone page
1.11 9
Tom Completed 6 4 4 4 4 4
Link Core Data database to iPhone bio page
1.12 10
Tom Completed 8 4 4 4 4 4
Issue Log – iPhone – UAT / Meetings
Issue Log
ID Issue Originator Issue DateAction for Status Comment1.5Raised issue that web
service may be difficult.Tom 10/7/2011 Tom Closed Will research in more detail this week.
Solution: Will be using SQLite, XML, and HTTP GET to retrieve data.
1.15Raised issue that event listing is a critical part of the project and may need attention earlier
Tom 10/13/2011Tom Closed Will research the difficulty of event listing from SQLite. Spent many hours researching and feel I can do the project using sqlite most likely using something called core data.
2Presentation date for Walsh project is the same date as a big update at job.
Tom 28-Oct-11 Tom Closed Tom will let work know that he is not available the morning of December 10. Tom's work was notified and has agreed that it is ok for Tom to be unavailable the morning of December 10.
2.4No backup for mini mac Tom 21-Nov-11 Tom Closed Investigate options if min-mac fails. Will see if a laptop with xcode4 loaded will be available at the fair.
User Stories
Show Actual User Story
Design Document
Show Actual Design Document
Release Workbook
Show Actual Release Workbook
Sprint Demo
Sprint Demo Potentially shippable functionality Development team conducts DEMO for Product
Owner and Stakeholders Team gathers feedback Product Owner uses demo to guide future
decisions Spend no more than 2-3 hours preparing the
demoNO POWERPOINT!
Sprint Retrospective
The team’s chance to build in learning and adjustment
Retrospection is at the heart of the agile principles – creating and responding to change about how the team will perform
Sprint Retrospective: What worked well in this Sprint that we
would do again? What caused us difficulty? What new things do we want to try in the
next Sprint? Celebrate!
Success Factors for Agile
Co-located teams are better Small team size – 8 or less ideally Product owner involvement No multiplexing of team members Sustainable pace Continuous integration of builds Concurrent and automated testing Power of the retrospective
Rally Software
Web Based Scrum Management Software
http://www.rallydev.com/
Agile Scrum in Theory and Practice
Application Development with The Agile Scrum Method
Tom Pletzke, CSM
?