making software in a changing world · andrea delage 2018 the 12 principles behind agile - 1 our...

55
AGILE Making software in a changing world Andrea Delage 2018

Upload: others

Post on 21-Apr-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

AGILE Making software in a changing world

Andrea Delage 2018

Page 2: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Course Content

Why Agile?

What is Agile?

Common Agile practices and tools

Popular Agile methods and frameworks

The Scrum framework

Page 3: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

HOW DID IT ALL START?

A very brief history of project management

Page 4: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Waterfall Model

Requirements

Design

Deployment

or Predictive Model

Implementation

Verification

Page 5: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

V-model

Requirements

analysis

High level

design

Detailed

design

Implementation

Unit testing

Integration

testing

System testing

Project completion

Abst

ract

ion

Page 6: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Spiral model

Determine objectives

Identify and resolve risks

Plan next iteration

Develop and test

Page 7: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Predictive versus adaptive

Predictive management

Adaptive management

Page 8: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Why did it start predictive?

Page 9: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

1991

Between 1990 and 2000

Dynamic Systems

Development

Method (DSDM)

Crystal Methods family

Feature-Driven

Development

(FDD) Rapid Application

Development

(RAD)

Extreme

Programming (XP) Scrum

Unified Software Development Process

Adaptive Software

Development

(ASD) Continuous

Integration

Page 10: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

The Agile Manifesto

• Individuals and interactions > processes and tools

• Working software > comprehensive documentation

• Customer collaboration > contract negotiation

• Responding to change > following a plan

“That is, while there is value in the items on

the right, we value the items on the left more.”

Page 11: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

The 12 principles behind Agile - 1

Our highest priority is to satisfy the customer through early and continuous

delivery of valuable software.

Welcome changing requirements, even late in development. Agile processes

harness change for the customer's competitive advantage.

Deliver working software frequently, from a couple of weeks to a couple of months,

with a preference to the shorter timescale.

Business people and developers must work together daily throughout the project.

Build projects around motivated individuals. Give them the environment and

support they need, and trust them to get the job done.

The most efficient and effective method of conveying information to and within a

development team is face-to-face conversation.

Page 12: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

The 12 principles behind Agile - 2

Working software is the primary measure of progress.

Agile processes promote sustainable development. The sponsors, developers, and

users should be able to maintain a constant pace indefinitely.

Continuous attention to technical excellence and good design enhances agility.

Simplicity - the art of maximizing the amount of work not done - is essential.

The best architectures, requirements, and designs emerge from self-organizing

teams.

At regular intervals, the team reflects on how to become more effective, then tunes

and adjusts its behavior accordingly.

Page 13: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Agile Principles (Summary) - 1

The product:

Highest priority: satisfy the customer

Early and frequent delivery

Working software as primary measure of progress

Changing requirements are welcome.

Simplicity

Page 14: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Agile Principles (Summary) - 2

The team:

Collaboration

Face-to-face conversation

Self-organizing teams

Regular reflections and improvement

Trust

Supportive environment

Page 15: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Waterfall vs Agile – Client perspective

Requirements Design Deploy

ment Implementation Verification

Need

? ? ? ? ? ? ? ? ? ? ?

Need

Page 16: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

AGILE TOOLS AND PRACTICES

Page 17: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Common Agile practices and tools

User Stories

Story Points

Velocity

Planning Poker (or Planning game)

Story Map

Product Backlog

Page 18: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

What is a user story?

"A user story is a promise for a conversation.“ - Alistair Cockburn

A short, simple, informal description of a system’s

feature.

Often written on an index card

Different templates exist

Page 19: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

User Stories

I want to

so that

As a

Page 20: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

User Story Example

I want to see the feeding

time of the animals

so that I can plan my day

at the zoo

As a zoo visitor

10:00 Wolves

11:30 Lions

Page 21: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

User Stories

A User Story IS NOT:

a requirements specification

A User Story IS:

a starting point for a conversation, written in the client’s language

A User Story should:

ideally be made of words and images

Page 22: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

The 3 C’s

Confirmation

Described by Ron Jeffries in “Essential XP: Card, Conversation, Confirmation”

Conversation Card

=> User Story => Discussing the

details

=> Acceptance Test

Page 23: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

User Story card – Additional information

Corners can be used for:

Effort estimates

Actual effort

Importance

Risk estimate

The 3Cs technique proposes to put the conversation

below the story.

Sketches

Back of the card:

Acceptance test,

Or list of conditions of satisfaction

Colors for categories (optional)

Page 24: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Acceptance Test

What shows that the Story is done?

From the client’s / user’s point of view

Example:

”When I choose a month, the system shows me a list of

my friends who have their birthday in that month.”

Put on the back of the index card (User Story)

Used to check if the Story is effectively done.

Page 25: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Conditions of satisfaction - Example

User Story:

“As a buyer, I want to remove items from my shopping cart so

that I will buy only the things I really want.”

List of conditions of satisfaction:

The buyer can choose the item to remove from his cart.

The item will be no longer in his shopping cart.

The total sum of the buyer’s shopping cart is updated.

The available quantity of the item in the shop is

increased.

Page 26: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

INVEST in User Stories

A good user story should be:

The INVEST mnemonic was invented and published originally by Bill Wake (2003).

ndependent

egotiable

aluable

stimable

mall

estable

Page 27: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Story Gathering Workshop

Page 28: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Bigger than User Stories

Called “Epic”

by Mike Cohn

(and others)

Called “Activity”

by Jeff Patton

Stories (far) too big for an iteration

= very high-level stories

Page 30: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Effort estimation process

Who? The Development Team

Estimation styles:

Free form

Card sorting

Planning Poker

Based on:

Gut feeling

Yesterday’s weather

Using Story points

Page 31: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Story Points

Agile unit to estimate effort

Simple

Estimate must include everything involved in

getting the item all the way to done.

What matters are the relative values.

Team chooses the scale:

Simple number range like 1 to 5, or1to 10 or 0.5 to 100, or …

Fibonacci sequence: 1, 2, 3, 5, 8, 13, 21, …

Alternative: T-Shirt sizes

Page 32: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Estimating with index cards

smallest huge

As a role, I want do stuff so that I get results.

As a role, I want do stuff so that I get results.

As a role, I want do stuff so that I get results.

As a role, I want do stuff so that I get results.

As a role, I want do stuff so that I get results.

As a role, I want do stuff so that I get results.

As a role, I want do stuff so that I get results.

As a role, I want do stuff so that I get results.

Page 33: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Planning Poker™

Based on Delphi estimation method

Fixed set of number cards for each participant

Goal: Convergence to a (hopefully) realistic estimation

Page 34: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Effort estimation with T-Shirt sizes - Example

Page 35: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Any questions?

Page 36: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Agile-Tools

There are a lot of tools for Agile projects:

Jira, Trello, Google Spreadsheet, Excel, Framaboard, Zoho,

VivifyScrum, LeanKit, …

But the by far most successful are:

GASP

Page 37: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

AGILE METHODS,

PROCESSES, AND

FRAMEWORKS

Page 38: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Agile methods, processes, and frameworks

Lean

Kanban

Extreme Programming

Scrum

Crystal methods

… Not part of this course

Page 39: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

LEAN

Page 40: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Lean

Originally “Lean Manufacturing”

From Toyota productions

Now:

Lean startup

Lean product development

Lean software development

Lean construction

Lean services

….

Page 41: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Lean philosohpy

Everything that does not add

value for the customer is waste.

Page 42: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Lean principles

Eliminate waste

Amplify learning (from feedback)

Decide as late as possible

Deliver as fast as possible

Empower the team

Build integrity in

See the whole

Page 43: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Lean: Waste in software development

Building the wrong feature or product

Waiting

Multi-tasking

Ineffective communication

Partially done coding eventually abandoned

Features not often used by customers

Defects and lower quality

Knowledge loss

Page 44: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

KANBAN

Page 45: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Kanban core principles

Limit work in progress

Focus on flow

Improve continuously

Visualize work

Page 46: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Kanban Board

Image: © Rosenfeld Media (https://www.flickr.com/photos/rosenfeldmedia/35473617030)

Page 47: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

XP Extreme Programming

Page 48: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Extreme Programming (XP)

Created in 1996 by Kent Beck

First applied at Chrysler

First published in 1999 (1)

Modified version (XP2) published in 2004

Defines values and practices

Takes programming to the “extreme”

1 "Extreme Programming Explained: Embrace Change", Addison -Wesley

Page 49: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

XP Values

Respect

Communication

Courage

Feedback

Simplicity

Page 50: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

XP practices

Sit together

Whole team

Informative workspace

Energized work

Pair programming

Stories

Weekly cycle

Quarterly cycle

Ten-minute build

Continuous integration

Test-first programming

Incremental design

Open workspace

Pair-programming

On-site customer

40-hour weeks, avoid over-time

Collective ownership

Planning game

Refactoring

Continuous integration

Rules can be changed

Unit tests by programmers,

functional tests by customers

Small releases

Simple design

XP

1 X

P2

Page 51: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Test-First Programming

Basic principle: Create the test before the code

1. Write a test that should pass when task is finished

2. Run the test to see it fail

3. Write code until test passes

Do this for each functionality you will implement.

TDD = Test Driven Development

Page 52: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Pair programming

Image: By Lisamarie Babik - Ted & IanUploaded by Edward, CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=9546406

Page 53: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Pair programming - Benefits

Collective code ownership

Less bugs

Better integration of new collaborators

Less distraction

Less interruption

Less slacking

Learning from one another

Page 54: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

Planning game

(once per iteration, typically once per week)

Part 1: Release planning (developers + customer + business people)

high-value requirements are written on user story cards

Developers commit themselves to the included functionality and the next release

date

The plan is adjusted as needed / requested

Part II: Iteration planning (developers)

Translate requirements into tasks and write them on task cards

Assign tasks to developers and estimate time

Perform tasks and match results with the user story

Page 55: Making software in a changing world · Andrea Delage 2018 The 12 principles behind Agile - 1 Our highest priority is to satisfy the customer through early and continuous delivery

Andrea Delage 2018

When not to use XP

Too big teams

Unbelieving customers and organizations

it cannot work in a culture of continuous extensive overtime

Customers who insist on a thick specification document

Change-hampering technology or constraints

e.g. replacing a database that must be compatible with 143 different

applications

e.g. technology that makes a build take 12 hours

e.g. insufficient opportunity for immediate communication