Application Development with The Agile Scrum Method

tenderlaSoftware and s/w Development

Dec 13, 2013 (3 years and 10 months ago)

106 views

Application Development with The Agile Scrum Method

Tom Pletzke, CSM


“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=XU0llRlt
yFM


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


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”



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


Constraints

Estimates

Requirements

Schedule

Cost

Schedule

Cost

Features

Plan

Driven

Current PEP

Value /Vision

Driven

Agile PEP

The Plan creates cost/schedule estimates

The Vision creates feature estimates

Waterfall

Agile

Software System
Requirements
Software System
Design
Detailed Design
Code & Unit Test
System
Requirements
Review
Preliminary
Design Review
Critical Design
Review
Test Readiness
Review
Business Partner
Engagement
System Concept
Business Partner
Engagement
Integration & Test
L
i
t
t
l
e

T
o

N
O

B
u
s
i
n
e
s
s

P
a
r
t
n
e
r

E
n
g
a
g
e
m
e
n
t
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


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

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 Long





What’s left

to do?

Product Roadmap

Release Plan

Sprint Plan

Daily

Very Detailed


Burndown Chart

Daily Scrum Meeting



Done since last meeting



Plan for today



Obstacles?

24 hours

14 days

Product Backlog

Prioritized product features

Desired by Business Partner

Backlog tasks

expanded

by team

Sprint Planning Meeting



Review Product Backlog



Estimate Sprint Backlog



Commit to 14 days

Potentially Shippable

Product Increment

Sprint Review Meeting



Demo features to all



Retrospective on the
Sprint

Sprint Backlog

Features assigned

to
Sprint

Estimated
by


team

15
mins

3
-
4 hrs

1
-
2 hrs

Sprint =
iteration

Scrum Framework

So the Product Owner has
visibility to functionality earlier
and provide feedback often…

…as opposed to the traditional “cake layer”
approach in waterfall methods


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 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



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



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




A story point is a number that tells the team
how large a story is


1

2

3

5

13

100

40

Complexity

Effort

Unknowns

A typo

The largest
new feature

Story points == actual hours

8

21

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.18

Testing phone app

16

3

1

1

Complete

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

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:

85

Number of Sprints:

1





Total Story Points Expected:

85

Total Story Points Planned:

85

Total Story Points Completed:

85

Expected Percent Complete (EPC)

100%

Actual Percent Complete (APC)

100%

Sprint #:

1

Theme

Apple iPhone App for the Lost City Band

Status

Complete

Start Date

9/30/2011

End Date

12/2/2011

Story Points Planned


85

Story Points Completed


85

Stories Included (ID#)

1.1 Download and Install Software

1.2 Procure Mac

1.3 Program simple "hello world" app in xcode4

1.4 Design Meeting with Sponsor

1.5 Research web service connectivity to iPhone

1.6 LCB app icon graphic completed

1.7 Place "hello world" app on personal iPhone

1.8 Screen menu display complete

1.9 Test HTTP GET calls to XML Web Page

1.10 Write program to fill SQLite database from XML web page file for ( event listing, web links, bio)

1.11 Complete bio iPhone page

1.12 Link Core Data database to iPhone bio page

1.13 Complete web links iPhone page

1.14 Link Core Data database to web links page

1.15 Complete Event listings display

1.16 Link Core Data database to event listing page

1.17 Link and add app to personal iPhone

1.18 Testing phone app

Sprint Planning

Meeting

Product Backlog

Team Capabilities

Business Conditions

Technology

Current Product


Priorities


Detailed Tasks


Detailed Estimates


Assignments

Sprint Goal

Sprint Backlog

Inputs

Participants

Outputs


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


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



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.



-
20
40
60
80
100
120
140
Start
30-Sep
7-Oct
14-Oct
21-Oct
28-Oct
4-Nov
11-Nov
18-Nov
25-Nov
2-Dec
9-Dec
16-Dec
23-Dec
30-Dec
6-Jan


Sprint 1 Burndown Chart

Remaining Resource Capacity
Remaining Hours of Work












Hours of Work
Remaining @









Task Description

ID

Priority

Responsi
ble

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



ID

Issue

Originator

Issue Date

Action for

Status

Comment

1.5

Raised 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.15

Raised issue that event
listing is a critical part of
the project and may
need attention earlier

Tom

10/13/2011

Tom

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.

2

Presentation 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.4

No 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.


Show Actual User Story


Show Actual Design Document


Show Actual Release Workbook


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 demo


NO POWERPOINT!





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!



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




Web Based Scrum Management Software


http://www.rallydev.com/

Application Development with The Agile Scrum Method

Tom Pletzke, CSM