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

Post on 14-Jan-2016

218 views 0 download

Tags:

Transcript of Why (or When) Agile Fails Creating high performance software delivery teams.

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

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

What is Agile and Scrum in software development?

4

Emphasise teamwork, frequent delivery of working software, customer engagement

Respond quickly to change

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

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

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

Think of it this way…

Agile software development is like shooting a movie

8

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

Is Agile any better?

10

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

Observations•Rod•Doug

What are the problems with current software development projects?

11

What are the problems with current software development projects?

Cost

12

What are the problems with current software development projects?

Late delivery

13

What are the problems with current software development projects?

Inferior quality

14

What are the problems with current software development projects?

Follow-on projects

Inadequate ROI

Mistrust between business and IT

15

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

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

Agile is not:

18

A rigid, defined process

Applied as an all or nothing approach

Just about faster delivery

A silver bullet

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

20

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

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

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

24