agile software development using scrum n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Agile Software Development using Scrum PowerPoint Presentation
Download Presentation
Agile Software Development using Scrum

Loading in 2 Seconds...

play fullscreen
1 / 82

Agile Software Development using Scrum - PowerPoint PPT Presentation


  • 284 Views
  • Uploaded on

Agile Software Development using Scrum. Derek Mathieson Group Leader Advanced Information System CERN – Geneva, Switzerland. Agenda. Traditional Software Development What is Agile? The Agile Manifesto Agile Methods SCRUM SCRUM @ CERN. Traditional Development. Waterfall Model.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Agile Software Development using Scrum' - macha


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
agile software development using scrum

Agile Software Development using Scrum

Derek MathiesonGroup LeaderAdvanced Information System

CERN – Geneva, Switzerland

agenda
Agenda
  • Traditional Software Development
  • What is Agile?
  • The Agile Manifesto
  • Agile Methods
  • SCRUM
  • SCRUM @ CERN
waterfall model
Waterfall Model

Requirements

Design

Implementation

Verification

Maintenance

Time

waterfall in practice
Waterfall in Practice

Safeguard - Ballistic Missile Defence System

‘By the time the 6-year anti-missile system project was completed, the new missiles were faster than the anti-missile missiles’

spiral model
Spiral Model

C

u

m

u

l

a

t

i

v

e

c

o

s

t

2

.

I

d

e

n

t

i

f

y

a

nd

P

r

og

r

e

s

s

1

.

D

e

t

e

rm

i

n

e

r

e

s

o

l

v

e

r

i

s

k

s

ob

j

e

c

t

i

v

e

s

Operational

R

e

v

i

e

w

R

e

q

u

i

r

e

m

e

n

t

s

Prototype 1

Prototype 2

Prototype

p

l

a

n

C

o

n

ce

p

t

o

f

C

o

n

c

e

p

t

o

f

D

e

t

a

i

l

e

d

r

e

q

u

i

r

e

m

e

n

t

s

o

p

e

r

a

t

i

o

n

D

r

a

f

t

R

e

q

u

i

r

e

m

e

n

t

s

d

e

s

i

g

n

C

o

d

e

V

e

r

i

f

i

c

a

t

i

o

n

D

e

v

e

l

o

p

m

e

n

t

&

V

a

l

i

d

a

t

i

o

n

p

l

a

n

I

n

t

e

g

r

a

t

i

o

n

V

e

r

i

f

i

c

a

t

i

o

n

T

e

s

t

p

l

a

n

&

V

a

l

i

d

a

t

i

o

n

T

e

s

t

I

m

p

l

e

m

e

n

t

a

t

i

o

n

4

.

P

l

a

n

t

h

e

R

e

l

e

as

e

n

e

x

t

it

e

r

a

t

i

o

n

3

.

D

e

ve

l

op

m

e

n

t

a

nd

T

e

s

t

why software is different
Why Software Is Different?
  • Software is Complex
  • Technology Changes Rapidly
  • Requirements are Incomplete
  • Change is Considered Easy
  • Software Design is Research
  • Construction is Actually Design
  • Change is Inevitable
software is complex
Software is Complex

“Computer programs are the most intricate,

delicately balanced and finely interwoven

of all the products of human industry to date”

[James Gleick1992]

why software is different1
Why Software Is Different?
  • Software is Complex
  • Technology Changes Rapidly
  • Requirements are Incomplete
  • Change is Considered Easy
  • Software Design is Research
  • Construction is Actually Design
  • Change is Inevitable
project description
Project Description

‘Personal Transport Device’

  • Usable outside
    • Weather proof.
  • Reasonably Strong
    • Usable for several years.
  • Stable, relatively easy to use
    • Probably 4 wheels?
why software is different2
Why Software Is Different?
  • Software is Complex
  • Technology Changes Rapidly
  • Requirements are Incomplete
  • Change is Considered Easy
  • Software Design is Research
  • Construction is Actually Design
  • Change is Inevitable
why software is different3
Why Software Is Different?
  • Software is Complex
  • Technology Changes Rapidly
  • Requirements are Incomplete
  • Change is Considered Easy
  • Software Design is Research
  • Construction is Actually Design
  • Change is Inevitable
what is agile1
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)

the iron triangle
The Iron Triangle

Scope

Traditional

Development

PickTwo

Quality

Schedule

software delivery
Software Delivery

The Chaos ReportStandish Group (1995)

the agile manifesto 2001
The Agile Manifesto (2001)
  • Early and continuous delivery of valuable software
  • Welcome Change
  • Deliver Often
  • Customers and developers must work together
  • Best possible people, tools and workplace
  • Emphasis on face-to-face communication
  • Working software is the best measure of progress
  • Constant sustainable progress
  • Focus on technical excellence and good design
  • Simplicity
  • Self-organizing teams
  • Regular reflection on improvements
the 4 agile values
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
the iron triangle1
The Iron Triangle

Scope

Traditional

Development

PickTwo

Agile

Development

Quality

Schedule

iterative development
Iterative Development
  • Regular releases to customer
    • ‘Time-boxing’
    • Normally 2 – 6 weeks
  • Adjust design as the project progresses

Analysis & Design

Requirements

Implementation

Planning

Initial

Planning

Deployment

Evaluation

Testing

agile methods
Agile Methods
  • Scrum
  • Feature Driven Development (FDD)
  • Lean
  • Extreme Programming (XP)
  • RUP
  • Kanban
what is scrum1
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

method comparison
Method Comparison

Jeff Sutherland, ‘The Scrum Papers’ 2010

co-creator of SCRUM

edh statistics
EDH Statistics

3.00

25,000

60,000

2.50

Documents per month

Distinct Users per month

Signatures per month

Ratio Signatures/Document

20,000

50,000

2.00

40,000

15,000

1.50

30,000

10,000

1.00

20,000

5,000

0.50

10,000

-

-

0.00

  • 14,500 active users
  • 25k Documents/month
  • 60k Signatures/month
edh development team
EDH Development Team
  • 4 Staff
  • 3 Project Associates
  • 1 Fellows
  • 1 or 2 Students (9 month contract)
  • 1.8 million lines of code
  • ~1000 3rd line support calls/year
edh development b c
EDH Development B.C.

Before SCRUM

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
scrum vocabulary
SCRUM Vocabulary
  • Product Owner
  • Product Backlog
  • Scrum Team
  • Sprint Planning
  • Scrum Master
  • Daily Scrum
  • Sprint Backlog
  • Sprint Review Meeting
chickens and pigs
Chickens and Pigs...

Involved

Committed

the product owner
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
the product backlog
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
the scrum team
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”
agile estimation
Agile Estimation
  • Planning Poker
the scrum master
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."
the sprint planning meeting
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”
the sprint goal
The Sprint Goal
  • A short “theme” for the sprint:
  • The SCRUM Team commit to this goal.

“Create Reports.”

“Create Working Form.”

“Implement Workflow.”

“Implement Bulk Emailing.”

the sprint
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.
the daily scrum
The Daily Scrum
  • Anyone Invited
  • Led by Scrum Master
  • 15 minutes, every day
  • Not for problem solving
  • Three questions:
    • What did you do yesterday
    • What will you do today?
    • What obstacles are in your way?
process repeats
Process repeats...

2 Weeks Pass…

the sprint review meeting
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
release sprint
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

Release

Sprint

scrum value driven not plan driven
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

scrum in industry
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

scrum in industry1
SCRUM in Industry

Organizations using

Agile methods

Agile Adoption Survey, March 2008

State of the IT Union Survey, July 2009

scrum in industry2
SCRUM in Industry

Scrum

10.9%

Agile Modeling

6.0%

Feature-driven development (FDD)

3.8%

Test-driven development (TDD)

3.4%

2.9%

eXtreme Programming (XP)

Lean development

2.1%

A

gile, 35%

Microsoft Solutions Framework (MSF) for Agile

1.8%

Agile Data Method

1.6%

Adaptive Software Development (ASD)

1.3%

Six Sigma

0.9%

Crystal

0.3%

Behavior-driven development (BDD)

0.2%

Dynamic Systems Development Method (DSDM)

0.2%

Do not use a formal process methodology

30.6%

Iterative development

16.3%

I

terative, 21%

Rational Unified Process (RUP)

2.7%

Spiral

1.6%

8.4%

Waterfall

W

aterfall, 13%

2.5%

Capability Maturity Model Integration (CMMI)

ISO 9000

2.5%

Base: 1,298 IT professionals

Source: Forrester Research, Inc. 2009

visible benefits of scrum
Visible benefits of SCRUM
  • Time-Boxed:
    • Maximum investment known up-front
  • Tackle most valuable features first
  • Focus on working, tested, documented product features
conclusions
Conclusions
  • Product Owner:
    • Active Participant
    • Can “see” product evolve
    • Know the cost of each feature
    • Good Product Owners can be hard to find
conclusions1
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
why scrum
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
what did we adapt
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
implementation barriers
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

PickTwo

Quality

Schedule

lessons learned
Lessons Learned
  • Be careful of the choice of Product Owner
  • Use tools to simplify admin
    • Excel, whiteboards, ScrumWorks, JIRA, …
does it increase productivity
Does it Increase Productivity?
  • Probably… 
  • Did it make development work easier?
  • Yes…
    • Communication is better
    • Estimates are better
    • Planning is easier
    • Customers are happier
yes but
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
yes but1
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.
yes but2
Yes… but…
  • “Management won’t agree”
  • SCRUM offers:
    • Better Planning
    • Deadlines met
    • Minimise unnecessary development
    • Happy Clients
yes but3
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
yes but4
Yes… but…
  • “I like X from Scrum, but not Y, I might try X.”
  • Do X!
yes but5
Yes… but…
  • “You are trying to get us to work more for less! No way!”
  • SCRUM lets you:
    • Focus on useful work
yes but6
Yes… but…
  • “Our project X is special and not industry so we don’t need a process.”