Professional Documents
Culture Documents
Agile Manifesto:
Team Focus;
Work collaboratively as one team
Work cross-functionally
Work in short iterations
Deliver something of value each iteration – potentially shippable software
Focus on business priorities – user valued features rather than just isolated tasks
Inspect and adapt
Agile Developers essentially say to product owners: “We will give you a plan based on what we know today;
we will adapt the plan to meet your most critical objective; we will adapt the project and our plans as we both
move forward and learn new information; we expect you to understand what you are asking for.”
Planning – “What should we build and by when?” a question to be answered by the TEAM. In Agile this
question is answered iteratively and incrementally.
Good planning process supports:
Reducing risk
Reducing uncertainty
Supporting better decision making
Establishing trust
Conveying information
A good plan is one your stakeholder can use to make business decisions based on. Can your stakeholder plan a
marketing campaign based on your development plan? Does your plan have their trust?
Planning is more important than the plan. Planning is ongoing. The plan itself is going to change. The
knowledge and insight we gain from planning persist long after one plane is torn up and a revised one put in its
place.
Conditions of Satisfaction exist at each level of planning for example at the release level the product owner
will have conditions of satisfaction upon which user stories, budget, and schedule, are balanced and at the
iteration and daily levels acceptance test should be in place for each work item.
Development Team
Who is needed to complete the product increment?
o Developers, analysts, designers
o Testers & QA
o Technical writers
o Usability engineers
o Architects
o Product Owners
Product Owners
What is the Product Owner Scrum Process?
o Define value for the product, ROI, Features, Cost, etc.
o Have a vision for the product, its Release, and the Sprints
o Maintain a prioritized backlog of product stories
o Seek guidance from architects, testers, developers
o Show up with the appropriately Product Backlog items
Epics or large items for release planning
Smaller items (such as user stories) for Sprint Planning
Detailed only when items are of the highest priority
o Maintain acceptance criteria for value
o Respect Delivery Team estimates
o Communicate often
o Accept product backlog items as they are completed
Scrum Master
Responsibilities
o Guards and supports the Scrum process
o Facilitates team decision making and team maturity
Divergence of ideas leading to informal convergence on decisions
o Removes impediments
o Protects team from external interruptions
o Acts as chief communicator – coordinates communication between team and external
stakeholders, managers, and other corporate communication.
o Controls “no business by favor” (product owners or anyone going directly to a developer with
a special request for a work item.
Stories must be written as to be testable. Successfully passing its test proves that a story has been successfully
developed. If the story cannot be tested, how will the developers know they have finished coding it?
Stories must be written in such a way so they can be estimated. It is important for the developers to be able to
accurately estimate the size. There are three common reasons why a story cannot be estimated:
Developers lack of domain knowledge
Developers lack of technical knowledge
The story is too BIG. Large stories can be split into multiple smaller stories.
As much as possible care should be taken to avoid introducing dependencies between stories.
The Burndown Chart is a tool for Tracking Work Remaining, “What is left to do”. The Scrum process does not
focus on tracking the work completed only the work remaining. The process does provide very good
information or reports for your product Owners.
Story Point Estimating is about sitting around discussing stories (gaining shared knowledge) with the team
and the product owner and guestimating the relative story SIZE. Focus on relative sizing, as opposed to
absolute sizing. This should go remarkably quickly. (e.g. 4 is twice as big as 2) After a few iterations the teams
sizing accuracy will improve dramatically and velocity will become transparent.
“Product Backlog Items are given the “relative size” based on the other
item sizes in the same Product Backlog”
The number of story points associated with a story represents the overall SIZE of the story. There is no set
formula for defining the size of a story. Rather, a story-point estimate is an amalgamation of the amount of
effort involved in developing the feature, the complexity of developing it, the risk inherent in it, and so on.
Story points are not an estimate of the time it takes to implement a feature, even though we often fall into the
trap of thinking of them as such. The amount of time that implementing a feature will take is a function of its
SIZE and a team’s rate of progress is reflected by its VELOCITY.
Estimates are shared and not created by a single individual on the team. Agile teams do not rely on a single
expert to estimate. Estimates are best derived collaboratively by the team, which includes those who do the
work and those who will use the product or the product owner, stakeholders.
First, on an agile team we tend not to know specifically who will perform given task. Remember, the team
owns the deliverable. Second, even though we may expect the database guru to do the work, others may have
something to say about the estimate or it’s’ dependencies.
Estimation of scale; the numbering sequence used is called the Fibonacci sequence which is generated by
taking the sum of the previous two numbers. For example, 0, 1, 2, 3, 5, 8, 13, 21, 34, etc. Each of the numbers
should be thought of as a bucket into which items of the appropriate size are poured. So, a story that you think
is a seven, clearly would not fit in a five point bucket. Why use a zero (0)? Consider the work that is closer to 0
than it is to 1, the team may not want the completion feature to contribute to its velocity calculations. If the
team earns 1 point in this iteration for something that is truly trivial, in the next iteration their velocity will
either drop by one or they may have to earn that point by doing work that may not be as trivial.
User Stories, Epics, and Themes; for features that we’re not sure we want, or for features that may not
happen in the future, it is often desirable to write on much larger user story. A large story is called an Epic. A
group of related stories may also be grouped together and treated as a single entity for either estimating or
release planning. Such a set of stories would be called a Theme.
Planning Poker
Planning POKER combines expert opinion, analogy, and disaggregation into an enjoyable approach to
estimation that results in quick but reliable results. Participants in planning poker include all of the developers
on the team. Remember, developer refers to all programmers, testers, database engineers, analysts, user
interaction designers, and so on. The product owner participates in this exercise to answer questions and DOES
NOT ESTIMATE.
Each estimator is given a deck of cards that reads 0, 1, 2, 3, 5, 8, 13, 21, and 34. A moderator reads the story
description. The moderator is usually the product owner, scrum master, or analyst. The product owner
answers all the questions the estimating team may have. However, everyone is asked to remain aware of the
effort/accuracy curve. The goal of planning poker is not to derive an estimate that will withstand all future
scrutiny. (effort/accuracy curve states you can spend too much time in detail to the point of diminishing
returns. Mike Cohn, Agile estimating and planning, pg. 50)
Remember to include all the questions required to meet the product owner’s “conditions of satisfaction” or
It is common for there to be a discrepancy in the first round of poker. Ask more questions. Discover more
information and vote again. You will find that after learning more the second round is often a collaboration
and will look something like 5,5,5,5,3. At this point as the moderator I would ask the 3 if they are ok with the 5
and if so move on. If not we need to discuss the item some more to discover why.
“The two minute timer” is a great tool to use allowing anyone to present their case for two minutes. Once
everyone has had their turn you then vote. This process will often produce the required results.
Team will need to play planning poker at two different times. First, during the initial effort to estimate the
large number of items or product backlog before the project officially begins. Estimating an initial set of user
stories in the beginning can take some time and possibly a few meetings. Naturally, this will depend on how
many items there are to estimate, the size of the team, and the product owner’s ability to clarify the
requirements succinctly. Second, the team will need to make the effort to estimate and new stories that will
come forward as the product matures. When should you re-estimate? ONLY when or if the story changes. So,
is this re-estimating or has the story changed so you now need to estimate it again as a new story?
Velocity is a measure of the team’s rate of progress. It is calculated by summing the number of story points
assigned to each user story that a team completed during the iteration. If the team completed three stories
each estimated at five story points, their velocity is fifteen for the iteration. Once a team’s velocity is
established usually over the first two or three iterations, it is valuable for future release planning, etc.
Velocity naturally corrects estimation errors as the team begins making progress through the user stories of a
project, their velocity becomes apparent over the first few iterations. For example if the team estimates the
project to include 200 story points of work. They also believe they can complete 25 points per three week
iteration, which means they will complete the project in 8 iterations or 24 weeks. However, once the work
begins they see that their velocity is only 20 points. Without re-estimating any work they are able to correctly
identify that the project will take ten iterations instead of eight.
Note: When a team becomes high-performing with a consistent velocity this becomes an even more important
tool and plays an exciting part in establishing rhythm for the product owner.
Defining “Done”
Without a clear definition of DONE you simply never are…..
Levels of Done
Have you considered defining levels of “done” for the following?
Termination of a Sprint
Sprints may be terminated by the team if they feel they are unable to meet the sprint goal
Management or the Product owner can cancel a sprint if external circumstances negate the value of
the sprint goal
If a sprint is abnormally terminated, the next step is to retrospect what happened
Based on that retrospectives finding, conduct a NEW sprint planning meeting, where the reason for
the termination and a revised product backlog is moved into the new sprint
Team retrospective meetings are for the team. These are special meetings where the team gathers after
completing an increment of work to inspect and adapt their methods and teamwork. Retrospectives enable
team learning and act as a catalyst for change to generate ACTION. This is more than as simple project close
out or project review. A retrospective does not only focus on the project performance but on the team and
“team issues”. Team issues are as challenging and as important as the technical issues and must be confronted
and resolved.
Adjusting Priorities
First, the team collaboratively adjusts the priorities of product backlog or user stories along with any new
stories that may have developed. This may not be the first sprint in the series and the team may need to re-
evaluate the product backlog to re-set priority stories. Business and project conditions change quickly, so it is
always worth a quick reconsideration of priorities.
Historical values are great if you both have consistent projects and the data to begin with.
Running a Sprint or iteration is an ideal way to forecast velocity from observing velocity during one to
three iterations. This is the default approach if you can.
Making a forecast involves disaggregating a number of stories into tasks, estimating the tasks, knowing
the team’s ideal hours and forecasting the velocity.
ALL TASKS necessary to go from a user story to a functioning, finished product MUST be identified. Writing the
acceptance test cases, fixing bugs, or automated unit test are all tasks within the sprint. If there are analysis,
design, UI design, they are to be identified and estimated. The goal of each sprint is to produce potentially
shippable product, take care to include tasks for testing and documenting the product. Including test in
critically important because the team needs to think right from the start about how a user story will be tested.
Meetings
You should identify, estimate, and include tasks for meetings related to developing the project. If you know
three developers will need to meet with the architect for 2 hours then you can estimate the task at eight
hours.
A defect found later or not fixed within the sprint in which it was discovered is treated the same way as a user
story. Fixing the defect will need to be prioritized into subsequent sprints in the same way that any other user
story would be. Outside of a sprint, the whole idea of a defect starts to go away. Fixing a bug and adding a
feature become two ways of describing the same thing.
Estimating Tasks
Some teams prefer to estimate tasks after all have been identified; other teams prefer to estimate each task as
it is identified. Tasks estimates are expressed in ideal time like “6 hours” even if I know 6 hours is going to take
all day. Tasks on a team should be estimated by the team. Estimating tasks is a team endeavor. Here are four
reasons;
Tasks are not allocated to a specific person during sprint planning. One person is not responsible for
the task.
Even though one person may be expected to do a task, and even though they may know the most
about that task, it does not mean that others do not have something to contribute.
Hearing how long something will take often helps teams identify misunderstandings about a user story
or task.
When the person who will do the work controls the estimate the person’s pride or ego may influence
the estimate.
Agile Scrum Explained – This document is a compilation of proven training ideas from some of the leading Agile
minds. References; Mike Cohn - Agile Estimating and Planning; Agile University; Mike Cohn - User Stories
Applied; Jean Tabaka - Collaboration Explained;