Spring 2023
AGILE
SOFTWARE
PROJECT MANAGEMENT
Instructor
Adnan Ghaffar
1
Lecture # 4A
Agile Manifesto & Principles
Spring 2023
Instructor
Adnan Ghaffar
2
Content
• Traditional PM versus Agile • Key Agile Practices
• What is Agility? • Limitations and Concerns of
• Why Agile? Agile PM
• Project Uncertainty • The development team
• Agile Manifesto • Some Pros and Cons of Agile
• Agile Principles • Why do Agile Project fails
• Agile Methods • Agile team success
• Popular Agile PM Methods • Realization
• Agile Software development • Encourage Diversified Roles
• Agile Project Management • Daily Standup Meeting
• Progressive Elaboration or
Rolling wave planning
• Iterative, Incremental Product
Development
Traditional PM versus Agile PM
• In Traditional PM, it focuses on plans and artifacts while in Agile
PM, it focuses on customer interaction and satisfaction.
• In Traditional PM, there is a response to change that it is either
corrective or preventive but in Agile PM, changes controlled
through adaptive actions.
• In Traditional PM, it is typically up-front planning while in Agile
PM it is progressive elaboration with release and iterative
planning.
• In Traditional PM, there is a top-down control while in Agile PM
it has self-organizing and cross-functional teams.
• In Traditional PM, there is a scope based delivery while Agile PM
has time-boxed delivery.
• In Traditional PM, it is contract oriented while in Agile PM, there
is customer orientation.
4
Traditional Project Management versus
Agile Project Management
Traditional Agile
Design up front Continuous design
Fixed scope Flexible
Deliverables Features/requirements
Freeze design as early as possible Freeze design as late as possible
Low uncertainty High uncertainty
Avoid change Embrace change
Low customer interaction High customer interaction
Conventional project teams Self-organized project teams
5
6
What is Agility?
Agility is the ability to both create and respond
to change in order to profit in a turbulent
buisness environment.
[Jim Highsmith, Agile Software Development Ecosystems, Preface XXIII]
7
Why Agile?
8
May be..
• Increased Consumer Expectations
• Increased Work Pressure
• Misaligned Expectations
• Etc.
As consumers today As knowledge
we want and expect workers, our
innovative products: business tools have
faster, cheaper and improved our
with better quality capability to be
than those we’ve productive, raising
seen in the past work expectations
9
Project Uncertainty
10
Agile Manifesto
1. Individuals and Interactions Over Processes and Tools
2. Working Software Over Comprehensive Documentation
3. Customer Collaboration Over Contract Negotiation
4. Responding to Change Over Following a Plan
1 2 3 4
Valuing people Agile does not The Agile Agile’s view is
more highly eliminate describes a that changes
than processes documentation, customer who is always improve
or tools is easy but it engaged and a project;
to understand streamlines it in collaborates changes provide
because it is the a form that gives throughout the additional value.
people who the developer development The shortness of
respond to what is needed process. This an iteration
business needs to do the work make easier for means priorities
and drive the without getting development to can be shifted
development bogged down in meet customer from iteration to
process. details needs iteration
11
This does NOT mean...
• ... processes and tools don‘t matter.
• ... that we need no documentation.
• ... that we need no contracts.
• ... make a plan and follow it is obsolete.
12
12-Principles of Agile
1. Customer Satisfaction
– Highest priority is to satisfy the customer through early
and continuous delivery of valuable software.
2. Welcomed Changes
– Welcome changing requirements, even late in
development. Agile’s processes bind change for the
customer’s competitive advantage
3. Frequent Delivery
– Deliver working software frequently, from a couple of
week to a couple of months, with a preference to the
shorter timescale.
13
12-Principles of Agile
4. Collocated Teams
– Business people and developers must work together daily
throughout the project.
5. Motivated Individuals
– Build projects around motivated individuals. Give them the
environment and support they need, and trust them to get
the job done.
6. Face-to-Face Contact
– The most efficient and effective method of conveying
information to and within a development team is face-to-
face conversation.
14
12-Principles of Agile
7. Working Software
– Working software is the primary measure of progress.
8. Constant Pace
– Agile processes promote sustainable development. The
sponsors, developers, and users should be able to maintain
a constant pace indefinitely.
9. Continuous Attention
– Continuous attention to technical excellence and good
design enhances agility.
15
12-Principles of Agile
10.Simplicity
– The art of maximizing the amount of work not done — is
essential.
11.Self-Organization
– The best architectures, requirements, and designs emerge
from self-organizing teams.
12.Regular Reflection
– At regular intervals, the team reflects on how to become
more effective, then tunes and adjusts its behavior
accordingly.
16
Agile
• Agile is a way to manage projects.
• Agile breaks down larger projects into small, manageable
chunks called iterations.
• At the end of each iteration (which generally takes place over
a consistent time interval) something of value is produced.
• The product produced during each iteration should be able to
be put into the world to gain feedback from users or
stakeholders.
• Agile has designers, developers and business people working
together simultaneously.
17
Agile Methods
• Agile is a product development approach and
Agile itself is not even a method – it is a set of
values and principles. But, it is very hard to
sell values and principles – hence the birth of
many “Agile” methods.
18
Popular Agile PM Methods
Scrum Crystal Clear
Extreme RUP (Rational
Programming Unified Process)
Agile PM
Methods Dynamic Systems
Agile Modeling Development
Method (DSDM)
Rapid Product
Development (PRD) Lean Development
Assignment: Write two points differences among the Agile Methodologies
and Application of the methodologies in Pakistani software organizations.
19
Agile Software development
• Agile software development is a group of
software development methods in which
requirements and solutions evolve through
collaboration between self-organizing, cross
functional teams.
20
Agile Development Life Cycle
21
Agile Project Management
• Agile project management is an
iterative development methodology
that values human communication
and feedback, adapting to changes,
and producing working results.
Agile Project Management
• Agile PM
– Is related to the rolling wave planning
and scheduling project methodology.
• Uses iterations (“time boxes”) to develop a workable product that
satisfies the customer and other key stakeholders.
• Stakeholders and customers review progress and re-evaluate
priorities to ensure alignment with customer needs and company
goals.
• Adjustments are made and a different iterative cycle begins that
subsumes the work of the previous iterations and adds new
capabilities to the evolving product.
17–23
Progressive Elaboration or Rolling wave planning
• Progressive elaboration means developing in
steps, and continuing by increments.
• Progressive elaboration involves continuously
improving and detailing a plan as more detailed
and specific information and more accurate
estimates become available.
• Because of the potential for change the project
management plan is iterative and goes through
progressive elaboration throughout project life
cycle.
Instructor: Adnan Ghaffar 24
Iterative, Incremental Product Development
25
Key Agile Practices
• Release Planning
• Sprint Planning
• Daily Scrum/Standup
• Fixed-length sprints
• Sprint Review
• Sprint Retrospective
Identify top-
top-priority items and deliver
them rapidly using:
• Small batches
• Small integrated teams
• Small, continuous improvements
26
Agile Project Management (cont’d)
• Advantages of Agile PM:
– Useful in developing critical breakthrough
technology or defining essential features
– Continuous integration, verification, and
validation of the evolving product.
– Frequent demonstration of progress to increase
the likelihood that the end product will satisfy
customer needs.
– Early detection of defects and problems.
27
Limitations and Concerns of Agile PM
• It does not satisfy top management’s need for
budget, scope, and schedule control.
• Its principles of self-organization and close
collaboration can be incompatible with corporate
cultures.
• Its methods appear to work best on small projects
that require only five-nine dedicated team members
to complete the work.
• It requires active customer involvement and
cooperation.
17–28
Some Pros and Cons of Agile
• Quicker delivery of valuable Hard to predict cost
functionality Time consuming
• Highly flexible Requires “culture change”
• Regular prioritization Requires significant
• Quicker feedback cycles and bug management support
identification Does not provide “instant
• Fewer defects in final product gratification”
• Effective where goals are Requires reinforcement not
“ill defined” or evolving to fall back to Waterfall.
• Highly interactive and Documentation may be
collaborative incomplete
29
Why do Agile projects fail?
Causes of Failure
5% 5% 15%
5%
6%
12%
6%
7%
11%
8%
9% 11%
None of our agile projects failed
Don’t know
Lack of experience with agile methods
lack of understanding of broader org change required
Company philosophy or culture at odds with agile values
External pressure for waterfall
New to agile; haven’t completed a project
Lack of mutual trust between business and development
Lack of cultural transition
Insufficient training
Unwillingness of team
Lack of Management support
30
Agile team success
• Co-location
• Engaged Customers
• Self-Organizing
• Accountable and Empowered
• Cross-Functional
31
Realization…
• For the project manager, it can be the
realization that no matter how hard they try,
the requirements are going to change.
• For the analyst, it’s the realization that
analysis on an agile project never ends.
• For the developer, it’s the expectation that
they will be expected to write tests (and lots
of them!).
32
• If there are no predefined roles on agile
project, how does anything ever get done?
• If there is no dedicated role of tester, how can
we be sure that enough testing will be done?
• What if no one wants to test? What if
everyone just wants to sit around and write
code?
33
Flexible Formal Structure
Product Developer Tester
Traditional Silos Owner
PM BA Designer
Release
Manager
Integrated Agile Team
Capacity
Architect
Planner
The Core Project Team BA Extended
ideally consists of 5-9 (7 Designer BA Project Team
plus or minus 2)
members. Core Project Prod.
DBA Developer PM
Team
Developer Tester
Product
Tech Owner
Security
Ops
Business
Sponsor
34
Encourage Diversified Roles
Define roles holistically so that team members can develop into
Generalizing Specialists (or Versatilists):
“Generalizing Specialist”
Someone with one or more specialties who actively seeks to gain new skills
in existing specialties, as well as in other areas.
A generalizing specialist is more than just a generalist. A generalist is a jack-of-all-
trades but a master of none, whereas a generalizing specialist is a jack-of-all-
trades and master of a few”
Scott Ambler
35
Daily Standup Meeting
Each participant answers 3 questions:
1 What did you do yesterday?
2 What will you do today?
3 What’s in your way?
• These are not status sessions for the manager
• They are team member commitments in front of the team
36 36