agile fundamentals

29
© Lamri Ltd 2013 © Lamri Ltd 2013 Agile Fundamentals Graham Dick ([email protected] ) +44 1748 821824

Upload: graham-dick

Post on 29-Nov-2014

113 views

Category:

Business


0 download

DESCRIPTION

A short talk that explains a little of what Agile is; where it originated and how it works. This talk is applicable whatever method you use - scrum, XP, DSDM etc. Concludes by introducing ICAgile (the International Consortium of Agile).

TRANSCRIPT

Page 1: Agile Fundamentals

© Lamri Ltd 2013 © Lamri Ltd 2013

Agile Fundamentals Graham Dick ([email protected]) +44 1748 821824

Page 2: Agile Fundamentals

© Lamri Ltd 2013

Agenda

•  Problem Agile is addressing •  What is Agile? •  Some Agile Ingredients •  Doing Agile

Page 3: Agile Fundamentals

© Lamri Ltd 2013

Problems with Traditional Software Development

Traditional Approach •  Users find it hard to specify in

sufficient detail –  “Don’t know what it should do

until we see it” •  Late discovery of flaws •  Build and release issues •  Modules failing to integrate •  Can’t deal with changing

requirements •  Often results in major

unplanned work

Despite this •  Rational engineering approach

assumes –  Well defined problem –  Results that can be predicted

•  Results in a Dev process with –  Command and control focus –  ‘grand design’ style –  Measures progress by

assessing intermediate work products

–  Delays confirmation that critical risks are mitigated

–  Customer involvement tends to focus on inception and acceptance test stages

Page 4: Agile Fundamentals

© Lamri Ltd 2013

Don’t fight it – roll with it Key Attributes of Agile

•  Develop iteratively •  Minimise up-front work •  Continuously inspect and adapt •  Develop requirements at the point of consumption •  Continuously verify quality •  Embrace change •  Self managing team

Adopt an approach that works with this imperfect world

This is Agile

Page 5: Agile Fundamentals

© Lamri Ltd 2013

What is Agile?

Page 6: Agile Fundamentals

© Lamri Ltd 2013

The Agile Manifesto

Manifesto for Agile Software Development

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 we value the items on the right, we value

the items on the left more

Page 7: Agile Fundamentals

© Lamri Ltd 2013

Several Principles underpin the Agile Manifesto •  Business and developers

collaborate daily •  Strive for simplicity –

maximise amount of work not done

•  Face to face conversation is the most effective method of communicating –  Welcome changing

requirements

•  Build project round motivated individuals

•  Highest priority is customer satisfaction via early and continuous delivery –  Frequent working software

is primary measure of progress

•  Provide team environment needed

•  Regular reflection and adaptation

Page 8: Agile Fundamentals

© Lamri Ltd 2013

Agile is a mindset

Established through 4 values

[that in software world is]

Grounded by 12 principles, &

Manifested through many many different practices

Scrum

eXtreme Programming

Your own Agile process

Source: Ahmed Sidky, used with permission

Page 9: Agile Fundamentals

© Lamri Ltd 2013

Doing Agile Learning the practices and applying them without know the mindset and principles to know when to tailor and how to select the appropriate practices

Being Agile Internalizing the Mindset, values, and principles then applying the right practices and tailoring them to different situations as they arise

Agile as a Process and Practices

Agile as a Mindset and Culture

Source: Ahmed Sidky, used with permission

Page 10: Agile Fundamentals

© Lamri Ltd 2013 10

Evolution of Agile

XP

Scrum

Toyota way

Agile As a way of working

RUP

Lean/ Kanban

Agile For software

RAD

Waterfall

Six Sigma

An evolution in the making over the last 40 years

better faster cheaper

Prince 2

Page 11: Agile Fundamentals

© Lamri Ltd 2013

Deliver & Deploy

Build and Test

Design

UAT

Iteration Kick-off

Iteration Showcase

Proceed  to  next  itera-on  

Working Solution

Updated Documentation

EXECUTE   WRAP  UP  

Backlog

Release Plan

Project Charter

Iteration Planning

Story Elaboration

Retrospective Test Cases

Yes  

No  

For  next  itera-on  

Itera-on  Zero  

Setup Deliver Phase

PREPARE  

Deploy  to  Produc-on  

Done in short iterations

Production Handover

CLOSE

Done?

Specify test criteria Design

Build and test Continuous integration Test plan / scenarios

Page 12: Agile Fundamentals

© Lamri Ltd 2013 12

Key Agile practices

Project/Team Practices

Technical Practices

Release Planning

Co-Location

Relative Estimation

Burn Up Progress

Iteration Planning

Showcase

Definition Of Done

Stories

Project Wall Success Sliders

Retrospective

Stand Up Pair Programming

Test-Driven Development

Continuous Integration Refactoring

Collective Code Ownership

Technical Spike

Incremental Design

Automated Deployment

Page 13: Agile Fundamentals

© Lamri Ltd 2013 13

The Agile team

Core Team

Extended Team

Agile Project Management

Support

Other Key Stakeholders

Architecture

Iteration Manager Tech

Lead Infra-structure

Production/ Engineering

Subject Matter

Expertise Testing

Product Ownership

Program Management

Project Sponsorship

Focuses on the delivery of the work, the mechanics of the iteration and measurement of progress

Focuses on ensuring the project team has necessary resources and the work is aligned to project outcomes

Core team members are fully engaged with the project and work collaboratively to deliver the planned work using collective their skills

Extended team members provide specialist skills or guidance and are involved on an as-needs basis

Coordinate the delivery of multiple projects

Core team with a diverse set of skills (cross-functional)

Business SME’s should work closely with delivery teams

Analysis

Empowered to provide clarity of product direction

Page 14: Agile Fundamentals

© Lamri Ltd 2013

Some Agile Ingredients

Page 15: Agile Fundamentals

© Lamri Ltd 2013

Stories •  Stories describes the functionality that will

be delivered by the project. •  A story is a promise to have a conversation

later – deferring the detail

As a [role]

I want to [do something]

So I can [achieve outcome]

As a frequent flyer

I want to be able to see my points balance

So I can decide how to pay for my ticket

15

Page 16: Agile Fundamentals

© Lamri Ltd 2013

The three ‘C’s of a story

•  Card—written description •  Conversation—between team and customer

representatives •  Confirmation—criteria to determine when

implementation complete

16

Page 17: Agile Fundamentals

© Lamri Ltd 2013

What is done?

•  DONE at many levels: –  For the Product –  For the Current Release –  For each Iteration –  For every Story

•  Each iteration must produce a PRODUCTION READY increment of the product.

•  Whatever work is needed to get to DONE is delivered in the iteration

•  This needs to be clear to all involved •  Needs to be understood before we can estimate

17

Page 18: Agile Fundamentals

© Lamri Ltd 2013

Estimating stories

•  Estimate using Story Points •  Estimation must

–  Use a collaborative, iterative approach to –  Create a relative measure for how large a

story is –  Compared to the other stories in the

project –  All work needed to get to Done

•  Story points are a relative measure of story size / complexity, compared to other stories

18

Page 19: Agile Fundamentals

© Lamri Ltd 2013

Release planning

•  Once you have created a number of stories, you will prioritise and estimate them.

•  The estimates will allow you to review whether the project is worth the cost.

•  The prioritised stories will allow you to create a release plan for the project

Iteration 1 Iteration 2 Iteration 3

points points points

19

Page 20: Agile Fundamentals

© Lamri Ltd 2013

Deliver & Deploy

Build and Test

Design

UAT

Iteration Kick-off

Iteration Showcase

Proceed  to  next  itera-on  

Working Solution

Updated Documentation

EXECUTE   WRAP  UP  

Backlog

Release Plan

Project Charter

Iteration Planning

Story Elaboration

Retrospective Test Cases

Yes  

No  

For  next  itera-on  

Itera-on  Zero  

Setup Deliver Phase

PREPARE  

Deploy  to  Produc-on  

Done in short iterations

Production Handover

CLOSE

Done?

Specify test criteria Design

Build and test Continuous integration Test plan / scenarios

Page 21: Agile Fundamentals

© Lamri Ltd 2013

As a xxx I want yyy so that zzz Story 1 Story 2 Story 3 Story 4 Story 5 Story 6 Story 7 Story 8 Story 9

Epic 1

Epic 2

Epic 3

Backlog

Task 1 Task 2 Task 3 Task 4 Task 5 Task 6 Task 7 Task 8 Task 9 Task 10

Iteration Tasks

Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 Day 9 Day 10

Iteration Planning

Task Work

Task Work

Task Work

Task Work

Task Work

Task Work

Task Work

Task Work

Wrap-up

Daily Standup

Daily Standup

Daily Standup

Daily Standup

Daily Standup

Daily Standup

Daily Standup

Daily Standup

Daily Standup

Task Work

Task Work

Task Work

Task Work

Task Work

Task Work

Task Work

Task Work

Present/ Retrospect

Inside an iteration

Story 3 Iteration Planning

Story 1 Story 2

Iteration Backlog

Uncompleted Story 3

Page 22: Agile Fundamentals

© Lamri Ltd 2013

The TDD mantra 5.  Write the

implementation

6.  Run the test

Write just enough code to make test pass

Focus on simplicity

Refactor Cycle time of minutes not

hours

7.  Improve design quality

Not always needed

Rule of Threes (Uncle Bob’s 3 laws of TDD)

Behaviour preserving

1.  Write the test

2.  Compile the test

3.  Make the test compile

4.  Run the test

Tests shape the design

Page 23: Agile Fundamentals

© Lamri Ltd 2013

CI flowchart A software-based automated solution to

mitigate the risk of integrating code

Wait a bit

Get the latest

version of the code

Build the code

Has the code been

changed?

Test the code

Yes

No

Have 100% of

tests passed?

Yes No

Publish the results

START

Page 24: Agile Fundamentals

© Lamri Ltd 2013

Doing Agile

Page 25: Agile Fundamentals

© Lamri Ltd 2013 25

Agile process

Concept(Identify &

validate an Idea)

Initiate(Clarify, estimate

& plan)

Deliver(Iteratively build

& deploy)

Close(Ready for new

adventure)

Bad idea – kill the project

New problem oropportunity

Clear on the idea –

investigatefurther

Bad idea – kill the project

Changed our mind-

revisit goals

Clear on what to do

Doneenough

Need to stopand think

Page 26: Agile Fundamentals

© Lamri Ltd 2013

Governance framework

~10%*

~80%*

~5%*

INITIATE DELIVER & DEPLOY

PROJECT

Release 1

Release 2 Release n

~5%*

CONCEPT

Governance gate checks and approvals

An Agile project process helps teams work in a consistent way and provides governance checkpoints for managing the portfolio of project work.

CLOSE

* Percentages are indicative of the maximum amount of effort which should be allocated outside of Deliver & Deploy activities

Page 27: Agile Fundamentals

© Lamri Ltd 2013

ICAgile Accredited Training

Page 28: Agile Fundamentals

© Lamri Ltd 2013 © Lamri Ltd 2013

Lamri Ltd 7 Mowbray House Olympic Way Richmond North Yorkshire DL10 4FB T: +44 1748 821824

Page 29: Agile Fundamentals

© Lamri Ltd 2013

Agile Effect

Risk

Time

Business Value

Time

Visibility

Time

Adaptability

Time