Agile Project
Management
Overview
Fabrizio Morando
Application Development Manager
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
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
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.
Project noise level
Simple Complex Anarchy Technology Req ui rem en ts Far from Agreement Close to Agreement Cl ose to Ce rtain ty F ar fr om Ce rtain tySource: Strategic Management and
Organizational Dynamics by Ralph
Stacey in Agile Software Development
with Scrum by Ken Schwaber and Mike
Traditional Project Management Practices can
Lead to….
Chaos – Junior Project Managers tend to either:
allow too much uncontrolled changed to take place (to ensure customer satisfaction)
Traditional Project Management Practices can
Lead 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.
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.
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
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
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
The Benefits of Being Agile
The Benefits of Being Agile
Improved Control – Agile methods allow the Project Manager to their
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 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
Waterfall (traditional) way to plan a
software project.
Analyze the problem Design the solution
Implement the code (Execution) Test the code
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
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
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.
Agile – Sweat Spots
Dedicated developers Experienced developers Small collocated teams
Waterfall vs. Agile
Agile Documentation
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
Reasons to Create Documentation
To support communication with an external group (e.g. a
non-co-located group).
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 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.
UN APPROCCIO VALUE-UP AL SOFTWARE
DEVELOPMENT
Plan Task 1 Task 4 Task 3 Task 2 Value-up Work-down L’approccio Work-Down è la scomposizione del progetto in task e successivosmarcamento degli stessi
Nelle metodologie Value-up si da priorità al valore aggiunto prodotto ad ogni iteration piuttosto che ai task
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
The Agile Manifesto – a statement of
values
Process and tools Individuals and interactions over Following a plan Responding to change over Source: www.agilemanifesto.org Comprehensive documentation
Working software over
Contract negotiation Customer
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
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)
A Generalized Agile Process
Release
Iteration 1 Iteration 2 Iteration 3 Iteration …
What Paradigms Are We Breaking?
Culture
Measure of Success
Waterfall
Development Iterative 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
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
Development Iterative Development
Iterative and Incremental Development Parallel Development Acceptance Test Driven Development
Conformance to Plan Response to Change
Process
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
Development Iterative Development
Iterative and Incremental Development Parallel Development Acceptance Test Driven Development Process Agile Development
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
Development Iterative Development
Iterative and Incremental Development Parallel Development Acceptance Test Driven Development Process Agile Development Design QA
Big Design Up Front 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
Development Iterative Development
Iterative and Incremental Development Parallel Development Acceptance Test Driven Development Process Agile Development
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