View
221
Download
1
Category
Preview:
Citation preview
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.
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
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
• ….
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.”
Recommended