Download - Agile Project Management - UnivAQ · Agile Project Management Overview Fabrizio Morando Application Development Manager martedì 20 novembre 2012. What is Agile? ... •Feature 3a

Transcript

Agile Project ManagementOverview

Fabrizio Morando

Application Development Manager

martedì 20 novembre 2012

What is Agile?

Agile is used to denote the ability of Agile Methods to respond to

changing requirement in a controlled but flexible manner

Agile methodologies can equip experienced Project Managers with

new tools to manage projects that are set in environments of constant

change.

Why Agile

Agile software developmment is a group of lightweight software

development methodologies based on iterative and incremental

development, where requirements and solutions evolve through

collaboration between self-organizing, cross functional teams.

Main elements of agile:

o Iterative

o Adaptable

o Rapid

o Cooperative

o Quality Driven

Why do we need new Project Management Methods?

Information Technology (as well as other industries) are continuously being challenged by emerging technologies and requirements.

Traditional Project Management “Best Practices” suggest that we should lock down requirements and setup a change control system up front.

Traditional Project Management practices also tend to refer back to the original requirements (and/or the contract) when enforcing change control.

Project noise level

Simple

Complex

Anarchy

Technology

Requirem

ents

Far from

Agreement

Close to

Agreement

Clo

se t

o

Cert

ain

ty

Far

from

Cert

ain

ty

Source: Strategic Management and

Organizational Dynamics by Ralph

Stacey in Agile Software Development

with Scrum by Ken Schwaber and Mike

Beedle.

Traditional Project Management Practices canLead to….

Chaos – Junior Project Managers tend to either:

allow too much uncontrolled changed to take place (to ensure

customer satisfaction)

or are too strict in allowing for change (resulting in irate

customers).

Traditional Project Management Practices canLead to….

Dramatic Project Underperformance –According to the Standish Group’s Chaos Reports, only 16 percent of IT projects are successful, the remainder are:

Late.

Over Budget.

Deliver only a fraction of original scope in order to meet budget restrictions.

Cancelled.

What Is Different About Agile Methods?

They are all about managing the impact of change on a project.

They allow change to be introduced into a project in a orderly way that that attempts to maximize the benefits for the sponsor.

They control the risks that the change introduces.

What is different about Agile Methods?

Iterative and Incremental development that

break down development into a number of

repeating cycles called Iterations

Short iterations are used to keep the feedback

flowing (allowing for increased responsiveness to

change and reducing the risk of building the

wrong thing).

Open, Flexible and Extensive design using open

standards whenever possible

What is different about Agile Methods?

Empowered Teams – Experienced specialists are encouraged to work out the detail design on their own.

Personal Communication – Rather than relying on written documentation to communicate design decisions, technical approaches and other typically documented items, agile method suggest that the team work in the same physical space (co-location). Use of white boards in the work area is encouraged rather than lengthy formal detail design documentation.

The Benefits of Being Agile

Reducing Risk – The benefits from improved control and improved communication lead to reduced risks. Examples of risks include:

Risk of building (or doing) the wrong thing. Did the sponsor get what they asked for but not what they actually wanted?

Risk of building the right thing poorly. For example, was the product poorly crafted. Was it thoroughly tested as a part of each iteration? Is the final produce extensible?

Risk of being placed into an endless cycle of design updates and reviews due to changing requirements or high levels of complexity

The Benefits of Being Agile

Relief from continual design revisions -- Agile Methods are of the

most benefit when applied to projects where the requirements are

either unclear or evolving

The Benefits of Being Agile

Improved Control – Agile methods allow the Project Manager to their

control over the project in high change environment. Utilizing less

rigid, yet structured agile methodologies, control is through a number

of mechanisms.

The Benefits of Being Agile (Improved Control)

Frequent delivery of working code allows progress to be objectively measured.

Early and frequent stakeholder feedback allows the Project Manager to redirect project priorities when needed to ensure that real value is delivered.

Misunderstandings are cleared up early in the project life-cycle.

The sponsor is able to end the project earlier than scheduled and still receive value.

The Benefits of Being Agile (Improved Control)

Short daily meetings allow team members to share both successes and problems with each other. Each team member should share:

What they have just completed (so that team members working on dependent tasks are notified).

What are they going to work on next (allows other team members to contribute information that may be helpful to the task).

Issues that are slowing down or halting their progress (so that other team members and/or the Project Manager can provide assistance).

Waterfall (traditional) way to plan a software project.

Analyze the problem

Design the solution

Implement the code (Execution)

Test the code

Deploy the code.

Done

Agile method of planning a software development project.

Initial Analysis

Initial Design (When problems are identified they are pushed back into the analysis step, to improve it).

Initial coding, push back identified design problems back. Perform another iteration of design to improve it.

Initial Testing. Identified problems are feed back into another iteration of coding.

Integration and deployment. Feedback any problems you encounter into the process.

A system of incremental/continuous improvement.

Sequential vs. overlapping development

Source: “The New New Product Development Game” by

Takeuchi and Nonaka. Harvard Business Review,

January 1986.

Rather than doing all of one

thing at a time...

...Agile teams do a little of

everything all the time

Requirements Design Code Test

Agile methods are all about incremental progress

Working incrementally allows the most critical portions of the product to be delivered earlier.

Working incrementally can help reduce risk by receiving stakeholder feedback in increments rather than at the end.

Working incrementally allows project teams to continuously make small corrections along the way. Each incremental corrections contributes to the overall quality of the entire project.

Agile – Sweat Spots

Dedicated developers

Experienced developers

Small collocated teams

Automated Regression testing

Easy to access users.

Waterfall vs. Agile

Money for information (waterfall)

Money for flexibility (agile)

Agile Documentation

A document is any artifact external to source code whose purpose is to

convey information in a persistent manner.

Reasons to Create Documentation

Project stakeholders require it (a Business

decision with costs and benefits associated with it)

To define a contract model (to define how your

system and an external one interact with each

other). Typically required when an external

resource controls an IT resource your system

requires (e.g. DB, Application or IT service)

Reasons to Create Documentation

To support communication with an external group (e.g. a non-co-

located group).

If it will assist you in thinking something through.

When is Documentation Agile

Generally – when it is “Good Enough”, but no more. This of course is subjective.

When it maximizes stakeholder investment.

When the documentation contains “just enough” information to fulfill its purpose (and no more).

Is purpose driven. If you are not clear about the purpose you are creating the document, you should not be doing so.

When it contains information that is “Less Likely” to change.

When is Documentation Agile

When the documentation contains critical information not readily available.

When the documents have a specific customer and facilitate the work efforts of that customer.

When the documents are sufficiently indexed, accurate, consistent and detailed.

UN APPROCCIO VALUE-UP AL SOFTWARE DEVELOPMENT

Plan

Task 1

Task 4

Task 3

Task 2

Value-upWork-down

L’approccio Work-Down è la scomposizione del progettoin task e successivosmarcamento degli stessi

Nelle metodologie Value-up sida priorità al valore aggiuntoprodotto ad ogni iteration piuttosto che ai task completati

Why working software

Working software

encourages

feedback – when

users can see and

touch the product

they can immediately

tell if it is what they

want

Working software

helps a team gauge

its progress – work

shown to be

complete allows for

real progress to be

identified

Working software

allows product to be

shipped early if

desired – the opion

to ship early can be

very valuable to your

customer to allow for

markets that change

rapidly

The Agile Manifesto – a statement of values

Process and toolsIndividuals and

interactionsover

Following a planResponding to

changeover

Source: www.agilemanifesto.org

Comprehensive

documentationWorking software over

Contract negotiationCustomer

collaborationover

Going through SCRUM

Iterative and adaptive

Customer can see quickly at what stage the development is

Every 2-4 week there’s a potentially shippabile product increment

Feedback is given routinely and often

Plans are in short durations (iterations) so change can be implemented

quicker

Wasted development is reduced

Prioritized features developed as mandatory

What does Agile look like?

Survey of Agile Methods

Dynamic System Development Method (Dane Faulkner)

Adaptive Software Development (Jim Highsmith)

Crystal (Alistair Cockburn)

SCRUM (Ken Schwaber)

XP (Kent Beck)

Lean Software Development (Mary Poppendieck)

Feature Driven Development (Jeff DeLuca)

Agile RUP

A Generalized Agile Process

Release

Iteration 1 Iteration 2 Iteration 3 Iteration …

• Feature 1

• Feature 2

• Feature 3a

• Feature 3b

• Feature 4a

• Feature 4b

• Feature 5

• Feature 4c

• Feature 6

• Feature 7

Backlog

• Feature 8

• Feature 9

• ….

An Agile Iteration

What project management paradigms are we

breaking?

What Paradigms Are We Breaking?

Culture

Measure

of Success

Waterfall

DevelopmentIterative Development

Iterative and

Incremental

Development

Parallel

Development

Acceptance

Test Driven

Development

Command-and-Control Leadership /Collaborative

Conformance to Plan Response to Change

Design

QA

Process

Big Design Up Front Continuous

Big Test on Backend Continuous

Agile Development

Tool Support Highly specific Fully Integrated

New Measures of Success

Critical Path -------------------------

Work Breakdown Structure -----------------------------------------

% Complete of tasks --------------

Serial functions --------------------

Procedural process -----------------

Fixed scope -------------------------

Critical Chain

Feature Breakdown Structure

# of Features accepted

Parallel functions

Empirical time boxes

Fixed time and resources

Measure

of Success

Waterfall

DevelopmentIterative Development

Iterative and

Incremental

Development

Parallel

Development

Acceptance

Test Driven

Development

Conformance to Plan Response to Change

Process

Agile Development

Culture of Discipline and Collaboration

Culture of sign-offs -----------------

High-level plans = Roll-up of detailed plans ------------------------

Detailed Planning early ------------

Protect the Project Scope ----------

Demonstrate at End -----------------

Weekly PM meetings --------------

Culture of learning

Gross estimates of backlog create

the high-level plans

Detailed Planning in chunks

Protect the Iteration Scope

Demonstrate every Iteration

Daily Stand-up meetings

Waterfall

DevelopmentIterative Development

Iterative and

Incremental

Development

Parallel

Development

Acceptance

Test Driven

DevelopmentProcess

Agile Development

Culture Command-and-Control Leadership /Collaborative

Continuous Design & Test

Contract with Customer ----------

Big Design sign off ---------------

Dreaded Integration phase -------

Never miss Dev. Cmpt date -----

Work in big phases ---------------

Testing squeezed -----------------

Partner with Customer

LPM Design Decisions

Continuous Integration

Never break the build

Work in small chunks

Low Features squeezed

Waterfall

DevelopmentIterative Development

Iterative and

Incremental

Development

Parallel

Development

Acceptance

Test Driven

DevelopmentProcess

Agile Development

Design

QA

Big Design Up Front Continuous

Big Test on Backend Continuous

Agile Project Tooling

Focus on Individuals -------------

Optimize the parts ----------------

Integrate with batch update -----

Manage large inventories --------

Un-integrated with the WBS ----

Visibility through manual PM report --------------------------------

Focus on the team

Optimize the whole

Tight integration

Manage rapid throughput

Manage the FBS

Real-time visibility up, down and across the team

Waterfall

DevelopmentIterative Development

Iterative and

Incremental

Development

Parallel

Development

Acceptance

Test Driven

DevelopmentProcess

Agile Development

Tool Support Highly specific Fully Integrated

Benefits from Implementing Agile

1. Deliver benefits early (First Iteration is demonstrable)

2. Avoid significant rework by only doing just-in-time detailed design

3. Avoid dead-end design decisions by managing with LPM decisions and trade-off matrix

4. Raise quality by moving testing forward in the process

5. Become responsive by supporting scope adjustments every iteration

6. Become reliable by instituting regular heartbeats to the team

7. Increase estimating accuracy by working in small chunks

8. Decrease risk by always having working software

9. Increase throughput via real-time visibility

10. Increase team moral by dropping the “death marches.”

Thank You