Agile Project Management - .Agile Project Management Overview Fabrizio Morando Application...

download Agile Project Management - .Agile Project Management Overview Fabrizio Morando Application Development

of 42

  • date post

    15-Feb-2019
  • Category

    Documents

  • view

    215
  • download

    1

Embed Size (px)

Transcript of Agile Project Management - .Agile Project Management Overview Fabrizio Morando Application...

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 Groups 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

Lapproccio 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