Agility Multi-Workshop

L E A N

A G I L E

Venerdì 13 Dicembre 2013 SIAM V. Santa Marta 18 (MI)

K A N B A N

8.30 – 17.30

The Professional Development Team

Introduction to agile & scrum framework Milano, December 13th 2013

Agile introduction Scrum process Scrum roles Estimation User stories Room exercise

Agile introduction

What does Agile means ?

What does Agile means ?

Agile Manifesto

www.agilemanifesto.org We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. By Agile alliance, Snowbird, Utah on February 2001 http://www.agilemanifesto.org

12 Principles Behind the Manifesto • 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. • 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.

7

http://www.agilemanifesto.org/principles.html

From Emiliano Soldi slideshare

The core ideas in Agile Adaptive: teams and the process flexible in presence of “rapid-fire change”.

Iterative and incremental: Agile Development produces working products in stages – a growing set of “completed and working software”.

People-oriented: the team organization and processes will support good people, who are the most important ingredient to project success.

Agile – Many methods Iterative & Incremental Adaptive to change Customer value focus People Oriented Self--organized team Self Collaborative Continuous Improving …

Scrum XP

Crystal

Kanban TDD and others …

TDD = Test Driven Development

XP = Extreme Programming

Agile introduction Scrum process Scrum roles Estimation User stories Room exercise

What’s scrum

What is Scrum? Scrum is an Agile development framework

Scrum Assumes

Defines simple roles, clear responsibilities

Expects teams to be self managing, selfself-disciplined, selfselfaware continuously improving

Predicting in advance is not possible - markets, customers, will change their minds constantly Therefore, small incremental/iterative development with inspect--adapt loops provides the best chance for market inspect success.

Empirical process model C I PROCESS

O

What is Scrum?

Scrum is

Simple But ……

What is Scrum?

Simple does

Not Mean Easy

What is Scrum? Scrum 3 pillars Inspection:: The various aspects of the process must Inspection be inspected frequently enough so that unacceptable variances in the process can be detected

Adaptation : If one or more aspects of the process are outside acceptable limits, the process must be adjusted as quickly as possible.

Transparency : ensures that aspects of the process that affect the outcome must be visible to those managing the outcomes.

What is Scrum? Scrum 5 values It provides people all the authority they need to meet their commitment

Commitment Focus

put all your efforts and skill on doing what you have committed. Do not worry about anything else!

Openness

scrum keeps everything about a project visible to everyone

Respect

it is important to respect the different people who make up a team

Courage

to commit, to act, to be open and to expect respect!

The values helps us to understand “why we do what we do”.

What is Scrum? Iterations

Scrum Master

Events Daily Stand-up

Daily Scrum 24 hours Sprint backlog

Sprint Planning

Sprint 2-4 weeks

Team Release 2-6 months

Product Owner

Product backlog

Sprint Review Sprint Retrospective

Increment

Scrum roles • The Team • Builds the product that the Product Owner asks. • Cross-functional: all expertise to deliver potentially shippable product each - Product Owner (PO) Sprint. - Responsible for maximizing ROI. • Self-organizing, with a very high - Identifies product features, prioritizes, degree of autonomy and accountability continually re-prioritizes, refines the • 7 ± 2 people; long-lived; list.

• ScrumMaster • Ensure Scrum Practices and Principles. • Not the manager but the coach of the team • Serves the Team, protects them from outside interference, removes impediments. He is a Servant Leader. • Educates, guides the Product Owner and the Team in skillful use of Scrum.

http://www.youtube.com/watch?v=P6v-I9VvTq4&feature=youtu.be 19

A better way to communicate requirements user

user

Marketing requirement

PBIs Product backlog item Priority Value estimate Effort estimate as a user, I want to read the status in 2 as a user, I want to print the result of 3 as a user, I want to record the previous 1 as a user, I want to record the next it 8 as a user, I want to identify the new e 8 as a user, I want to go back on the l 4 as a user, I want to reduce the conse 4 as a user, I want to reuse the previou 6 as a user, I want to remove the item 12 as a user, I want to change the nam 7 as an administrator, I want to collect 3 as an administrator, I want to print a 1 as an administrator, I want to analys 8 as an administrator, I want to raise a 8 as company owner, I want to compu 4 as company owner, I want to read th 6 as company owner, I want to move t 12 as company owner, I want to review 7

Product requirement

Technical requirement

Software requirement

developer

developer

20

Product Backlog High Priority High Precision Each Iteration Implements the highest priority requirements

Requirements may be reprioritized at any time

Each new requirement is prioritized and added to the stack Requirements may be removed at any time

Low Priority Low precision

Backlog refinement is a continuous activities across the sprints

Release Planning •When? Once at the beginning of Scrum adoption or at the start of the product/release •Who? Product Owner, the Team, and any subject matter experts who can help us understand the requirements •What? Create, update, and estimate items for the Product Backlog - Product Backlog Items are estimated and prioritized - Product Backlog Items are selected to worked on in the first Sprint

Release planning = the process of building and maintaining the Product Backlog and Release Burndown - Owned by the Product Owner and updated every Sprint “The release plan establishes the goal of the release, the highest priority Product Backlog, the major risks, and the overall features and functionality that the release will contain. It also establishes a probable delivery date and cost that should hold if nothing changes. The organization can then inspect progress and make changes to this release plan on a Sprint-by-Sprint basis.” from Scrum Guide

Sprint overview Review •2 weeks

•Sprint Planning daily standup meeting

Retrospective

Periodical Backlog Refinement

23

Agile introduction Scrum process Scrum roles Estimation User stories Room exercise

Estimation

Estimation The more effort we put into something, the better the result ? An estimate is still an estimate

According to the experience it does not seem so … Beyond a certain point, additional estimation effort yields very little value

No matter how effort you put an estimate still remains an estimate … From “Agile estimating and Planning” by Mike Cohn 25

Estimation uncertainity cone

Predictable

Uncertain

User story

Epics

Unpredictable

Vision

Goals

Focus

Iteration 2/3 weeks

Release

3 months

1 year

> 1 year Time

Agile planning shifts the emphasis from the plan to the planning Not to change the plan just for the sake of changing, but we want To change because change means we’ve learned something to avoid a mistake

Estimation

It’s difficult to estimate the volumes But it’s easier to estimate their relative sizes

How many coins in the piles ? 3 2

27

1

1

1.5

0.5

Estimation (∑Sizei * timeelementary size ) * team size = Total effort The estimation in size completely separates the estimation of effort from the estimation

of duration Point = f(size, complexity, risks) Estimate size

Guesstimate !

Derive duration

28

Schedule

Estimation

Estimation Ideal burn UP

Story Point

Total Story point = ~240

240

Velocity = ~40 points/ Sprints

220 200 180 160

Sprints to get it Done

140

= 240/40 = 6

120 100

Sprint planned = 7 =

80 60

6 Dev sprints + 1 buffer sprint

40 20

1 Project start

2

3

Actual burn UP

4

5

6 Dev

Release

Complete

Date

Sprints

Estimation [story points] initial estimate value

|line segment slope|= sprint velocity

1

2

3

4

5

6

31

7

8

9

10

iterations

Estimation • The Planning Poker session is a form of Delphi procedure - Studies show that this process works pretty well because quite intuitive. - The estimation process is a public vote. All participants choose a card and put it face down – everyone turns over their cards at the same time - This avoids having some of the early voters influence the votes of other participants - If the cards don’t match, each person gets a chance to briefly defend their choice – then revote

Created by James Grenning and popularized by Mike Cohn

- Pseudo Fibonacci sequence limits the number of choices, avoids false sense of accuracy for high estimates and encourages user stories further splitting

Agile introduction Scrum process Scrum roles Estimation User stories Room exercise

User stories

User stories Designed for modern approach : less formal short iterations

User stories were developed by Kent Beck and Ron Jeffries as part of the Extreme Programming process in the mid-1990s 34

User stories & the 3Cs CARD Stories are traditionally written on note cards

Cards may be annotated with estimates, notes, etc

Conversation

CONFIRMATION

CONVERSATION with the Product Owner adding all the necessary details to the story

Product Owner’s conditions of satisfaction Acceptance criteria to confirm the story was implemented correctly and completed 35

User stories User story = a description of desired functionality told from the perspective of the user or customer ≅ A peculiar scenario of a use case/feature Format of a user story As a I want [to] (So that )

Not that this is not the only possible user story format and Scrum does not mandate any particular approach to Requirements!

• The As a… format was created to solve a particular problem in context, at Connextra (in England, 2000, source Craig Larman) • ‘Spike’ is a special user story used to drive out risk and uncertainty - The team may not have knowledge of a new domain or technology - The story may contain technical/functional risks to be investigated

User stories

Card for "Job search website"

As a user, I want view information about each job is matched by a search FRONT

BACK

38

Conversation for "Job search website” Comments from conversation with Product Owner (details about the user story) + Management information (priority, business value, effort)

As a user, I want view information about each job is matched by a user get a full or partial view according to search •theShould permission (level of subscription) ? FRONT

• What should be shown in every views ? • PLM says: description, salary and location should be basic to show • ….

39

Confirmation for "Job search website “ As a user, I want view information about each job is matched by a search



Try it with an empty job description Try it with a really long job description Try it with a missing salary Try it with …

40

Reading Recommendations For Managers & Practitioner

- For Agile and Lean Coaching

Reading Recommendations For Organizational Transformation & Lean thinking

Agile / scrum community around the world and particularly .. • Mike Cohn

44