Agile Software Development -...

61
Agile Software Development Credits to: Aaron Ciaghi, Pietro Molini Some Material from Mike Cohn and Mountain Goat Software

Transcript of Agile Software Development -...

Page 1: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

AgileSoftware DevelopmentCredits to: Aaron Ciaghi, Pietro Molini

Some Material from Mike Cohn and Mountain Goat Software

Page 2: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Outline

• A short talk about waste • Intro to Agile Software Development • Examples of Agile Development Processes

– DSDM (overview) – eXtreme Programming (more detailed) – Scrum (in depth)

2

Page 3: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

A short talk aboutwaste

Page 4: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Lean Manufacturing• Lean manufacturing is a production practice that

considers the expenditure of resources for any goal other than the creation of value for the end customer to be wasteful, and thus a target for elimination.

• Value = what the user is willing to pay for • Derived mostly from the Toyota Production System (hence

the term Toyotism is also prevalent) and identified as "Lean" only in the 1990s

• Economical motivations in adapting production to demand, high cost of land (storage), economies of scale to improve competitiveness

4

Page 5: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

5

無駄 (muda - unnecessary)

無理 (muri – work that can

be avoided) 斑 (mura – unevennes)

Page 6: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

TIMWOOD – types of 無駄• Transportation: moving products that is not actually required to

perform the processing

• Inventory: all components, work in progress, and finished product not being processed

• Motion: people or equipment moving or walking more than is required to perform the processing

• Waiting: waiting for the next production step

• Overproduction: production ahead of demand

• Over Processing: resulting from poor tool or product design creating activity

• Defects: the effort involved in inspecting for and fixing defects

6

Page 7: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Causes of Waste in Software Development

• Accurate estimation, effective planning, management and control, and deterministic delivery of quality software has always been subject of great debate

• Some of the causes include: – Immateriality: software is difficult to measure – Flexibility: “why don’t we add this nice feature?” – Complexity – New: maturity of engineering techniques

7

Page 8: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Software Development Complexity

8

Simple

Complex

Anarchy

Complicated

Technology

Requ

irem

ents

Far fromAgreement

Close toAgreement

Close toCertainty

Far fromCertainty

Source: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile Software Development with Scrum by Ken Schwaber and Mike Beedle.

Page 9: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Motivation for Agile (1/2)

• Traditional approaches to control complexity in software development rely on superimposing structure on development

• A natural trend from the Waterfall model that risks to end up in a bureaucratic structure

9

Page 10: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Motivation for Agile (2/2)

• Agile Software Development: A group of SW development methodologies based on similar principles: – A management process that encourages frequent inspection

and adaptation – Team work, self organization, accountability – Rapid delivery of high-quality software – A business approach that aligns development with customer

needs and company goals

10

Page 11: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

The Agile Manifesto

Process and toolsIndividuals and interactions

over

Following a planResponding to changeover

Source: www.agilemanifesto.org

Comprehensive documentationWorking software over

Contract negotiationCustomer collaboration over

11

Page 12: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Some Consequences• Customer satisfaction

• Working software delivered frequently

• Working software is the principal measure of progress

• Late changes in requirements = no problem

• Close, daily cooperation

• Face2Face & Co-location

• Projects built around individuals

• Attention to technical excellence and good design

• Simplicity

• Adaptation

12

Page 13: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

DSDM

Page 14: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Dynamic System Development Method

• It starts from the experience of RAD (Rapid Application Development)

• Key considerations: – people are the key to project success – change is inevitable – no software is perfect the first time it is released

• Standardized and supported by a consortium

14

Page 15: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

DSDM

15

Pre-Project

Feasibility

Foundations

Exploration

Engineering

IncrementalDeployment

Post-Project

Page 16: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

ExtremeProgramming

Page 17: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Extreme Programming

• XP takes proven practices to the extreme – If testing is good, let everybody test all the time – If code reviews are good, review all the time – If design is good, refactor all the time – If integration testing is good, integrate all the time – If simplicity is good, do the simplest thing that could possibly

work – If short iterations are good, make them really, really short

• XP is based on: – values – practices – process

17

Page 18: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

XP values

• Communication: open and honest • Feedback: honest and rapid (close the look quickly to

make feedback effective) • Simplicity: K.I.S.S. • Courage: take the right decisions, even if they are

difficult (if it can’t be done, say it!)

18

Page 19: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

XP Process

19

Development

Acceptance Test

Plan Releases

Spike

Software Release

Prototype

User Stories

Write User Stories

[done]

[not done]Iteration Planning

Iteration• Planning • Management • Design • Coding • Testing

Page 20: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

XP Planning

• User stories are written • Release planning creates the release schedule • Make frequent small releases • The project is divided into iterations • Iteration planning starts each iteration

20

Page 21: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

XP Management

• Give the team a dedicated open work space • Set a sustainable pace • A stand up meeting starts each day • The Project Velocity is measured • Move people around • Fix XP when it breaks

21

Page 22: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

XP Design

• Simplicity • Choose a system metaphor • Use CRC cards for design sessions • Create spike solutions to reduce risk • No functionality is added early • Refactor whenever and wherever possible

22

Page 23: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

XP Coding

• The customer is always available • Code must be written to agreed standards • Code the unit test first • All production code is pair programmed • Only one pair integrates code at a time • Integrate often • Set up a dedicated integration computer • Use collective ownership

23

Page 24: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

XP Testing

• All code must have unit tests • All code must pass all unit tests before it can be

released • When a bug is found tests are created • Acceptance tests are run often and the score is

published

24

Page 25: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Pair Programming

• Two programmers work on the same screen/keyboard (the Driver and the Navigator)

• Some considerations: – About 15% less output than 2 solo programmers – Continuous code review: better design, fewer defects – Confidence to add to or change the system – Discipline to always test and refactor – Teach each other how the system works (reduced staffing

risks) – Learn from partner’s knowledge and experience (enhances

technical skills)

25

Page 26: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Simple design

• Do the simplest thing that could possibly work • Passes all the tests • No duplicate code • States every intention • Fewest possible classes and methods

26

Page 27: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Refactoring

• Design becomes everybody’s daily business • Continuously improve quality of the code • Unit Tests and Pair Programming give courage • Consequences:

– Fast development speed – Code becomes easy to change

27

Page 28: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Why XP works

• Light-weight: discipline without bureaucracy • Under stress, people do what is easiest • All XP practices have short-term benefits as well as

long-term benefits • Development as a Conversation • The code is the documentation • XP is fun

28

Page 29: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

XP Criticism

• Too many changes = higher costs • “Scope creep” beyond what is agreed at the beginning

of the project • Requirements continuously updated • No “Big Design” upfront • Customer representative = single point of failure • Generates stress • Risk of non-technical representative dictating technical

choices

29

Page 30: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

Scrum

Page 31: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Scrum Approach

A team approach in which all players move together towards the same goal, setting the rhythm and adapating to change similar to what happens in rugby

31

Page 32: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Scrum Principles• Built-in instability: broad goals and general strategic directions

• Self-organizing project teams

• Overlapping development phases

• Multilearning, so that the team can learn both from internal and external sources and adapt quickly to changing conditions and environments.

• Subtle control: steer the project without interfering too much (e.g., selecting the right people for the job, creating an open environment, tolerating and anticipating mistakes).

• Organizational transfer of learning: by ensuring that the know-how acquired in a project is transferred and reused in other projects.

32

Page 33: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

33source

• Nielsen Media

• First American Real Estate

• BMC Software

• Ipswitch

• John Deere

• Lexis Nexis

• Intuit

• Sabre

• Salesforce.com

• Time Warner

• BBC

• Microsoft

• Yahoo

• Google

• Electronic Arts

• IBM

• Lockheed Martin

• Philips

• Turner Broadcasting

• Oce

• Siemens

• Nokia

• Capital One

Scrum has been used by:

Page 34: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

34source

• the Joint Strike Fighter

• Video game development

• FDA-approved, life-critical systems

• Satellite-control software

• Websites

• Handheld software

• Mobile phones

• Network switching applications

• ISV applications

• Some of the largest applications in use

• Commercial software

• In-house development

• Contract development

• Fixed-price projects

• Financial applications

• ISO 9001-certified applications

• Embedded systems

• 24x7 systems with 99.999% uptime requirements

Scrum has been used for:

Page 35: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

The Scrum Roles

Page 36: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Scrum Roles in One Slide

• Scrum Master – Facilitator, ensures Scrum is applied and the team can operate

and work – Shields team from external interferences

• Product owner – Defines the features of the product, decides priorities, accepts

or rejects work

• Team – Self organized, ideally full-time, small (5-9)

36

Page 37: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

The Scrum Master

• Represents management to the project • Responsible for enacting Scrum values and practices • Removes impediments • Ensure that the team is fully functional and productive • Enable close cooperation across all roles and functions • Shield the team from external interferences

37source

Page 38: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

Product owner

• Define the features of the product • Decide on release date and content • Be responsible for the profitability of the product (ROI) • Prioritize features according to market value • Adjust features and priority every iteration, as needed  • Accept or reject work results

38source

Page 39: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

The team

• Typically 5-9 people • Cross-functional:

– Programmers, testers, user experience designers, etc.

• Members should be full-time – May be exceptions (e.g., database administrator)

• Teams are self-organizing – Ideally, no titles but rarely a possibility

• Membership should change only between sprints

39source

Page 40: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Team of Teams

• For large projects teams of teams can be organized:

40

Team A Team B Team C

Team of Teams

Page 41: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

The Scrum Process

Page 42: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

The Scrum Process

42

Plan Iteration Iteration

Daily Scrum

Burndown Update

Retrospective

Product Backlog

Scrum Board Potentially Shippable Product

Write Backlog

[not done]

[done]

Page 43: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

The Product Backlog

Page 44: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

User Stories

• The three Cs: – Cards: traditionally on note

cards with annotations – Conversation: details

behind the story come out during conversation with the product owner

– Confirmation: details take the form acceptance tests confirm the story was understood right and coded correctly

As a Client of the Hotel I want to cancel a reservation

44source

As a <role> I want to achieve <goal> (so that <reason>)

Page 45: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

What Makes a Good Story Independent to simplify estimation

Negotiable stories are not contracts; leave space for negotiation

Valuable to the customer

Estimatable they are the basis for planning

Sized Appropriately break them into smaller ones, if necessary

Testable

45source

Page 46: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

Some Advantages

• Easy to comprehend and manage • Right size for planning (btw, similar approach to FP) • Encourage iterative development • They support opportunistic development (top-down

and bottom-up approaches) • Stories support participatory design • Verifiable

46source

Page 47: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

The Product backlog

• The Product Backlog is a list of user stories, possibly annotated with additional information, such as:

– Initiator – Priority – Cost – Owner – How to demo/test – …

47

Page 48: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

Sprint Planning

Page 49: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Sprints

• Scrum projects make progress in a series of “sprints” lasting between 2 and 4 weeks

• Emphasis on rhythm • Product backlog items are allocated and developed

during a sprint • Once items are allocated, during a sprint no changes

are possible • Plan sprint durations around how long you can

commit to keeping change out of the sprint

49

Page 50: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Sprint Planning• Goal: collaboratively decide what stories end up in the sprint • Activities involved

– Prioritize: decide what the sprint will focus on (short narrative) and select stories accordingly

– Break users stories into tasks – Estimate using planning poker (Delphi)

• Constraint: put all (and only) the stories the team can commit to

50

As a Client of the Hotel I want to cancel a reservation

Implement Reservation Class

Add view for cancelation

Page 51: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

Estimating

• Effort: – simpler for people accustomed to traditional software

development practices

• Story points: – abstract dimensionless measurements – provide a relative ordering of user stories – allows to compute velocity (how fast the team implements

story points) and, therefore, to the number of story points allocatable in a sprint

– defines an “algebra” of story points (10 story points require the same time as two 5 story points user stories)

51source

Page 52: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

© Mountain Goat Software, LLC®

Planning Poker® - an example

Estimator Round 1

Vadim 8

Susan 3

Ann 2Chris 5

Round 2

55

58

© Mountain Goat Software, LLC®

Estimate these

17

18

52http://store.mountaingoatsoftware.com/products/planning-poker-cards

Page 53: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

Running the Sprint and Tracking

Page 54: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Scrum Tracking

• Two main goals: – Keep track of the work (todo, doing, done, blocked) – Measure the team “velocity” (sprints of fixed length means

velocity is the important measure)

54

TODO DOING

Blocked/Next Iteration

DONE

US1US6

US156

US4

US10

US28

US26

US2US7

US17

US13

US111

US121

DayTASK

IDRESP. TASK Actual

Points 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

1 1 Migration of events data in production database 10 2 2 2 2 1 1 1 1 12 1 Table ordering through javascript/Ajax 5 5 0 0 0 0 0 0 0 03 1 Views with pending admissions 3 3 3 3 3 3 0 0 0 04 1 Views with pending renewals 3 3 3 3 3 3 0 0 0 05 1 Views with inactive members 3 3 3 3 3 3 0 0 0 06 1 Export data to CSV for merge printing 3 3 1 1 1 1 1 1 1 17 1 “Approximated” bit on dates related to events (only

the year counts)2 2 2 2 2 2 2 2 2 2

8 1 Management of interest bits 1 1 1 1 1 1 1 1 0 09 1 Management of remarks field 1 1 1 1 1 1 1 1 0 0

10 1 User Interface/Layout 2 2 0 0 0 0 0 011 1 Table paging 5 5 5 0 0 0 0 012 1 Fix problem with search and locale/ 3 3 3 3 3 3 3 313 1 Make search box standard on all tables 7.5 7.5 0 0 0 0 014 1 Application title 2 0 0 0 0 015 5 Authentication - with roles and multiple users 15 7 016 5 Distinguish actions from links 3 3 3

Remaining Days 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17Remaining Points 41 23 16 33.5 33.5 18 9 27 17 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0Ideal burndown 31 28.785714285714326.571428571428624.357142857142922.142857142857119.928571428571417.714285714285715.5 13.285714285714311.07142857142868.857142857142856.642857142857134.428571428571422.2142857142857-0.0000000000000106581410364015-2.21428571428573-4.42857142857144-6.64285714285715-8.85714285714287-11.0714285714286-13.2857142857143-15.5-17.7142857142857-19.9285714285714-22.1428571428572-24.3571428571429-26.5714285714286-28.7857142857143-31 -33.2142857142857-35.4285714285715-37.6428571428572Deviation -10 5.7857142857142810.5714285714286-9.14285714285715-11.35714285714291.928571428571428.71428571428571-11.5-3.714285714285721.071428571428568.857142857142856.642857142857134.428571428571422.2142857142857-0.0000000000000106581410364015-2.21428571428573-4.42857142857144-6.64285714285715-8.85714285714287-11.0714285714286-13.2857142857143-15.5-17.7142857142857-19.9285714285714-22.1428571428572-24.3571428571429-26.5714285714286-28.7857142857143-31 -33.2142857142857-35.4285714285715-37.6428571428572

Sprint DetailSprint Number 1Duration 14Allocated Points 31Ideal Average Point Burndown 2.21428571428571

Here put the remaining points

-10

-1

7

16

24

33

41

50

Day 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31-10

6

11

-9

2

9

-4

1

97

42

-0-2

-4-7

-9

3129

2724

2220

1816

1311

97

42

-0-2

-4-7

-9

41

23

16

33.5 33.5

18

9

27

17

10

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Remaining Points Ideal burndown Deviation

Sprint Detail

Page !1

Page 55: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Adapting/Computing Speed

• What if: – Speed is higher than expected: add stories – Speed is lower than expected: remove stories

• Speed is estimated according to historical data • Velocity tends to converge after a few sprints • Initial estimation is a guess or uses effort

55

Page 56: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

e⇥ciencyi =actual velocityiactual e�orti

est. velocity(i+1) = e⇥ciencyi ⇥ e�ort(i+1)

Adapting/Computing Speed• Between sprints, it is possible to accommodate for

changes in effort, by inserting effort in the estimation:

56

Page 57: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

Managing the Scrum Process

Page 58: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

The Daily Scrum

• A daily 15-minutes stand-up meeting for the whole team (including product owner)

• Everyone is invited (but only to listening) • Emphasizes commitment • Answer to three questions:

– What did you do yesterday? – What will you do today? – What is blocking your work? (impediments)

• Impediments become the responsibility of the Scrum Master

58

Page 59: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

The Sprint Review

• Each sprint ends with a demoable product (potentially shippable product): a piece of software, a mockup, a manual, …

• The Sprint Review has the goal of demoing the output of the sprint

• Everyone participates • Informal if focuses on demos (rather than slides)

59

Page 60: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

The Sprint Retrospective

• After every sprint the team takes a look at what is and is not working

• Not very long: 15–30 minutes • Whole team participates • One approach is start-stop-continue:

– What we need to start doing – What we should stop doing – What we should continue doing

60

Page 61: Agile Software Development - SPMBOOKspmbook.com/.../pdf/C07.03-05-SW-DevelopmentProcess-Agile.key.pdf · Stacey in Agile Software Development with Scrum by Ken Schwaber and ... Motivation

spm - ©2014 adolfo villafiorita - introduction to software project management

Software Development Practices

• According to Cohn SCRUM entails the adoption of some practices typical of Agile processes such as – Pair programming – Test-first approach – Automated testing and integration – Refactoring

• ... they are not necessary, but make SCRUM really effective

61