Sample Agile
Sample Agile
Sample Agile
Fascinating
World of Agile
By Amit Kulkarni
Scrum Master
Product Owner
Backlog
User Story
Team
DSDM
Sprint
Preface ............................................................................................................................................ 8
SECTION I : INTRODUCTION .......................................................................................................... 10
1
Introduction to Agile.............................................................................................................. 12
1.1
1.2
1.3
Agile Manifesto...................................................................................................................... 18
2.1
Agile values..................................................................................................................... 18
2.2
Exercise...................................................................................................................................... 24
Answers ..................................................................................................................................... 24
3
3.2
3.3
3.4
DSDM.............................................................................................................................. 28
3.5
3.6
Scrum.............................................................................................................................. 33
3.7
Exercise...................................................................................................................................... 39
Answers ..................................................................................................................................... 40
SECTION II : UNDERSTANDING AN AGILE LIFECYCLE USING SCRUM METHODOLOGY ................ 42
4
4.2
5.2
5.3
5.4
Product Backlog.............................................................................................................. 58
6.2
Sprint Backlog................................................................................................................. 58
6.3
Increment ....................................................................................................................... 59
6.4
Timebox.......................................................................................................................... 60
7.2
7.3
7.4
7.5
Sprint Retrospective....................................................................................................... 63
7.6
7.7
7.8
Scrum of Scrums............................................................................................................. 65
Exercise...................................................................................................................................... 66
Answers ..................................................................................................................................... 67
SECTION III AGILE DOMAINS ...................................................................................................... 68
8
Introduction.................................................................................................................... 74
9.2
9.3
9.4
Exercise...................................................................................................................................... 82
Answers ..................................................................................................................................... 83
10
10.1 Introduction.................................................................................................................... 86
10.2 Identifying Stakeholder Needs ....................................................................................... 88
10.3 Stakeholder Involvement ............................................................................................. 103
10.4 Manage Stakeholder Expectations............................................................................... 114
Exercise.................................................................................................................................... 119
Answers ................................................................................................................................... 120
11
SECTION I : INTRODUCTION
10
1 Introduction to Agile
When one thinks about project development methodologies, the first thing that comes to our
mind are the methodologies described in PMBOK guide or Prince2 Manual. Therefore a
question always arises in our minds, is another methodology really required?
The answer to this question lies in the fact that over the last 10-15 years the world of people
working in the Knowledge Environment has changed drastically. People working in the
Knowledge environments such as Information Technology (IT), Engineering, Teaching,
Scientists, Lawyers, Doctors often need to work differently than the conventional
Manufacturing environments. The key in the Knowledge environment lies in Communicating,
Collaborating, Adapting to provide maximum value, since everyone in the Knowledge world is
special they have something unique and they have something more to contribute than
following orders routinely. This is the thought process which has evolved the development
methodologies in the recent past in the Knowledge based environments.
Development methods exist on a continuum from adaptive to predictive. Agile methods lie on
the adaptive side of this continuum. One key of adaptive development methods is a "Rolling
Wave" approach to schedule planning, which identifies milestones but leaves flexibility in the
path to reach them, and also allows for the milestones themselves to change. Adaptive
methods focus on adapting quickly to changing realities. An adaptive team changes as per
needs of the project. An adaptive team will have difficulty describing exactly what will happen
in the future. The further away a date is, the more vague an adaptive method will be about
what will happen on that date. When asked about a release six months from now, an adaptive
team might be able to report only the mission statement for the release, or a statement of
expected value vs. cost.
Predictive methods, in contrast, focus on analysing and planning the future in detail and cater
for known risks. In the extremes, a predictive team can report exactly what features and tasks
are planned for the entire length of the development process. Predictive methods rely on
effective early phase analysis and if this goes very wrong, the project may have difficulty
changing direction. Predictive teams will often institute a Change Control Board to ensure that
only the most valuable changes are considered.
12
20
Exercise
1. Which Agile Manifesto value is concerned with team empowerment?
A.
B.
C.
D.
4. An organization PMO has 4 Agile projects but each one implements Agile principles
differently. How should PMO respond to this situation?
A.
B.
C.
D.
Answers
1. (B) Individuals and Interactions over process and tools speaks about benefits of
empowerment and how they outweigh the benefits of processes and tools. The other
options do not talk about empowerment.
2. (D) Customer Collaboration over Contract Negotiation is the right pair.
3. (B) Simplicity is about Maximizing the amount of work not done
4. (A) Agile does not look exactly the same on all projects. That is what happens if you have
empowered teams. Therefore it is ok to have Agile being implemented differently on
different projects as long as they follow the basic principles of Agile.
24
26
SECTION II : UNDERSTANDING AN
AGILE LIFECYCLE USING SCRUM
METHODOLOGY
42
4 Introduction to Scrum
Scrum is an iterative and incremental Agile software development framework for managing
software projects and product or application development. Its focus is on "a flexible, holistic
product development strategy where a development team works as a unit to reach a common
goal" as opposed to a "traditional, sequential approach". Scrum enables the creation of selforganizing teams by encouraging co-location of all team members, and verbal communication
among all team members and disciplines in the project.
A key principle of Scrum is its recognition that during a project the customers can change their
minds about what they want and need (often called requirements churn), and that unpredicted
challenges cannot be easily addressed in a traditional predictive or planned manner. As such,
Scrum s founded on Empirical Process Control Theory, or empiricism. Empiricism asserts that
knowledge comes from experience and making decisions based on what is known. Scrum
Employs an iterative, incremental approach to optimize predictability and control Risk.
44
Product Owner
Scrum Master
Development Team
50
Value Driven
Delivery
Continuous
Improvement
(Product,
Process,
People)
Stakeholder
Engagement
Agile
Lifecycle
Problem
Detection
and
Resolution
Boosting
Team
Performance
Practices
Adaptive
Planning
We will study about each of the Agile Domains and the associated tools, techniques and best
practices in the following chapters.
Value Driven Delivery
Stakeholder Engagement
Adaptive Planning
Problem Detection and Resolution
Continuous Improvement (Product, Process, People)
Boosting Team Performance Practices
70
Must have The change is essential for the viability of the project
Should have The change is important and its absence weakens the Business Case
Could have The change is useful but its absence does not weaken the Business Case
Wont have (for now) The change is not essential nor important and can wait.
Must
Should
Could
Must
Could
Could
Timebox 1
Timebox 2
Timebox 3
76
10.2.7User Stories
The User Story is the most granular unit of requirement on a Agile Project. The Product Owner
writes the User Stories.
It is important to note that the user story is a medium that helps in
Gathering basic information about requirements
Records high level requirements
Developing estimates
Defining acceptance test to validate successful completion
User Story is the starting point of Communication about the details of requirements and once
they are agreed then they represent the agreement between team and customer about what
customer can expect from implementation.
User Stories adhere to a specific, predefined structure and are a simplistic way of documenting
the requirements and desired end-user functionality. A user story tells you three things about
the requirements
Who,
What
Why
The requirements expressed in User Stories are short, simple and easy to understand
statements. The predefined, standard format results in enhanced communication among the
stakeholders are better estimations by the team. Some User Stories may be too large to handle
within a single Iteration. These large User Stories are often called Epics. Once Epics come up in
Prioritized Product Backlog to be completed in a upcoming Iteration they are further
decomposed in to smaller User Stories.
The Prioritized Product Backlog is a dynamic list that is continuously updated because of
reprioritization and new, updated, refined, and sometimes deleted User Stories. These updates
to the backlog are typically the result of changing business requirements.
The Three components of a User Story are
Cards
93
Conversation
Confirmation
Independent
Negotiable
Valuable
Estimable
User Story should be clear enough for the team to come up with
reasonable estimates to work on
Small
Testable
94
Acceptance Criteria details should be added and following information can be added to provide
context
GIVEN [Context] <and/or [Some more Context]
WHEN [Event]
THEN [Outcome]
<and/or [another Outcome]
Example: A Ticket booker needs to be prevented from making excessive bookings in a day. This is to
avoid Ticket Booking Agents from booking tickets on behalf of others and in turn charging a
premium from individuals.
GIVEN that the ticket booker places another ticket booking Request
WHEN The ticket booker has already booked 3 tickets today (Maximum tickets to allowed per day
= 3)
THEN Flash a message that you are not allowed to book for than 3 tickets a day
95
Planning is Speculative
You refine the plan as you go along
The Plan is elaborated and becomes more clear over a period of time
Planning is dependent on principle of Timeboxing. i.e. fix the time and resources
available and determine the features that can be delivered.
Plan has to be necessarily flexible and responsive to changes
Planning is an ongoing activity
Try not to pack too much into the plan. Allow space to accommodate changes
Iterations allow for mid-course corrections. The fact that we are developing in iterative
manner allows for mid-course correction while working on a release.
The release plan that you send out upfront is a initial guess at the plan. As the team
works on sprints, the team gets a reality check of the actual size and complexity of the
task it has undertaken.
The team also gains from feedback received from customers and stakeholders. Based on
this the team should stay on course towards the goal.
At the same time, the stakeholders should also work in adjusting to the reality. So in
reality, rather than fixing the goal, the stakeholder may want to define and keep
adjusting the zones of success.
11.2Adaptation
The fact that the planning is done iteratively allows the team to do mid course
correction if required.
The release plan that was sent out initially was just a initial guess.
As the team works on the iteration, the team gets a reality check about the actual size
and complexity of the tasks it has undertaken.
It may also gain from the feedback received from the customer and other stakeholders.
SAMPLE SELECTED PAGES
124
Based on this knowledge, the team should stay course of the goal.
At the same time the stakeholders should also adjust their goals in the face of the
reality. So in reality, rather than fixing their goal, the stakeholders may want to define
and keep adjusting the zones of success within which they expect the results to lie.
Plan at multiple levels (strategic, release, iteration daily etc) creating appropriate detail
using rolling wave planning and progressive elaboration to support the necessary level
of understanding.
Engage the team and customer in planning activities to create practical plans that
balance priorities and team capabilities in order to gain increased levels of commitment.
Planning in Agile happens at different levels represented by Planning Onion.
The Team is involved at Daily, Iteration and Release Level. The daily planning happens thru the
daily standup meeting.
Iteration plans considers the tasks that are needed to transform a feature request into working,
tested software. Iteration plan happens at the beginning of every iteration.
SAMPLE SELECTED PAGES
125
Work in progress limits are agreed upon by the development team before a project begins and
are enforced by the team's facilitator. For example, a team may divide the tasks that must be
performed for a feature into design, code, test and deploy. When a WIP limit for a certain task
has been reached, the team stops and works together to clear the bottleneck. The goal of
working in this manner is meant to ensure that the entire team takes ownership of the project
and produces high quality code.
Consider the example below
TODO
Development
Ongoing
WIP Limit
Done
Testing
Ongoing
Deployment
Done
2
Done
1
B
K
L
M
133
11.9.4Planning Poker
Planning Poker is also called Estimation Poker. This is an estimation technique which uses
consensus to estimate relative sizes of User Stories or the effort required to create them.
In Planning Poker, each team member is assigned a deck of cards. Each card is numbered in a
sequence and the numbers represent complexity of the problem, in terms of time or effort, as
estimated by the team member. The Product Owner chooses a User Story from the Prioritized
Product Backlog and presents it to the team. The Scrum team members assess the User Story
and try to understand it better before providing their estimate for developing it. Then, each
member picks a card from the deck that represents their estimate for the User Story.
If the majority or all team member selects the same card then the estimate indicated by that
card will be the estimate for that User Story. If there is no consensus, then the team members
discuss reasons for selecting different cards or estimates. After this discussion they pick cards
again. This sequence continues until all the assumptions are understood, misunderstandings
are resolved and consensus or agreement is reached.
Planning poker advocates greater interaction and enhanced communication among the
participants. It facilitates independent thinking by participants thus avoiding the phenomenon
of the group think.
Fibonacci Sequence
Planning poker cards and Story points are often estimated using the Fibonacci sequence are a
variation of this sequence. The Fibonacci sequence are 0,1,1,2,3,5,8,13 and so on. Each
number is a summation of previous 2 numbers. Teams use Fibonacci sequence to estimate size.
It is a naturally occurring sequence that crops up frequently in connection with how things get
bigger. With this sequence, there is enough variation in the number values to eliminate most of
the discussion over slight difference in estimates. E.g. after 8 story points, the next number is
SAMPLE SELECTED PAGES
136
11.9.7Affinity Estimation
Affinity Estimation is a technique used to quickly estimate a large number of User Stories. Using sticky
notes or index cards and tape, the team places User Stories on a wall or other surface in order from
small to large. The sizes are typically like XS, S, M, L, XL. For this, each team member begins with a
subset of User Stories from the overall Prioritized Product Backlog to place by relative size. This initial
placements is done in Silence. Once everyone has placed their User Stories on the wall, the team
reviews all of the placements and may move User Stories around as appropriate. This second part of the
exercise involves discussion. Finally the product Owner will indicate some sizing categories on the wall.
These categories can be small, medium or large, or they may be numbered using story point values to
indicate relative size. The team will then move User Stories into these categories as the final step in the
process. Some key benefits of this approach are that the process is very transparent, visible to everyone,
and is easy to conduct.
138
11.9.8Mute Mapping
Mute Mapping is a variant of Affinity mapping where no one speaks and all participants
are invited to stand up and slide cards on the white board.
Exam Pointers
Levels of Planning.
Difference between Iteration and Release planning.
Definition of Agile Modeling
Velocity Based Planning
Simple Numericals on Velocity Based Planning
Kanban Method and Pull System
WIP Limit
Definition of Story Point
Why Story points cannot be compared across teams
Ownership of Story Points
Ideal Days
Triangulating
Planning Poker
Fibonacci sequence in Planning Poker Cards
Fist of Five
Wideband Delphi
Affinity Estimation
139
EV = 64 story points
AC = 70 story points (we have already used up bandwidth which would be
required to complete 70 story points. i.e. we added one resource extra)
CPI = 64/70 = 0.91
SPI = 64/60 = 1.06
Therefore we are over budget but we are ahead of schedule
152
159
13.3Retrospectives
The Retrospective is the event in Agile which brings in the iterative, inspective and adaptive
nature into picture. The team reflects upon the previous timebox with a view to learn some
lessons, adjust the behavior or environment in order to improve their experience.
A Retrospective is a special meeting that takes place after each iteration, in which the team
members gather to inspect and improve their methods and teamwork.
Since Retrospectives happen during the project, the lessons and improvements that result from
them are applicable and relevant to upcoming work on the same project.
Advantages of Retrospectives include the following
Improved Productivity : By applying lessons learned and reducing rework, the team can
get more productivity work done.
Improved Capability : Retrospectives provide a venue for spreading knowledge, so does
the number of people who can perform tasks associated with the knowledge.
Improved Quality : We can improve quality on our projects by finding the circumstances
that led to defects and removing the causes.
Improved Capacity : Retrospectives focus on finding process efficiency improvements,
which can improve the team capacity to do work.
13.3.1What is a Retrospective?
Retrospectives are important because they gives the team visibility into issues and helps them
to take action to correct course and make work environment more efficient and more
productive.
Retrospective is a 1-3 hour meeting at the end of the Sprint/Iteration.
Typically, this meeting is held after the Sprint/Iteration Review Meeting. This helps the
team to review what is working and what is not.
Two main questions are asked in the sprint retrospective: What went well during the
sprint? What could be improved in the next sprint?
Team then can take actions going forward
All team members reflect on the past sprint
Make continuous process improvements
Mandatory attendees are Scrum Master and the Teams. Sometimes you may invite the
Product owner also.
To bring in a neutral viewpoint, you may want to bring in a unbiased attendee also such
as a Scrum Master of another team
170
Refactoring is a good practice particularly important in Agile as the code gets built
incrementally. It also helps ensure that we are building on top of a firm foundation.
The team should write refactoring stories and request the Product Owner to prioritize them
based on the urgency.
176
200
Distributed teams increase the need for clear, timely communication between sites. You
might be thinking of increases in complexity due to more time zones, language barriers,
and cultural differences getting in the way.
Communication is the core issue among the distributed teams. Different time zones,
conflicting working hours, cultural and language barriers impact communication and
collaboration.
Investing in effective enterprise tools for requirements repositories, source Control
management, build and deployment setup, defect tracking, and project management
tools is essential.
Practicing Test Driven Development (TDD), Continuous Integration and Automation of
Testing are recommended
Proper communication setup such as telephones and videoconference are essential in a
distributed setup.
Telecommunication etiquettes such as conversation using round-robin technique,
importance of mute etc are essential hence a upfront training or setting ground rules for
telephone etiquette is essential.
215
it helps with communication for distributed and scaled teams and provides
opportunities to find better ways of completing the user stories.
Using the 3 questions effectively: The Product Owner and Scrum Master should
highlight the importance of the three questions in front of the team members so they
understand their purpose. Team members should communicate information that brings
value to others on the team. They should also try to identify team members who can
help them resolve their issues.
Resolving blockers: The Scrum Master should create a list of blockers and assign them
to team members or managers. The Scrum Master should also ensure the team is
burning through the blocker list.
Daily Scrum logistics: Conducting the daily Scrums when team members are in the same
time zone and speak the same language is much simpler than for a team with members
spread in multiple countries and time zones, having many different languages and
cultures.
o Ways of communicating during the daily Scrum: Having face-to-face daily Scrum
meetings gives the team the highest level of collaboration possible.
o Teleconference meeting: Distributed teams with overlapping work hours should
use a teleconference call to the same phone number every day to hold their daily
Scrum meetings.
o Videoconference meeting: The main advantage of this approach is that team
members get to see one another, so there is less nonverbal communication loss.
o Approach to handling time zone issues: Distributed teams can use methods
such as Daily Scrums through documentation, liaison approach, alternating
meeting times, and share the pain to deal with distributed daily Scrums where
the team has members with no overlap in their work hours.
o Background noise can be distracting on a teleconference, so teams should chose
a quiet room to conduct the meeting.
o Keeping the team engaged: Possibly the best way to stay engaged and to make
sure that others on the team stay engaged is awareness i.e. build awareness of
what the team is working on.
o Facilitating the meeting: In a distributed environment, as individuals come into
the call, they will identify who they are. The Scrum Master calls each person and
asks for their response. They may respond in the order they arrived at the
teleconference or the Scrum Master may choose to call on each person.
218
100-Point Method, 77
Acceptance Criteria, 95
Acceptance Test-Driven Development, 26
Adjourning. See Tuckman's Ladder Theory
Affinity diagram, 100
Affinity Estimation, 138
Affinity mapping. See Mute Mapping
Agile Charter. See Charter
Agile Contracting, 211
Agile Earned Value Techniques. See Earned
Value Techniques
Agile Games, 101
Agile Modelling, 127
Agile Smell, 156
Architecture Envisioning, 128, See Agile
Modeling
ATDD. See Acceptance Test Driven
Development
Backlog refinement. See Grooming
BCR. See Benefit Cost Ratio
Benefit Cost Ratio, 145, 146
Brainstorming, 100, 173
Burn Up Chart, 153
Burndown chart, 153
Business Value Delivered Chart, 107
CFD. See Cumulative Flow Diagrams
Charter, 88
Chicken and Pig Role, 50
Cockboard Taskboard. See Kanban Board
cone of silence, 196
Configuration Management, 157, 158
Conflict Management, 191
Continuous Integration, 28, 157, 175, 177,
182, 215, 219
Control Charts, 155
Control Limits for Agile Projects. See Control
Charts
CRC Cards, 178
Cumulative Flow Diagram, 152
Customer-valued prioritization, 76
Cycle Time, 134, 145, 148, 149
Daily Scrum, 62
decision making. See Participatory Decision
Models
Development Team, 50, 51, 52, 53, 54, 55,
58, 59, 61, 89, 90, 92, 188
Distributed Agile Teams, 215
Document
Continuously.
See
Agile
Modeling and XP
Document Late. See Agile Modeling and XP
Done Criteria, 59, 100
DSDM, 14, 26, 28, 31, 77, 211
DSDM contract. See Agile Contracting
Earned Value Techniques, 146
Electronic Taskboards. See Kanban Board
Empirical Process Control, 44, 52, 53, 55,
145, 188
Empowered Teams, 55
Epics, 90, 93, 98
Escaped Defects, 145, 149
Excel Spreadsheet Printout Taskboard. See
Kanban Board
Executables Specification, 128, See Agile
Modeling
Extreme programming, 176
Extreme Programming, 26, 27, 28
FDD. See Feature Driven Development
Feature, 98
Feature Driven Development, 111
Fibonacci, 136
Fishbone diagram, 173
Fist of Five, 137, 140, 141, 173
Fixed Price Work Packages. See Agile
Contracting
Forming. See Tuckman's Ladder Theory
Fractional assignment, 196
Free-for-all. See Brainstorming
Graduated Fixed Price. See Agile
Contracting
grooming, 65
ground rules, 171, 186, 191, 215
Idea/mind mapping, 100
226
227
228
229