You are on page 1of 21

Agile Development and Data

With Scrum and TDD


Andy Leonard
VSTeamSystemCentral.com
With thanks to Brian Knight, SQL Server MVP
SQLServerCentral.com

Scrum, Defined
Agile methodology
Scrum is application of Agile
Rugby term
Self-organizing teams
Iterative approaches of 30 days
called sprints
Adopt whatever engineering
practice works for you

Roles

Key Artifacts
Product Backlog

PO

List of requirements &


issues
Owned by Product Owner
Anybody can add to it
Only Product Owner prioritizes

Product Owner: Set


priorities

Key Meetings
Sprint Planning Meeting

Hosted by ScrumMaster; -1 day


In: Product Backlog, existing
product, business & technology
conditions
1. Select highest priority items in Product
Backlog; declare Sprint Goal
2. Team turns selected items into Sprint
Backlog
Out:: Sprint Goal, Sprint Backlog

ScrumMaster:
Manage process,
remove blocks

Product
Backlog

Increment

Sprint Planning Meeting

Sprint Goal
SM

Development Process

One-sentence summary
Declared by Product Owner
Accepted by team

Sprint:
30 days each

Sprint Goal

Daily Scrum

Sprint Backlog

List of tasks
Owned by team
Only team modifies it

Hosted by ScrumMaster
Attended by all, but Stakeholders
dont speak
Same time every day
Answer: 1) What did you do
yesterday? 2) What will you do
today? 3) Whats in your way?
Team updates Sprint Backlog; ScrumMaster
updates Blocks List

Daily Scrum

Sprint
Backlog

Blocks List

Daily Work
Product

Blocks List

Team: Develop
product

List of blocks & unmade


decisions
Owned by ScrumMaster
Updated daily

SH

Increment

Stakeholders:
observe & advise

Version of the product


Shippable functionality (tested,
documented, etc.)

Increment

Sprint Review Meeting

Hosted by ScrumMaster
Attended by all
Informal, 4-hour, informational
Team demos Increment
All discuss
Hold retrospective
Announce next Sprint Planning
Meeting

Sprint Review Meeting

Product
Backlog

Scrum Methodology

The Scrum Master


Represents management to the
project
Typically filled by a Project
Manager or Team Leader
Responsible for keeping
meetings short and direct and
removing impediments

The Scrum Team


Typically 5-10 people
Cross functional
QA, Programmers, UI, DBAs, etc

Members should be full time


unless role is minor (like
sysadmin)
Teams are self-organizing
Optimally, membership only
changes between sprints

Daily Scrums
Daily and 15 mins at most
Can cancel the weekly status meetings!

Answer three questions:


What did you do yesterday?
What will you do today?
Are there any impediments in your way?

Not for problem-solving


Chickens and pigs are invited
Only pigs can talk

Sample Roadblocks
My ____ broke and I need a new one today.
I still haven't got the software I ordered a
month ago.
I need help debugging a problem with
______.
I'm struggling to learn ______ and would like
to pair with someone on it.
I can't get the vendor's tech support group to
call me back.
Our new contractor can't start because no
one is here to sign her contract.
I can't get the ____ group to give me any
time and I need to meet with them.
The department VP has asked me to work on
something else "for a day or two."

Taskboard

Notes--Just a place to jot a note or two


Story--The story description ("As a user I want to...") shown on that row.
To Do--This holds all the cards that are not done or in process.
Tests Specified--I like to do "Story Test-Driven Development," which
means the tests are written before the story is coded. I'm not a stickler
about it but it does help when there's time to specify the tests (at a high
level) in advance. This column just contains a checkmark to indicate the
tests are specified. Ideally, not a lot of work (in the form of task cards)
crosses this column without a checkmark in it.
Work In Process--Any card being worked on goes here. The programmer
who chooses to work on it moves it over when she's ready to start the
task. Often this happens during the Daily Scrum when someone says, "I'm
going to work on the boojum today."
To Verify--A lot of tasks have corresponding test task cards. So, if there's
a "Code the boojum class" card there is likely one or more task cards
related to testing: "Test the boojum," "Write FitNesse tests for the
boojum," "Write FitNesse fixture for the boojum," etc. Some task cards
don't often get corresponding test cards ("Fix Bug #321 in Bugzilla") so
those are placed in the "To Verify" column.
Done--Cards pile up over here when they're done. They're removed at the
end of the sprint. Sometimes I remove some or all during a sprint if there
are a lot of cards.

Sample Task lists

Sample task boards

Sprints
Usually 30 days in length
No changes allowed during this
sprint unless team agrees
Need overlap
Need a theme for each sprint
Make the application run on SQL
Server in addition to Oracle
Convert to a new reporting
structure.

Big Visible Charts

Product Backlog

Sprint Backlog

Sprint Burndown Chart

Sprint Review Meeting

Entire team presents the iteration


Typically in form of demo
Very informal with 2-hour prep time rule
Participants

Customers
Management
Product Owner
Other engineers

Scrum to large groups

References
Ken Schwaber is one of the
originators of Scrum and has
written two books on Scrum:
Agile Software Development with
Scrum with Mike Beedle.
Agile Project Management with
Scrum

http://xp123.com/
http://www.mountaingoatsoftwa
re.com

Questions?

Thank You!
www.AndyLeonard.net
Andy@AndyLeonard.net
Visit
www.VSTeamSystemCentral.com
Andy@VSTeamSystemCentral.com

You might also like