Agile Extension To The Babok Guide
Agile Extension To The Babok Guide
Agile Extension To The Babok Guide
28/11/18
AGILE EXTENSION TO THE BABOK GUIDE
As the Agile Extension highlights, any member of an agile team may
engage in the process of business analysis.
In the Agile Extension, we have called particular attention to the
mind‐set a business analysis practitioner must have in order to
effectively contribute to delivery of ongoing value to stakeholders.
Business analysts should always work to ensure that requirements
are aligned with organizational goals and objectives and that all
stakeholders have a shared understanding of those goals,
objectives, and requirements.
They must also work to manage risks and validate that the
requirements, if delivered, will create real value for stakeholders.
2.2.1User Stories
2.2.4Business Analysis in XP
When XP is applied at a larger scale, or with customers who do not
have a clear vision of the incremental value of features, a business
analyst adds significant value in facilitating and negotiating with
stakeholders to reach a shared understanding of what the most
valuable deliverables will be. A business analyst can also contribute
by
facilitating story mapping.
In traditional XP, the user stories are created and managed directly
by
the customer. This can lead to unfiltered requirements.
Business analysis skills can be
used to ensure underlying problems are being addressed in a way
that
works for most, if not all, of the stakeholders on the project, as well
as
ensure thorough acceptance criteria have been collected for each
user
story. On projects where there is a dedicated business analyst they
often perform story decomposition and elaboration activities.
Story Mapping: Story maps show relationships between user
stories and larger activities that the user must be able to
accomplish.
Story Decomposition: Epics, features, or minimally marketable
features (MMF) tie groups of user stories together into larger
packages that can be discussed with stakeholders.
Story Elaboration: Defines the detailed design and acceptance
criteria for a user story on a just-in-time / just-enough basis.
Kanban
With roots in the Theory of Constraints
and Lean product development, Kanban has five key principles:
•
visualize the work,
•
limit work in process,
•
focus on flow,
•
make process policies explicit, and
•
continually improve.
Unlike the other agile frameworks that we have discussed, Kanban
development does not require fixed iterations. Work moves
through
the development process as a continuous flow of activity. A key
feature
of Kanban is to limit the amount of work underway at any one time
(referred to as the Work in Progress Limit or WIP). In this approach
the team works only on a fixed number of items at any one time
and
work may begin on a new item only when it is required to maintain
flow downstream and after the previous item has been completed.
Queues
Kanban relies on the use of work queues to manage the flow of
activities that must take place to deliver a working product.
Kanban approach is often combined with approaches such as Scrum
where the backlog is used as the
implementation for the queue. When a new feature request is
received,
it is assessed for relative priority and urgency and then placed into
the
queue in its relative position, maintaining the order by priority.
Analogous to the Scrum technique of managing the product
backlog,
the team evaluates the features waiting in the input queue to see if
they are too large or out of scope for the upcoming release. For
items
that are too large to be completed before a planned release date,
the
project team will break the item down (decompose it) into smaller
chunks of work, deciding which will be included in the release and
which will not. The team then reassesses the priority of the items in
the queue and reorders them as needed to maintain a continuous,
prioritized flow of work.
2.4.2Release Planning
Release planning is the activity in which the person who owns the
product groups activities and allocates them to teams.
2.4.3Iteration Planning
Many agile teams work in fixed time windows called sprints or
Iterations.
Prior to that iteration planning meeting, the
items in the feature request list that are being considered for the
iteration need to be sufficiently understood, thus enabling the
team to
responsibly make a commitment. In Scrum this is known as
grooming
the backlog.
This work is comprised of
requirement communication and analysis, with additional
elicitation
and documentation as needed.
In iteration planning the work that will be performed in the sprint is
identified, estimated, reviewed, and committed to be completed.
At the end of iteration planning, the delivery team
commits to delivering an increment of working, tested, and
deployable
code.
After an iteration has been completed an iteration review or
product
demonstration is held. The results of the product demonstration
feed
into the next cycle of iteration planning. The product
demonstration
meeting is similar to light-weight user acceptance testing and is
generally limited to a maximum of 4 hours.
During the product demonstration
•
the delivery team demonstrates how the code that was developed
meets the acceptance criteria,
the owner of the product and delivery team review the state of the
business, the market, and the technology, and re-prioritize the
feature request list for the next iteration.
While a
working product is the expected output of each iteration, many
agile
teams will wait to release a product until several iterations worth of
work have been completed. The team must determine the
appropriate
trade-off point between the cost to deliver the latest product and
the amount of new or improved functionality that will be delivered
to the
customer base. Iterations proceed until enough features have been
done to complete or release a product.
2.4.4Daily Work Planning
The daily meeting is usually a fifteen minute meeting designed to
clarify the state of the work
During the daily meeting the team
•
gets a global snapshot of the project,
•
discovers any new dependencies,
•
addresses any personal needs of committed individuals, and
•
adjusts the work plan to meet the needs of the day and ensure the
team can deliver on the iteration commitment.
Frequently the dialogue held during this meeting uncovers items
that
lack clarity or require further analysis. The team then identifies a
plan
for dealing with these impediments to the project. This often
entails
assigning someone to do further business analysis work for
elicitation
and analysis on the impacted requirements
2.4.5Continuous Activity Planning
Here are some guiding principles that those conducting business
analysis may find helpful:
•
Start with value and keep the team true to value. It is vital that the
individual holding the business analysis role is paying close
attention to the project's business value.
•
Low-fidelity artifacts serve as an enabler of business value by
creating context and generating shared understanding. However,
they do not replace, or even take precedence over effective
collaboration and conversation.
•
Business analysis is about facilitating discussion and
understanding. Business analysts may not possess the depth of
Levels of Planning in Agile Approaches
Business Analysis in Agile Approaches
understanding about the business as does the business sponsor, or
as much about technology as the technology team
®
24
Agile Extension to the BABOK® Guide
Complimentary Member Copy. Not for Redistribution or Resale.
Operate in the best interest of the business over time. Responsibly
balance value and capacity to deliver.
•
Identify and communicate competing concerns and gaps in
understanding between the business and technology. Ensure that
common understanding is reached.
•
Resources are limited and valuable. Always assist in maximizing
value over time.
•
Assist the team to take action. Effectively communicate what is
required when taking the next steps. Ensure that feedback is clearly
understood and acted on by the team.
•
Deliver incrementally and iteratively. Do the smallest, simplest
thing that could possibly work. Iterate to reach minimal value.
Progressively elaborate in small pieces while testing assumptions
and articulating clear acceptance criteria.
•
Produce the smallest amount of documentation that meets the
needs of the team and deliver it just in time.
Mapping Agile Techniques to the
K®
BABOK® Guide
Chapter THREE
3.1Business Analysis Planning and Monitoring
3.1.1Plan Business Analysis Approach (2.1)
Some business analysis work will generally
be performed up front to define a vision for the project and how
the problem
or opportunity will be addressed, but detailed analysis will be
performed as needed. If the problems the software is supposed to
solve are unclear,
or several stakeholder groups have conflicting interests, it may be
necessary to do business analysis work prior to the beginning of a
project. That up-front analysis will provide a better understanding
of
underlying problems, their drivers, and the goals of the
stakeholders
in order to reach agreement on the vision for the product.
.1Agile Techniques
Backlog Management: Backlog management is the primary
method of handling requirements planning, prioritization, and
change management in most agile approaches. Because the
backlog
often describes the breakdown of requirements in the relative
order in which the features should be implemented, it can serve as
a description for the order in which business analysis activities will
take place. Some backlogs also include business analysis activities
as tasks to be completed in a development cycle.
Planning Workshop: Business analysts participate in planning
workshops to determine the business analysis effort and activities
to support a team objective.
Real Options: Real option analysis may help determine when
business analysis needs to be conducted to investigate a particular
business issue.
Retrospectives: The feedback from prior retrospectives should be
considered when selecting the approach.
3.1.2Conduct Stakeholder Analysis (2.2)
In agile development, business
analysts need to consider the impact of the agile cadence on the
stakeholder and how things like progress elaboration will affect
expectations. Business analysts need ask questions such as, can the
stakeholder participate in updating the processes, interactions, and
product specifications during the course of the project?.
Prototyping
and frequent feedback from stakeholders can help to refine what is
known about the needs of a stakeholder or stakeholder group.
.1Agile Techniques
Collaborative Games: Many collaborative games can be used to
understand the perspectives of various stakeholder groups.
Personas: Personas can help the analyst or development team by
enabling them to better describe and visualize the needs of a group
or archetype of stakeholders, understanding how the archetype
will derive value from a solution, potential risks for the archetype,
and other information that will help the team to better understand
the needs of the stakeholder groups involved with the project.
3.1.3Plan Business Analysis Activities (2.3)
Business analysis activities are planned as needed, usually at the
start
of the project and refined with each iteration or when a new work
item
is ready for analysis. The business analyst should always be aware
of
and prepared to address the next iteration of work, keeping the
vision
for the product and evolution of incremental value in mind
progressive elaboration of documentation
much of the elaboration is
replaced by interactions and ceremony so these outcomes need to
be
accomplished with activities addressed in the communication plan
.1Agile Techniques
Planning Workshop: Decisions regarding business analysis
activities will usually be made during a planning workshop.
3.1.4Plan Business Analysis Communication (2.4)
During development, formal communication of requirements is
generally replaced with ad-hoc informal discussions and modeling.
Some deliverables are replaced by specific interactions or
ceremonies.
By definition, these interactions and ceremonies require real-time
participation by the business analyst. Formal documentation may
be
developed following development of the software to ensure
knowledge retention by the organization or to meet regulatory
requirements.
.1Agile Techniques
Personas: These may prove useful in assessing the needs and
availability of the stakeholder groups for the necessary
communication in an agile approach and how you will organize this
agile communication.
Planning workshop
3.1.5Plan Requirements Management Process
In agile approaches, requirements management is focused on
ensuring
that the intake of new work by the team matches the priorities of
the
stakeholders and/or sponsor, and delivers value to the business.
Agile
approaches stress the importance of welcoming changing
requirements. This means that the ordering of work items that are
ready for development may be changed at any time.
.1Agile Techniques
.2Backlog Management
3.1.6Manage Business Analysis Performance (2.6)
This activity will be performed on an ongoing basis as the business
analyst learns to work effectively with stakeholders and the
development team. As everyone involved better understands how
to
work together to deliver value, the business analysis process,
methods,
or techniques in use may need to change. Effective business
analysis
performance will result in limited rework of the requirements
documentation, effective prioritization and scoping of
requirements,
and clear communication of need to the development team.
.1Agile Techniques
Retrospectives
Value Stream Mapping: Value stream mapping can be useful in
assessing how business analysis activities are contributing to the
delivery of value to the customer and identifying activities that may
not be adding value.
3.2Elicitation
Effective elicitation ensures that the stakeholders' actual
underlying needs are understood, rather than stated or superficial
desires. Elicitation is ongoing throughout the project and
performed in
conjunction with analysis activities (as compared to traditional
approaches, where it is possible to perform elicitation as a distinct
activity or phase).
On agile projects, the most common pattern is an initial elicitation
activity which looks at the high level needs, goals, and scope of the
solution. In every iteration, there is more detailed elicitation for the
user stories which constitute the backlog items for that iteration.
3.2.1Prepare for Elicitation (3.1)
Preparing for elicitation changes during the life of the project. Early
on,
it is done by the business analyst to coordinate supporting
materials
and schedule resources to define the high-level requirements.
During
this phase of the project, elicitation activities will generally be
structured as more exploratory sessions to understand underlying
needs, build out the initial list of feature requests, and determine
what
is most valuable to work on. As the project progresses, work is
coordinated by prioritization of the backlog. This will often result in
more structured and directed elicitation sessions designed to
understand low-level details of a particular feature or requirement.
Stakeholders may work directly with the developers to elaborate
requirements. In that situation, the developer is performing
business
analysis activities for the project and should be trained in good
business analysis practices.
Where this is not possible, the business
analyst will often act as a proxy.
In preparation for elicitation activities, it is recommended that the
business analyst perform customer research and a stakeholder
analysis to understand the needs, wants, and preferences of the
stakeholders they will be working with. By tailoring elicitation
discussions to the stakeholder, business analysts can maximize the
efficiency and value of the elicitation session.
.1Agile Techniques
Personas: Personas may provide insight into the particular needs
of a stakeholder or the techniques that will be most effective in
understanding those needs.
•
User Story: A user story will identify the role for whom the story
provides value (and therefore identify the stakeholders who can
elaborate on that value).
•
Story Mapping: Developing a user story map with users and other
stakeholders will ensure the stories implemented in the solution
will come together as a cohesive product in the end.
3.2.2Conduct Elicitation Activity (3.2) Elicitation activities are
conducted on a frequent basis throughout the
project, possibly even daily. Early on, elicitation is performed to
define
high-level requirements or a vision for the product. As the project
progresses, stakeholders interact with the development team
directly
during iteration planning and development.
These elicitation activities often occur in
workshops with product users and other stakeholders
.1Agile Techniques
•
Behaviour Driven Development (BDD): Stakeholders may find it
easier to articulate their needs by providing examples rather than
through abstract models.
Collaborative Games: Collaborative games encourage participants
in an elicitation activity to collaborate in building a joint
understanding of a problem or a solution.
3.2.3Document Elicitation Results (3.3)
A major value of documentation is that it can be used for long-term
knowledge retention. Agile approaches aim to minimize the time
between the development of requirements and their
implementation
in software, reducing the overall value of that documentation to
the
team. Records of elicitation activities should be kept to ensure that
key
decisions can be understood at a later date, or to ensure that
regulatory or governance requirements are met. It is important to
note
that documentation should not be limited to purely textual artifacts
to
represent requirements and context for requirements. Visualizing
requirements through models, mock-ups, and prototypes an be a
quick
mechanism for conveying a large amount of information about a
solution. However, care should also be taken when using
visualizations
that mimic the solution, as it is important to define requirements
without unnecessarily limiting the solution options.
.1Agile Techniques
•
Lightweight Documentation: See this section for guidelines on
developing documentation. In most cases, there will not be
separate documentation of the elicitation and analysis work.
3.2.4Confirm Elicitation Results (3.4)
3.3Requirements Management and
Communication
Requirements Management and Communication (Chapter 4 of the
BABOK® Guide) describes how business analysts manage conflicts,
®
issues, and changes in order to ensure that stakeholders and the
project team remain in agreement on the solution scope, how
requirements are communicated to stakeholders, and how
knowledge
gained by the business analyst is maintained for future use. This is
not
a one-time activity, but is performed continuously throughout the
life
of the project.
3.3.1Manage Solution Scope and Requirements
As agile projects unfold, the scope is defined with increasing
specificity. Depending on the agile approach being used, the
specific
details of the scope can be found in the product backlog or a similar
document.
Based on the level of elaboration the product backlog itself
may vary in its own level of detail.
Backlog Management: Most agile teams use the product backlog
to manage both solution scope and requirements.
Story Decomposition: Story Decomposition enables planning at
the appropriate level of granularity and supports the just-in-time
nature of agile approaches.
3.3.2Manage Requirements Traceability (4.2)
On agile projects, everything is connected back to the strategic
themes,
epics, and stories that are used to define the project. This is
maintained
by the product owner or the business analyst.
3.3.5Communicate Requirements (4.5)
In agile projects requirements are communicated to developers on
an
on-going basis. Requirements communication most often happens
in
release planning meetings where themes and stories are reviewed
and
selected for release. They are also discussed in more detail in
iteration
planning meetings where the models and specifications are
selected
and discussed among the team and the product owner. In these
iteration planning meetings, risks are also reviewed and discussed.
Additionally, daily team meetings are often used as an opportunity
for
developers to get clarification or identify ambiguous requirements,
where the business analyst communicates the details of the
requirements or clarifies ambiguity. Models and visualizations for
requirements can be a quick way to communicate detailed
requirements and facilitate understanding of the problem the
solution
needs to solve.
3.4Enterprise Analysis
This knowledge area describes problem
definition and analysis, business case development, feasibility
studies,
and the definition of solution scope.
Enterprise analysis is about
identifying the business need, opportunity or problem to be solved
and deciding on the appropriate approach to addressing the need.
3.4.1Define Business Need (5.1)
Define Business Need, as described in BABOK® Guide, extends to
agile
®
approaches.
.1Agile Techniques
•
Business Capability Analysis: A business need will usually
correspond to the development of a new capability or the
enhancement of an existing capability.
•
Collaborative Games: Some collaborative games can be useful in
exposing un-met business needs.
3.4.2Assess Capability Gaps (5.2)
3.4.3Determine Solution Approach (5.3)
Agile is a solution approach. It may be selected in order to provide a
faster delivery of value than traditional approaches, or because the
problem area needs to be explored. It also supports incremental
delivery so the solution approach can be evolved over the course of
the
project. This approach provides flexibility in determining the best
solution to a problem or opportunity being explored. A solution
may
begin as a custom developed evolutionary prototype, then
transition
to a customized COTS solution or become an integrated part of
another
product, for example. As As such, on agile projects the solution
approach
can sometimes change during the course of development.
Purpose Alignment Model: The purpose alignment model can
provide guidance regarding the best solution approach to take for a
given business need.
Agile Techniques
4.1A Context for Agile Business Analysis
This chapter of the Agile Extension to the BABOK® Guide provides
analysts
K®
with techniques and tools that will assist them in excelling in the
agile world.
In order for the techniques and skills presented in this section to be
applied
successfully, there are some foundational principles that need to be
understood. These principles are supported by a number of
practical
techniques that can be used by practitioners when they undertake
business
analysis on agile projects.
The principles that guide successful business analysis can be
categorized into
two distinct frameworks:
•
the Discovery Framework and
•
the Delivery Framework.
The Discovery Framework deals with the whats and the whys of the
product.
Effective discovery is supported by three underlying principles:
•
See The Whole,
•
Think as a Customer, and
•
Analyze to Determine What is Valuable.
The Delivery Framework deals with the hows and the whens of the
product.
Effective delivery is supported by four underlying principles:
•
Get Real Using Examples,
•
Understand What is Doable,
•
Stimulate Collaboration and Continuous Improvement, and
•
Avoid Waste.
The following table shows the Agile Extension techniques that
support
each principle
Usage Considerations
Story Decomposition is undertaken progressively. One of the
most
significant differences between agile projects and plan-driven
projects
is in the definition of detailed requirements. In agile projects the
initial
analysis activities will identify the goals, MMFs, and most of the
epics.
The initial set of user stories (probably for the first release of the
product) will be done in the project initiation activities. There is a
clear
understanding that these stories are likely to change and that
the
teams' understanding of the requirements will evolve over time.
Therefore, decomposing to the lowest level of detail is likely to
be a
wasteful activity early in the project.
Advantages
•
This decomposition technique helps avoid the common problem
of
getting lost in the detail of the user stories and losing the big-
picture context.
•
It is important that team members keep the project's goals and
objectives in mind, and while using the decomposition approach
they are able to trace implemented or requested functionality
back
to the driving business objectives.
•
Breaking the product into MMFs and epics helps with release-
level
planning, provides visibility into the development project, and
helps coordinate external program activities such as
organizational
change management and user training.
Disadvantages
•
A common anti-pattern is the temptation to treat story
decomposition as a way of reverting to detailed requirements
up-
front. Ensuring the continued emphasis on just-enough and just-
in-
time, means knowing when to stop decomposing.
.2Story Elaboration
Purpose
Story elaboration is a technique used to define the detailed
design and
acceptance criteria for a user story on a just-in-time/just-enough
basis. Story elaboration is an ongoing activity that is part of the
development process.
Description
Story elaboration is the lowest level of story decomposition and
the
process by which the story sentence is into broken down into
pieces of
work. This is often done by someone on the team who has
strong
business analysis skills, particularly with facilitation and
communication. Story elaboration is the technique through
which
detailed requirements are elicited and communicated to the
project
team.
During each iteration, the team that works on a story schedules
time to
expand on the story to understand the detail. Often (but not
always)
this is completed in a short workshop with the programmers
who will
work on the story, the business SME or customer who needs the
story,
the person who will test the story, and someone acting as a
business
analyst to facilitate and challenge the story. Typically, story
elaboration is undertaken a few days ahead of the development
of the
story.
Story elaboration should be done on an as-needed, just-in-time
basis
for stories that have been determined to be in scope for the
upcoming
iteration
Story elaboration is a communication technique that helps
ensure the
correct product is built. In an agile project, the detailed
requirements
are produced by story elaboration. However, as opposed to plan
driven
approaches, and consistent with the just-in-time philosophy of
agile, the detailed requirements defined during story elaboration
contain only the requirement details for the piece of work that is
to be
completed in the coming release.
Elements
The result of story elaboration is a shared understanding among
the
participants of what the story means and what should be
delivered to
achieve the “Done” state for this story. The role of the business
analyst
in developing and communicating dynamic requirements
necessitates
a high degree of skill in both facilitation and communication.
Some teams uses tasks as a way to communicate their analysis of
the
user story. The outputs of effective story elaboration describe
and/or
document tasks that enable the team to successful deliver the
upcoming iteration. These outputs may include
•
task definitions and breakdowns,
•
examples and scenarios that explain the customer's intent for
the
story,
•
low-fidelity models that clarify the technical or process design
(for
example, data models, and data flow diagrams),
•
screen or report mock-ups,
•
acceptance criteria (test design specifications) to clarify how the
story will be tested, often in the <given><when><then> format
of
behavior driven development,
•
input/output data tables, and
•
other artifacts that will be useful in the development and testing
of
this story.
Usage Considerations
Advantages
•
The major advantage of story elaboration is that it decreases
elicitation time, and potentially documentation, by focusing on
current features. By elaborating on requirements only as they
are
needed, the team avoids the work of eliciting requirements for
features that may never be built or that will need to be changed
by
the time they are ready for implementation.
Disadvantages
•
For those who are relatively new to agile approaches, it can be
difficult to determine the best timing for conducting a story
elaboration. If conducted too early, the information may no
longer
be correct for the given release and will need to be re-elicited.
However, when collected too late, it can delay project team
progression to development.
•
Another challenge to implementing story elaboration is the
ability
to elicit the appropriate level of detail such that the
requirements
can be developed, tested, and compared to acceptance criteria.
.3Story Mapping
Purpose
Story mapping provides a visual and physical view of the
sequence of
activities to be supported by a solution. It uses a two-
dimensional grid
structure to show sequence and groupings of key aspects of the
product on the horizontal dimension, with detail and priority of
stories
on the vertical dimension.
Description
A story map is a tool to assist in creating understanding of
product
functionality, the flow of usage, and to assist with prioritizing
product
delivery (such as release planning).
A story map is designed to be an information radiator, used to
visualize a product's requests in the context of usage and
priority. The
story map is often placed on display for the project team during
release planning sessions. By analyzing the story map, the team
can
more readily identify dependencies generated as a result of the
intended flow through the user stories. The map can also be
used for
risk assessment and management by examining how the stories
will
need to work together in the context of delivering business
value.
Elements
The story map has a central backbone of elements that will make
up
the product. Above this backbone are the large feature sets
(activities)
that need to be delivered over the life of the project. The
backbone is a
sequential set of tasks that need to be enabled by the software.
Below
the backbone are the detailed stories that implement the
specific
pieces of functionality to enable the tasks to be accomplished.
Usage Considerations
Advantages
•
When the larger context of a product is not accounted for, agile
projects can be subject to getting mired in the details with an
inability to effectively string components together to create end-
to-
end business value. Story mapping helps avoid the common
problem of getting lost in the detail of the user stories and the
risk
of losing the big-picture context.
Disadvantages
•
Story mapping can become cumbersome where the product is
very
large and may require building a number of story maps that
cover a
large program of work. While story maps illustrate a flow, they
do
not analyze or illustrate dependencies between requirements
(though they can be used to help facilitate that analysis).
•
Environments that are not process oriented will find story maps
less useful.
.4User Story
User Stories are described in detail in the BABOK® Guide version
2.0
®
(9.33 User Stories). This information found here reflects and
expands
on that information in the context of agile development
approaches.
Purpose
A user story represents a small, concise statement of
functionality
needed to deliver value to a specific stakeholder.
User stories can be used
•
to capture and prioritize user needs,
•
as a basis of estimating and planning product delivery,
•
as a basis for generating user acceptance tests,
•
as a way to monitor progress in delivering of value,
•
as a unit for tracing related requirements,
•
as a basis for additional analysis, and
•
as a unit of project management and reporting.
Description
User stories provide a mechanism
for the product owner to scope, coordinate, and prioritize the
increments of user value for development. A story should be
short
enough to be written on a small paper note card, usually a 3×5
inch
index card or sticky note. Stories may also be recorded in an
electronic
system.
User stories capture stakeholder needs using short, simple
documentation and invite exploration of the requirements
through
conversations, tests, and supplemental requirements
representations
as needed. They are concise and easy to change as stakeholder
needs
are better understood or as those needs evolve.
A commonly used construct for ensuring quality in user stories is
the
INVEST criteria, which call for user stories to be
•
Independent,
•
Negotiable,
•
Valuable,
•
Estimable,
•
Small, and
•
Testable.
Elements
Title (optional)
The title of the story describes an activity that the user wants to
carry
out with the system. Typically, it is an active-verb goal phrase,
similar
to the way use cases are titled.
Description
There is no mandatory structure for user stories; however, the
most
popular format includes three components:
•
a user role or persona [WHO],
•
a necessary action, behaviour, or feature [WHAT], and
•
the benefit or business value received by the user when the
story is
implemented [WHY].
Usage example:
"As a < role>, I need to < behavior > so that < business value >."
An alternative format is: "In order to < business value >, as a <
role >, I
need to < behavior >."
This canonical format can also be used for stories used to
identify
quality attributes. For example:
"As a Security Officer, I need to only allow authorized users to
access
the xyz functionality so I can ensure we enforce abc security
directive".
Conversation
User stories serve as a reminder that the team needs to explore
and
understand the feature described in the story and the value that
it will
deliver to the customer. The story itself doesn't capture
everything
there is to know about the customer need, and the information
implied by the story can be supplemented by analysis models to
promote
shared understanding.
Acceptance Criteria
When a user story is well defined and understood, it is
accompanied by
acceptance criteria. Acceptance criteria define the boundaries of
a user
story and help product owners, customers, or business analysts
to
answer what they need to provide value with the product.
Acceptance criteria help developers identify when to stop adding
more
functionality and to derive tests for verification and validation
purposes. They can also be developed as a story becomes well
understood to enable the development team to verify that the
solution
will meet the user's needs.
Advantages
•
Tied to small, implementable, and testable slices of functionality
facilitating rapid delivery and frequent customer feedback.
•
Easily understandable by stakeholders.
•
Can be developed through a variety of elicitation techniques,
including but not limited to facilitated workshops, contextual
inquiry, and other ethnographic elicitation techniques.
•
User stories are simple enough that people can learn to write
them
in a few minutes, being careful about always delivering business
value.
•
The process of collaborating on defining and exploring stories
builds team commitment and shared understanding of the
business
domain.
•
Stories invite conversation for further decomposition and
exploration.
•
To facilitate estimating, planning, and delivery, many agile teams
supplement stories with analysis models (such as a data model,
business rules, user acceptance tests, screen mock-ups or
prototypes, context diagram, and state diagram).
Disadvantages
•
This conversational approach can challenge the team, since they
do
not have all the answers and detailed specifications up front.
•
Too many stories can inflate the backlog.
•
Large, chunky stories (epics) can be vague and difficult to use
without breaking them down into small stories.
•
Stories spawn more stories via decomposition so the information
must be organized to ensure it is current and relevant (called
pruning or grooming).
•
The collection of stories needs to be managed (for example, with
backlog management).
•
Stories require context. If the team doesn't trace stories back
(through validation) or supplement them with higher-level
analysis
and vision artifacts, then the team can lose sight of the big
picture.
•
Some practitioners can be confused about the difference
between
use cases, user stories, and story techniques.
.5Storyboarding
Purpose
Storyboarding is used in conjunction with other techniques such
as
use cases, user stories, and prototyping to detail visually and
textually
the sequence of activities summing up different user interactions
with
the system or business.
Storyboarding serves
•
to elicit, elaborate, organize, and validate the requirements,
•
to communicate to developers what needs to be built,
•
to assisting in user interface design,
•
to show different variations of the proposed solution,
•
to align stakeholders with the vision of the proposed solution,
and
•
as an input to tests.
Description
Storyboards (also known as dialogue map, dialog hierarchy, or
navigation flow) use representative images and text to describe
a task,
a scenario, or a story. It can also be used with prototyping to
represent
parts of the system that are well understood or expensive and
unnecessary to produce via formal prototypes.
When used to describe the interaction with the system, the
storyboard
shows how screens will look and how they will flow from one to
another. When used to describe business organization, the
storyboard
shows the interaction with a business process such as back
office.
Storyboards can be developed using white-boards and sticky
notes or
using software.
Elements
Storyboards can be created in a workshop environment with
relevant
Stakeholders
Preparation
1. Identify main scenarios within the scope of the project. This
can be
derived from use cases or user stories or can be identified in a
customer visit or an information-gathering session with experts.
2. Select the scenarios that need to have a storyboard
developed.
While some scenarios need to be detailed in a storyboard, others
are obvious and can be omitted such as alternate scenarios and
exceptions.
3. Identify participants and schedule the session.
4. Arrange room and equipment such as flip charts, markers,
glue,
scissors, rulers, printers, and access to the internet.
Session
1. Have attendees create illustrations for the storyboards of the
selected scenarios.
2. Enhance storyboard illustrations with textual information such
as
optional interactions, unavailable interactions, further
stakeholder
requests not associated with the primary scenario, and general
notes associated with a specific step.
3. Make sure each storyboard stands on its own by adding
required
explanations as text.
Wrap up
At the end of the session, the business analyst reaches
consensus on
the high level flow of the developed storyboards.
After the workshop, the company templates may be used to
formally
document the outcome of the session, adding additional
elements to
the storyboards such as storyboard identification, description,
user,
trigger, input, output, and issues.
Usage Considerations
Advantages
•
Storyboarding can significantly reduce abstractness caused by
other techniques such as use cases and user stories.
•
Storyboards can be produced quickly and at a very low cost
compared to other techniques such as prototypes.
•
The intuitive nature of the storyboard encourages stakeholder
participation.
Disadvantages
•
Different look and feel than the final product.
•
Easy to get bogged down on how, rather than why.
4.5.3Analyze to Determine What is Valuable
The agile approach continuously assesses and prioritizes
business
value to ensure that the most valuable work is delivered at any
point in
time, always using the end customer perspective. It is also
imperative
to question the purpose behind requirements, challenging those
requirements that do not support the business goals. Agile
approaches
enable the art of maximizing the amount of work not done,
something
essential to deliver valuable software early and continuously.
The
techniques outlined in this section facilitate the valuation of
product
needs on an on-going basis.
The following sections describe commonly used techniques for
this
principle:
•
Backlog Management,
•
Business Value Definition,
•
Kano Analysis,
•
MoSCoW Prioritization, and
•
Purpose Alignment Model.
There are other techniques within the Agile Extension to the
BABO
K®
Guide, the
BABOK® Guide, and other ad hoc techniques that can be
K®
utilized here as well.
.1Backlog Management
Purpose
The backlog is a wish list of requests for features to be included
in a
product, and is the main mechanism for managing requirements
on an
agile project.
Description
The product backlog is established at the beginning of a project.
The
backlog is a fluid collection of stories that evolves over the
course of
the project as more is learned about the product and its
customers.
The product owner is responsible for ordering the items on the
backlog based on business value, feature importance, or other
relevant
criteria. When managing a backlog, items should be ordered
such that
the most important items occur at the top of the list and are
ordered
based on descending priority.
Elements
Items in the Backlog
The backlog can contain user stories, use cases, features,
functional requirements, and quality attribute stories as well as
items that have been added by the team to support
development of the requirements such as technical
infrastructure. To aid in ordering the backlog, items should be
expressed in such a way that the business value of the items
is clear. Product risk mitigation items may also get added to the
backlog as stories or pieces of work to be done.
Appropriate level of detail
Items with high order in the backlog will be developed in near-
term
releases, so they need to be detailed enough to allow the
development
team to estimate them with accuracy and be able to decompose
them
into the tasks needed to develop them, if needed. Items with
lower
priority can remain high-level and less precise until they rise in
the
order and need to be specified in more detail.
Estimation Accuracy
Items with high order in the backlog need to be estimated with
enough
accuracy to use them for planning releases. Items in lower order
also
need to be estimated, but with less accuracy since they are often
less
detailed. Estimates for time to complete items is often
maintained
within the backlog itself.
Prioritization
Items in the backlog are ordered relative to each other. Ordering
can
be established using numbering, value points, high/medium/low,
or
any other prioritization technique. The order of items on the
backlog is
likely to change over the course of the project, especially as the
product evolves and the team receives feedback from the
stakeholders
and customers. It is important to note that ordering near term
items is
valuable, but putting a lot of effort into ordering the backlog far
into
the future can be a wasteful activity because the farther out
backlog
items are subject to change.
Managing Changes to the Backlog
The backlog is the main mechanism for both managing change to
the
requirements on an agile project and for controlling scope.
When new
or changed requirements are identified, they are added to the
backlog
and ordered relative to the other items. The backlog is also used
to
track and manage reported defects or bugs.
Rigorous ordering of the backlog
allows the team to control the scope of the project and releases.
The product owner role is
responsible for managing the backlog, adding and ordering new
or
changed items, removing completed items, and revising the
order on
an ongoing basis. This process is sometimes referred to as
pruning or
grooming the backlog.
.2Business Value Definition
In order for a project to deliver value, the project team must first
be
able to identify whether a request is actually valuable to the
organization. Without a clear understanding of business value, it
is
possible for the project to deliver something that sounds
valuable but
is actually not.
A project creates business value when it delivers anything that
contributes to an organization's stated primary goals, for
example
•
increasing or protecting revenue,
•
reducing or avoiding costs,
•
improving service,
•
meeting regulatory or social obligations,
•
implementing a marketing strategy, and
•
developing staff.
Business value should be expressed as a range or set of benefits.
The
evolution of clarity about business value will develop
understanding of
why the project is needed. The most important aspect of
expressing
business value is the conversation that generates the shared
understanding.
Examples of good business value statement are:
•
This project will generate an additional $20 million in profit. The
model is based on the following assumptions:* We maintain 25%
of
the sales of existing product XYZ ($150 million a year).
•
The total cost of designing, producing, and marketing the
product is
$7.5 million.
•
Our product is first to market.
•
We are able to release the product in the spring.
.3Kano Analysis
Purpose
Kano analysis helps an agile team understand which product
characteristics or qualities will prove to be a significant
differentiator
in the marketplace and help to drive customer satisfaction.
Description
Kano analysis assists in identifying features that will have the
greatest
impact on customer satisfaction, either because they are
exceptionally
important or because their absence will cause intense
dissatisfaction.
This helps the team determine which features are most
important to
implement before releasing a product to market.
.4MoSCoW Prioritization
Purpose
To identify the most critical set of features or stories that will
deliver
business value and produced a sequenced, prioritized list.
Description
MoSCoW is a method to prioritize stories (or other elements) in
incremental and iterative approaches. MoSCoW provides a way
to
reach a common understanding on relative importance of
delivering a
story or other piece of business value in the product.
All stories in the backlog are valuable, but often not all of them
can be
delivered at the same time. MoSCoW provides a mechanism for
prioritizing stories in a backlog across multiple releases.
Prioritization
is important for any software development approach, but agile
approaches cannot succeed without constant and frequent
prioritization of work.
MoSCoW gets its name from an acronym formed by the
following
classifications of priority: Must have, Should have, Could have,
and
Won't have. The letter o is added to make the acronym
pronounceable.
The classifications are as follows:
•
Must: The
user stories that add significant value and constituent
the Minimal Marketable Feature set.
•
Should: The user stories that add distinct value, but are not
required features.
•
Could: The user stories that add some value, but have minimal
impact on features.
•
Won't: The user stories that add little to no value, and will not be
included as features.
There is an expectation that priorities can change over the life of
a
project, and priorities are reassessed on a regular basis.