Agile Software Development using Scrum
Post on 25-Feb-2016
35 Views
Preview:
DESCRIPTION
Transcript
CERN – European Organization for Nuclear ResearchGS Department – Administrative Information Services
Agile Software Development using Scrum
Derek MathiesonGroup Leader
Advanced Information SystemCERN – Geneva, Switzerland
CERNGS-AIS
Speaker BackgroundCurrently:
– Group Leader of AIS since January 2010Previously:
– 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)
Frequently Asked Questions on WWW
FREQUENTLY ASKED QUESTIONS ON W3An FAQ list is really a cop-out from managed information. You should be able to find everything you want to know by browsing from the WWW project page, as everything should be arranged in a logical way. Here though are things which maybe didn't fit into the structure, with pointers to the answers which maybe did. Its an experiment, started May 92. The questioners are anonymous. I am just starting: how do I find out more?[1] How does www keep track of the available servers?[2] How does W3 compare with WAIS and Gopher[3] ? How do I create my own server[4] ?1-10, Up, <RETURN> for more, Quit, or Help:
CERNGS-AIS
AgendaTraditional Software DevelopmentWhat is Agile?The Agile ManifestoAgile MethodsSCRUMSCRUM @ CERN
CERNGS-AIS
Traditional Development
CERNGS-AIS
Waterfall Model
Requirements
Design
Implementation
Verification
Maintenance
Time
CERNGS-AIS
Spiral Model
1.Determineobjectives
2. Identify andresolve risks
3. Developmentand Test
4. Plan thenext iteration
ProgressCumulative cost
Requirementsplan
Concept ofoperation
Concept ofrequirements
Requirements
Prototype 1 Prototype 2OperationalPrototype
DraftDetaileddesign
Code
Integration
Test
Implementation
Release
Test plan Verification& Validation
Developmentplan
Verification& Validation
Review
CERNGS-AIS
Why Software Is Different?Software is ComplexTechnology Changes RapidlyRequirements are IncompleteChange is Considered EasySoftware Design is ResearchConstruction is Actually DesignChange is Inevitable
CERNGS-AIS
Software is Complex
“Computer programs are the most intricate, delicately balanced and finely interwoven
of all the products of human industry to date”[James Gleick 1992]
CERNGS-AIS
Software is Complex
CERNGS-AIS
Software is Complex
CERNGS-AIS
Software is Complex
CERNGS-AIS
Software is Complex
CERNGS-AIS
Why Software Is Different?Software is ComplexTechnology Changes RapidlyRequirements are IncompleteChange is Considered EasySoftware Design is ResearchConstruction is Actually DesignChange is Inevitable
CERNGS-AIS
Technology Changes Rapidly
CERNGS-AIS
Requirements Are Incomplete
CERNGS-AIS
An Experiment
CERNGS-AIS
Project Description
‘Personal Transport Device’
Usable outside– Weather proof.
Reasonably Strong– Usable for several years.
Stable, relativly easy to use– Probably 4 wheels?
CERNGS-AIS
Implementation
?
CERNGS-AIS
“Many projects fail because their developers fail to build the right thing”
—Grady Booch
CERNGS-AIS
Why Software Is Different?Software is ComplexTechnology Changes RapidlyRequirements are IncompleteChange is Considered EasySoftware Design is ResearchConstruction is Actually DesignChange is Inevitable
CERNGS-AIS
Introducing Agile Development
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
Why Agile?
CERNGS-AIS
Iterative DevelopmentRegular releases to customer
– ‘Time-boxing’– Normally 2 – 6 weeks
Adjust design as the project progresses
Requirements
Planning
Analysis & Design
Implementation
TestingEvaluation
InitialPlanning Deployment
CERNGS-AIS
The Iron Triangle
Scope
Quality Schedule
PickTwo
TraditionalDevelopment
CERNGS-AIS
Software Delivery
The Chaos ReportStandish Group (1995)
Can-celed31%
Over Cost53%
Success16%
CERNGS-AIS
The Iron Triangle
Scope
Quality Schedule
PickTwo
TraditionalDevelopment
AgileDevelopment
CERNGS-AIS
The Agile Manifesto (2001)1. Early and continuous delivery of valuable software 2. Welcome Change3. Deliver Often4. Customers and developers must work together5. Best possible people, tools and workplace6. Emphasis on face-to-face communication7. Working software is the best measure of progress8. Constant sustainable progress9. Focus on technical excellence and good design 10. Simplicity11. Self-organizing teams12. Regular reflection on improvements
CERNGS-AIS
The 4 Agile ValuesIndividuals and interactions
over processes and toolsWorking software
over comprehensive documentationCustomer collaboration
over contract negotiationResponding to change
over following a plan
CERNGS-AIS
Agile MethodsScrum Feature Driven Development (FDD)LeanExtreme Programming (XP)RUPKanban
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, 2006co-creator of SCRUM
CERNGS-AIS
Method Comparison
Waterfall Spiral Iterative ScrumDefined processes Required Required Required Planning & Closure only
Final product Determined during planning
Fixed during planning
Set during project Set during project
Project cost Determined during planning
Partially variable
Set during project Set during project
Completion date Determined during planning
Partially variable
Set during project Set during project
Responsiveness to environment Planning only Planning
primarilyAt end of each
iteration Throughout
Team flexibility,creativity Limited - cookbook approach Unlimited during
iterations
Knowledge transfer Training prior to project Teamwork during projectProbability ofsuccess Low Medium low Medium High
Jeff Sutherland, ‘The Scrum Papers’ 2010co-creator of SCRUM
CERNGS-AIS
SCRUM in Pictures
CERNGS-AIS
SCRUM in Practice
CERNGS-AIS
EDH Statistics14,500 active users25k Documents/month60k 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 Team4 Staff2 Project Associates2 Fellows2 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 VocabularyProduct OwnerProduct BacklogScrum TeamSprint PlanningScrum MasterDaily ScrumSprint BacklogSprint Review Meeting
CERNGS-AIS
Chickens and Pigs...
Involved Committed
CERNGS-AIS
The Product OwnerTypically 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 BacklogA 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 TeamTeams are self-organisingCross-functional
– QA, Programmers, UI Designers, Technical Writers, etc.
Assign Cost to each Item on the Product Backlog
Commit to the “Sprint Goal”
CERNGS-AIS
Agile EstimationPlanning Poker
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 MeetingAttended 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 GoalA 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 “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 Daily ScrumAnyone InvitedLed by Scrum Master15 minutes, every dayNot for problem solving
Three questions:1.What did you do yesterday2.What will you do today?3.What obstacles are in your way?
CERNGS-AIS
Process repeats...
2 Weeks Pass…
CERNGS-AIS
The Sprint Review MeetingTeam presents what it accomplished
during the sprintTypically takes the form of a demo of
new features or underlying architectureParticipants
– 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 3 ReleaseSprint
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, 2007co-creator of SCRUM
CERNGS-AIS
SCRUM in IndustryThe 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, 2010co-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 firstFocus 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 SprintRelease SprintNot everyone ‘SCRUMs’
– Full time support staff– Technology
(Almost) Everyone does support tooSome people have several roles
CERNGS-AIS
Implementation BarriersSome clients insist all features must be
in final productDaily Sprint meetings = InterruptionPoor Product Owner
– Not final decision maker– Doesn’t want to be involved– More than one (that don’t agree!)
Scope
Quality Schedule
PickTwo
CERNGS-AIS
Lessons LearnedBe careful of the choice of Product
OwnerUse 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
top related