why (or when) agile fails creating high performance software delivery teams

24
Why (or When) Agile Fails Creating high performance software delivery teams

Upload: jemima-harper

Post on 14-Jan-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Why (or When) Agile Fails Creating high performance software delivery teams

Why (or When) Agile Fails

Creating high performance software delivery teams

Page 2: Why (or When) Agile Fails Creating high performance software delivery teams

2

Who are we?

SDLC Process Improvement Company specializing in agile

– Consulting

– Training

– Coaching

Toronto based organization working anywhere in North America

Roots in Java development with enterprise customers

Deeply technical (java) – Application Architect on WebSphere

Work in a variety of verticals including finance, government technology and telco

Page 3: Why (or When) Agile Fails Creating high performance software delivery teams

What is Agile and Scrum in software development?

Fundamentally different from the traditional project management approach

Agile is the generic term for the methodology

Scrum is a prescriptive implementation of Agile

3

Page 4: Why (or When) Agile Fails Creating high performance software delivery teams

What is Agile and Scrum in software development?

4

Emphasise teamwork, frequent delivery of working software, customer engagement

Respond quickly to change

Page 5: Why (or When) Agile Fails Creating high performance software delivery teams

What are the fundamental differences between traditional project management and Agile?

Project is chunked into short iterations (i.e. 2 weeks)

Each iteration delivers business value

Absorbs change throughout

The traditional phases of software development projects occur within each iteration

5

Page 6: Why (or When) Agile Fails Creating high performance software delivery teams

What are the fundamental differences between traditional project management and agile?

Project teams are self organized, cross functional, work collaboratively and meet often

Collocation of project team is encouraged

The project starts when we have just enough detail

6

Page 7: Why (or When) Agile Fails Creating high performance software delivery teams

7

What are the fundamental differences between traditional project management and agile?

Define

Design

Develop

Validate

Deliver

Time

Define Define Define Define Define

Design Design Design Design Design

Develop Develop Develop Develop Develop

Validate Validate Validate Validate Validate

Deliver Deliver Deliver Deliver Deliver

Page 8: Why (or When) Agile Fails Creating high performance software delivery teams

Think of it this way…

Agile software development is like shooting a movie

8

Page 9: Why (or When) Agile Fails Creating high performance software delivery teams

What are the fundamental differences between traditional project management and agile?

What we’ve learned from previous customer assessments:

90% of small software projects are delivered on time and budget

60-70% of medium software projects are delivered on time and budget

50% of large software projects are delivered on time and budget

An Agile approach creates a series of small projects

9

Page 10: Why (or When) Agile Fails Creating high performance software delivery teams

Is Agile any better?

10

Surveys & Results• October 2011 DDJ Agile survey• 2009 VersionOne survey• June 2010 DDJ Agile Newsletter

Observations•Rod•Doug

Page 11: Why (or When) Agile Fails Creating high performance software delivery teams

What are the problems with current software development projects?

11

Page 12: Why (or When) Agile Fails Creating high performance software delivery teams

What are the problems with current software development projects?

Cost

12

Page 13: Why (or When) Agile Fails Creating high performance software delivery teams

What are the problems with current software development projects?

Late delivery

13

Page 14: Why (or When) Agile Fails Creating high performance software delivery teams

What are the problems with current software development projects?

Inferior quality

14

Page 15: Why (or When) Agile Fails Creating high performance software delivery teams

What are the problems with current software development projects?

Follow-on projects

Inadequate ROI

Mistrust between business and IT

15

Page 16: Why (or When) Agile Fails Creating high performance software delivery teams

Why do these problems occur?

1. We try to predict the future

2. We try to replace human interaction with documentation

3. We assume requirements are defined and won’t change

16

Page 17: Why (or When) Agile Fails Creating high performance software delivery teams

Debunking agile myths

No planning

No requirements or design

No testing

It only works for software projects

Too much re-work or throw away code

It won’t work “here”

17

Page 18: Why (or When) Agile Fails Creating high performance software delivery teams

Agile is not:

18

A rigid, defined process

Applied as an all or nothing approach

Just about faster delivery

A silver bullet

Page 19: Why (or When) Agile Fails Creating high performance software delivery teams

Ultimately, all project teams have to:

Make decisions based on available information

Accept they are using imperfect information and things will change

Review decisions and adjust frequently

Frequently inspect and adapt to improve processes

Address and mitigate risk early

19

Page 20: Why (or When) Agile Fails Creating high performance software delivery teams

20

Page 21: Why (or When) Agile Fails Creating high performance software delivery teams

Principles Behind The Manifesto

Our highest priority is to satisfy the customerthrough early and continuous deliveryof 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.

21

Page 22: Why (or When) Agile Fails Creating high performance software delivery teams

Principles Behind The Manifesto (cont’d)

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.

22

Page 23: Why (or When) Agile Fails Creating high performance software delivery teams

Principles Behind The Manifesto (cont’d)

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.

23

Page 24: Why (or When) Agile Fails Creating high performance software delivery teams

24