Agile Software Development using Scrumsbnt.jinr.ru/iris/articles/D.Mathieson_Agile_software... ·...
Transcript of Agile Software Development using Scrumsbnt.jinr.ru/iris/articles/D.Mathieson_Agile_software... ·...
CERN – European Organization for Nuclear Research
GS Department – Administrative Information Services
Agile Software Development
using Scrum
Derek MathiesonGroup Leader
Administrative Information Services
CERN – Geneva, Switzerland
CERNGS-AIS
Speaker Background
Currently:
– Group Leader of AIS since January 2010
Previously:
– Section Leader EDH (2000)
– Software Developer at CERN (1994)
– Software Developer at SSC in Texas (1992)
– CERN Fellow (1990)
– CERN Technical Student (1989)
– Software Developer (1986)
CERNGS-AIS
Agenda
What is Agile?
The Agile Manifesto
Agile Methods
SCRUM
SCRUM @ CERN
CERNGS-AIS
What is Agile?
CERNGS-AIS
What is Agile?
Agile:
– Having the faculty of quick motion; nimble,
active, ready.
Agile software development:
– A group of software development
methodologies based on iterative and
incremental development, where
requirements and solutions evolve through
collaboration between self-organizing,
cross-functional teams.
(Oxford English Dictionary)
(Wikipedia)
CERNGS-AIS
Waterfall Model
Requirements
Design
Implementation
Verification
Maintenance
Time
CERNGS-AIS
Spiral Model
1.Determine
objectives
2. Identify and
resolve risks
3. Development
and Test
4. Plan the
next iteration
Progress
Cumulative cost
Requirements
plan
Concept of
operation
Concept of
requirementsRequirements
Prototype 1 Prototype 2
Operational
Prototype
DraftDetailed
design
Code
Integration
Test
Implementation
Release
Test plan Verification
& Validation
Development
plan
Verification
& Validation
Review
CERNGS-AIS
Iterative Development
Regular releases to customer
– „Time-boxing‟
– Normally 2 – 6 weeks
Adjust design as the project progresses
Requirements
Planning
Analysis & Design
Implementation
TestingEvaluation
Initial
Planning Deployment
CERNGS-AIS
Why Agile?
CERNGS-AIS
The Iron Triangle
Scope
Quality Schedule
Pick
Two
Traditional
Development
Agile
Development
CERNGS-AIS
The Agile Manifesto (2001)
1. Early and continuous delivery of valuable software
2. Welcome Change
3. Deliver Often
4. Customers and developers must work together
5. Best possible people, tools and workplace
6. Emphasis on face-to-face communication
7. Working software is the best measure of progress
8. Constant sustainable progress
9. Focus on technical excellence and good design
10. Simplicity
11. Self-organizing teams
12. Regular reflection on improvements
CERNGS-AIS
The 4 Agile Values
Individuals and interactions
over processes and tools
Working software
over comprehensive documentation
Customer collaboration
over contract negotiation
Responding to change
over following a plan
CERNGS-AIS
Agile Methods
Scrum
Feature Driven Development (FDD)
Lean
Extreme Programming (XP)
Crystal
Kanban
CERNGS-AIS
An Experiment
CERNGS-AIS
Project Description
„Transportable Weather Guard‟
Usable outside: weather-proof
– Possibly fabric cover?
Reasonably Strong
– Metal construction?
Quick to set up, if it rains suddenly
– Perhaps automatic?
CERNGS-AIS
Implementation
CERNGS-AIS
“Many projects fail because their
developers fail to build the right thing”—Grady Booch
CERNGS-AIS
SCRUM
CERNGS-AIS
What is SCRUM?
CERNGS-AIS
What is SCRUM?
Scrum is a framework for iterative,
incremental development using cross-
functional, self-managing teams. It is
built on industry best practices, lean
thinking, and empirical process control.
Ken Schwaber, 2006
co-creator of SCRUM
CERNGS-AIS
Method Comparison
Waterfall Spiral Iterative Scrum
Defined processes Required Required Required Planning & Closure only
Final productDetermined
during planning
Fixed during
planning
Set during
projectSet during project
Project costDetermined
during planning
Partially
variable
Set during
projectSet during project
Completion dateDetermined
during planning
Partially
variable
Set during
projectSet during project
Responsiveness to
environmentPlanning only
Planning
primarily
At end of each
iterationThroughout
Team flexibility,
creativityLimited - cookbook approach
Unlimited during
iterations
Knowledge transfer Training prior to project Teamwork during project
Probability of
successLow Medium low Medium High
Jeff Sutherland, „The Scrum Papers’ 2010
co-creator of SCRUM
CERNGS-AIS
SCRUM in Pictures
CERNGS-AIS
SCRUM in Practice
CERNGS-AIS
EDH Statistics
14,500 active users
25k Documents/month
60k Signatures/month
-
5,000
10,000
15,000
20,000
25,000
Documents per month Distinct Users per month
0.00
0.50
1.00
1.50
2.00
2.50
3.00
-
10,000
20,000
30,000
40,000
50,000
60,000
Signatures per month Ratio Signatures/Document
CERNGS-AIS
EDH Development Team
4 Staff
2 Project Associates
2 Fellows
2 Students (9 month contract)
1.8 million lines of code
~1000 3rd line support calls/year
CERNGS-AIS
EDH Development B.C.
B.
– Constant Developer Interruptions
• Low efficiency
– Delivery was often late
• Poor estimation – many unknowns
– Scope Creep
• Specification constantly changing
• Everything is Free
• Some features never used
Before SCRUMC.
CERNGS-AIS
SCRUM Vocabulary
Product Owner
Product Backlog
Scrum Team
Sprint Planning
Scrum Master
Daily Scrum
Sprint Backlog
Sprint Review Meeting
CERNGS-AIS
Chickens and Pigs...
Involved Committed
CERNGS-AIS
The Product Owner
Typically a Product Manager, Internal
Customer, etc.
Responsible for:
– Providing and maintain a prioritised
“Product Backlog”
– Responsive to questions during a sprint
CERNGS-AIS
The Product Backlog
A list of all desired work on the project
– Usually a combination of
• story-based work:
“let user search and replace”
• task-based work:
“improve exception handling”
Prioritised by the Product Owner
– Priority should be (ideally) based on
“Business Value”
“Cost” assigned by the Scrum Team
CERNGS-AIS
The Scrum Team
Teams are self-organising
Cross-functional
– QA, Programmers, UI Designers, Technical
Writers, etc.
Assign Cost to each Item on the Product
Backlog
Commit to the “Sprint Goal”
CERNGS-AIS
The “Sprint”
Fixed “Time-Box” (we chose 2 weeks)
Product is designed, coded, and tested
during the sprint
Daily Scrum Meetings
Produce demonstratable, working, new
functionality.
CERNGS-AIS
The Scrum Master
Responsible for enacting Scrum values and
practices (The Process)
Main job is to remove obstacles which affect
the team
Typical obstacles could be:
– My ____ broke and I need a new one.
– I still haven't got the software I ordered.
– I need help debugging a problem with ____.
– I'm struggling to learn ____ and would like help.
– The GL has asked me to work on something else
"for a day or two."
CERNGS-AIS
The Sprint Planning Meeting
Attended by:• Product Owner, Scrum Master, Scrum Team, and
any interested and appropriate management or
customer representatives.
Product Owner describes the highest
priority features to the team.
Collectively the Scrum Team and the
Product Owner define a “Sprint Goal”
CERNGS-AIS
The Sprint Goal
A short “theme” for the sprint:
The SCRUM Team commit to this goal.
“Create Working Form.”
“Implement Workflow.”
“Create Reports.”
“Implement Bulk Emailing.”
CERNGS-AIS
The Daily Scrum
Anyone Invited
Led by Scrum Master
15 minutes, every day
Not for problem solving
Three questions:
1.What did you do yesterday
2.What will you do today?
3.What obstacles are in your way?
CERNGS-AIS
Process repeats...
2 Weeks Pass…
CERNGS-AIS
The Sprint Review Meeting
Team presents what it accomplished
during the sprint
Typically takes the form of a demo of
new features or underlying architecture
Participants
– Management
– Product Owner
– Other engineers
– …
CERNGS-AIS
Release Sprint
Concentrate on preparing for production:
– No new features
– Last minute bugs, typos, layout issues, etc.
– Translation (if not done already)
– Desktop Icons
– Communication, Bulletin Articles, etc.
Sprint 1 Sprint 2 Sprint 3Release
Sprint
CERNGS-AIS
Scrum– value driven not plan driven
Empower lean teams to deliver more software
earlier with higher quality.
Demonstrate working features to the customer
early and often so the customer can inspect
progress and prioritize change.
Deliver exactly what the client wants by
directly involving the customer in the
development process.
Provide maximum business value to the
customer by responding to changing priorities
in real time.
Jeff Sutherland, 2007
co-creator of SCRUM
CERNGS-AIS
SCRUM in Industry
The most profitable software product
ever created (Google Adwords) is
powered by Scrum.
The most productive large project with
over a million lines of code (SirsiDynix)
used a ... Scrum implementation.Jeff Sutherland, 2010
co-creator of SCRUM
CERNGS-AIS
SCRUM in Industry
No, 24%Yes, 76%
State of the IT Union Survey, July 2009
No, 31% Yes,
69%
Agile Adoption Survey, March 2008
Organizations using
Agile methods
CERNGS-AIS
Visible benefits of SCRUM
Time-Boxed:
– Maximum investment known up-front
Tackle most valuable features first
Focus on working, tested, documented
product features
CERNGS-AIS
Conclusions
Product Owner:
– Active Participant
– Can “see” product evolve
– Know the cost of each feature
– Good Product Owners can be hard to find
CERNGS-AIS
Conclusions
Team:
– Work closely with Product Owner
– Know the “Value” of each Feature
– Known Start and End of Project
– Efficient, highly focused development
– Strong Team Spirit
CERNGS-AIS
Why SCRUM?
What I wanted:
– Manage Product Requirements
– Provide Visibility to Clients
– Better manage developer time
– A more repeatable development process
What developers wanted:
– Something „light‟
– Task management
– Communication
CERNGS-AIS
What did we adapt?
2 week Sprint
Release Sprint
Not everyone „SCRUMs‟
– Full time support staff
– Technology
(Almost) Everyone does support too
Some people have several roles
CERNGS-AIS
Implementation Barriers
Some clients insist all features must be
in final product
Daily Sprint meetings = Interruption
Poor Product Owner
– Not final decision maker
– Doesn‟t want to be involved
– More than one (that don‟t agree!)
Scope
Quality Schedule
Pick
Two
CERNGS-AIS
Lessons Learned
Be careful of the choice of Product
Owner
Use tools to simplify admin
– Excel, whiteboards, ScrumWorks, JIRA, …
CERNGS-AIS
Product Backlog Window
CERNGS-AIS
Sprint Detail Window
CERNGS-AIS
JIRA + GreenHopper
CERNGS-AIS
Jira IDE Integration (IDEA)
CERNGS-AIS
Does it Increase Productivity?
Probably…
Did it make development work easier?
Yes…
– Communication is better
– Estimates are better
– Planning is easier
– Customers are happier
CERNGS-AIS
Thank You
CERNGS-AIS
Yes… but…
“I like writing software, but I don‟t like
doing the other development stuff which
we are not forced to do here.”
SCRUM lets you:
– Focus on valuable development
Use tools to minimise admin
CERNGS-AIS
Yes… but…
“It might help, but we have multiple
projects per person.”
So do we…
– It‟s simpler to have only one, but sometime
schedules don‟t allow…
– Time-boxing helps to reduce parallel
activities.
CERNGS-AIS
Yes… but…
“Management won‟t agree”
SCRUM offers:
– Better Planning
– Deadlines met
– Minimise unnecessary development
– Happy Clients
CERNGS-AIS
Yes… but…
“Our clients won‟t agree”
Tricky one…
– SCRUM needs Client commitment
– SCRUM exposes the cost of features
– SCRUM makes the client choose
In return they get:
– Transparency
– License to change their minds
– Met deadlines
CERNGS-AIS
Yes… but…
“I like X from Scrum, but not Y, I might
try X.”
Do X!
CERNGS-AIS
Yes… but…
“You are trying to get us to work more
for less! No way!”
SCRUM lets you:
– Focus on useful work
CERNGS-AIS
Yes… but…
“Our project X is special and not
industry so we don‟t need a process.”
CERNGS-AIS
Thank You