+ All Categories
Home > Documents > Agile Software Development using Scrum

Agile Software Development using Scrum

Date post: 25-Feb-2016
Category:
Upload: lala
View: 38 times
Download: 0 times
Share this document with a friend
Description:
Agile Software Development using Scrum. Derek Mathieson Group Leader Advanced Information System CERN – Geneva, Switzerland. Speaker Background. Currently: Group Leader of AIS since January 2010 Previously: Section Leader EDH (2000) Software Developer at CERN (1994) - PowerPoint PPT Presentation
Popular Tags:
79
CERN – European Organization for Nuclear Research GS Department – Administrative Information Services Agile Software Development using Scrum Derek Mathieson Group Leader Advanced Information System CERN – Geneva, Switzerland
Transcript
Page 1: Agile Software Development using Scrum

CERN – European Organization for Nuclear ResearchGS Department – Administrative Information Services

Agile Software Development using Scrum

Derek MathiesonGroup Leader

Advanced Information SystemCERN – Geneva, Switzerland

Page 2: Agile Software Development using Scrum

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:

Page 3: Agile Software Development using Scrum

CERNGS-AIS

AgendaTraditional Software DevelopmentWhat is Agile?The Agile ManifestoAgile MethodsSCRUMSCRUM @ CERN

Page 4: Agile Software Development using Scrum

CERNGS-AIS

Traditional Development

Page 5: Agile Software Development using Scrum

CERNGS-AIS

Waterfall Model

Requirements

Design

Implementation

Verification

Maintenance

Time

Page 6: Agile Software Development using Scrum

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

Page 7: Agile Software Development using Scrum

CERNGS-AIS

Why Software Is Different?Software is ComplexTechnology Changes RapidlyRequirements are IncompleteChange is Considered EasySoftware Design is ResearchConstruction is Actually DesignChange is Inevitable

Page 8: Agile Software Development using Scrum

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]

Page 9: Agile Software Development using Scrum

CERNGS-AIS

Software is Complex

Page 10: Agile Software Development using Scrum

CERNGS-AIS

Software is Complex

Page 11: Agile Software Development using Scrum

CERNGS-AIS

Software is Complex

Page 12: Agile Software Development using Scrum

CERNGS-AIS

Software is Complex

Page 13: Agile Software Development using Scrum

CERNGS-AIS

Why Software Is Different?Software is ComplexTechnology Changes RapidlyRequirements are IncompleteChange is Considered EasySoftware Design is ResearchConstruction is Actually DesignChange is Inevitable

Page 14: Agile Software Development using Scrum

CERNGS-AIS

Technology Changes Rapidly

Page 15: Agile Software Development using Scrum

CERNGS-AIS

Requirements Are Incomplete

Page 16: Agile Software Development using Scrum

CERNGS-AIS

An Experiment

Page 17: Agile Software Development using Scrum

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?

Page 18: Agile Software Development using Scrum

CERNGS-AIS

Implementation

?

Page 19: Agile Software Development using Scrum

CERNGS-AIS

“Many projects fail because their developers fail to build the right thing”

—Grady Booch

Page 20: Agile Software Development using Scrum

CERNGS-AIS

Why Software Is Different?Software is ComplexTechnology Changes RapidlyRequirements are IncompleteChange is Considered EasySoftware Design is ResearchConstruction is Actually DesignChange is Inevitable

Page 21: Agile Software Development using Scrum

CERNGS-AIS

Introducing Agile Development

Page 22: Agile Software Development using Scrum

CERNGS-AIS

What is Agile?

Page 23: Agile Software Development using Scrum

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)

Page 24: Agile Software Development using Scrum

CERNGS-AIS

Why Agile?

Page 25: Agile Software Development using Scrum

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

Page 26: Agile Software Development using Scrum

CERNGS-AIS

The Iron Triangle

Scope

Quality Schedule

PickTwo

TraditionalDevelopment

Page 27: Agile Software Development using Scrum

CERNGS-AIS

Software Delivery

The Chaos ReportStandish Group (1995)

Can-celed31%

Over Cost53%

Success16%

Page 28: Agile Software Development using Scrum

CERNGS-AIS

The Iron Triangle

Scope

Quality Schedule

PickTwo

TraditionalDevelopment

AgileDevelopment

Page 29: Agile Software Development using Scrum

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

Page 30: Agile Software Development using Scrum

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

Page 31: Agile Software Development using Scrum

CERNGS-AIS

Agile MethodsScrum Feature Driven Development (FDD)LeanExtreme Programming (XP)RUPKanban

Page 32: Agile Software Development using Scrum

CERNGS-AIS

SCRUM

Page 33: Agile Software Development using Scrum

CERNGS-AIS

What is SCRUM?

Page 34: Agile Software Development using 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

Page 35: Agile Software Development using 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

Page 36: Agile Software Development using Scrum

CERNGS-AIS

SCRUM in Pictures

Page 37: Agile Software Development using Scrum

CERNGS-AIS

SCRUM in Practice

Page 38: Agile Software Development using Scrum

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

Page 39: Agile Software Development using Scrum

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

Page 40: Agile Software Development using Scrum

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.

Page 41: Agile Software Development using Scrum

CERNGS-AIS

SCRUM VocabularyProduct OwnerProduct BacklogScrum TeamSprint PlanningScrum MasterDaily ScrumSprint BacklogSprint Review Meeting

Page 42: Agile Software Development using Scrum

CERNGS-AIS

Chickens and Pigs...

Involved Committed

Page 43: Agile Software Development using Scrum

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

Page 44: Agile Software Development using Scrum

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

Page 45: Agile Software Development using Scrum

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”

Page 46: Agile Software Development using Scrum

CERNGS-AIS

Agile EstimationPlanning Poker

Page 47: Agile Software Development using Scrum

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

Page 48: Agile Software Development using Scrum

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”

Page 49: Agile Software Development using Scrum

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

Page 50: Agile Software Development using Scrum

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.

Page 51: Agile Software Development using Scrum

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?

Page 52: Agile Software Development using Scrum

CERNGS-AIS

Process repeats...

2 Weeks Pass…

Page 53: Agile Software Development using Scrum

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

Page 54: Agile Software Development using Scrum

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

Page 55: Agile Software Development using Scrum

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

Page 56: Agile Software Development using 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

Page 57: Agile Software Development using 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

Page 58: Agile Software Development using Scrum

CERNGS-AIS

Visible benefits of SCRUM

Time-Boxed:– Maximum investment known up-front

Tackle most valuable features firstFocus on working, tested, documented

product features

Page 59: Agile Software Development using Scrum

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

Page 60: Agile Software Development using Scrum

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

Page 61: Agile Software Development using Scrum

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

Page 62: Agile Software Development using Scrum

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

Page 63: Agile Software Development using Scrum

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

Page 64: Agile Software Development using Scrum

CERNGS-AIS

Lessons LearnedBe careful of the choice of Product

OwnerUse tools to simplify admin

– Excel, whiteboards, ScrumWorks, JIRA, …

Page 65: Agile Software Development using Scrum

CERNGS-AIS

Product Backlog Window

Page 66: Agile Software Development using Scrum

CERNGS-AIS

Sprint Detail Window

Page 68: Agile Software Development using Scrum

CERNGS-AIS

JIRA + GreenHopper

Page 69: Agile Software Development using Scrum

CERNGS-AIS

Jira IDE Integration (IDEA)

Page 70: Agile Software Development using Scrum

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

Page 71: Agile Software Development using Scrum

CERNGS-AIS

Thank You

Page 72: Agile Software Development using Scrum

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

Page 73: Agile Software Development using Scrum

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.

Page 74: Agile Software Development using Scrum

CERNGS-AIS

Yes… but…“Management won’t agree”

SCRUM offers:– Better Planning– Deadlines met– Minimise unnecessary development– Happy Clients

Page 75: Agile Software Development using Scrum

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

Page 76: Agile Software Development using Scrum

CERNGS-AIS

Yes… but…“I like X from Scrum, but not Y, I might

try X.”

Do X!

Page 77: Agile Software Development using Scrum

CERNGS-AIS

Yes… but…“You are trying to get us to work more

for less! No way!”

SCRUM lets you:– Focus on useful work

Page 78: Agile Software Development using Scrum

CERNGS-AIS

Yes… but…“Our project X is special and not

industry so we don’t need a process.”

Page 79: Agile Software Development using Scrum

CERNGS-AIS

Thank You


Recommended