Lec 3

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 42

Requirements Prioritization

Lecture 03

1
The Decision-Making Process

• In everyday life, we make decisions, e.g., when


buying a DVD-player, food, a telephone, etc
• Usually, we do not have more than a couple of
choices to consider. Even with just a couple of
choices, decisions can be difficult to make

2
Need for Prioritization

• When having tens, hundreds or even


thousands of alternatives, decision-
making becomes much more difficult
• One of the keys to making the right
decision is to prioritize between different
alternatives. It is often not obvious which
choice is better, because several aspects
must be taken into consideration

3
Requirements Prioritization

• When developing software systems,


similar trade-offs must be made
• The functionality that is most important
for the customers might not be as
important when other aspects (e.g. price)
are factored in
• We need to develop the functionality that
is most desired by the customers, as well
as least risky, least costly, and so forth

4
Requirements Prioritization

•The quality of software products is


often determined by the ability to
satisfy the needs of the customers
and users
•So, it is very important to include
those requirements in the product,
which are really needed by the
customers
5
Requirements Prioritization

•Most software projects have more


candidate requirements than can be
realized within the time and cost
constraints
•Prioritization helps to identify the
most valuable requirements from this
set by distinguishing the critical few
from the trivial many
6
Requirements Prioritization

• Act of giving precedence or priority to one


item over another item
• Requirements prioritization means giving
precedence to some requirements over
other requirements based on feedback
from system stakeholders

7
Benefits of Requirements Prioritization

• Stakeholders can decide on the core


requirements for the system
• Planning and selection of ordered,
optimal set of software requirements for
implementation in successive releases
• Helps in trade-offs of conflicting
constraints such as schedule, budget,
resources, time to market, and quality

8
Benefits of Requirements Prioritization

• Balances the business benefit of each


requirement against its cost
• Balances the implications of requirements
on the software architecture and future
evolution of the product and its
associated cost
• Selects only a subset of the requirements
and still produce a system that will satisfy
the customers

9
Benefits of Requirements Prioritization

• Get technical advantage and optimize


market opportunity
• Minimize rework and schedule slippage
(plan stability)
• Handle contradictory requirements, focus
the negotiation process, and resolve
disagreements between stakeholders

10
Benefits of Requirements Prioritization

• Establish relative importance of each


requirement to provide the greatest value at the
lowest cost

11
Requirements Prioritization

• Prioritization can be done arbitrarily, as


we discussed in the requirements
negotiations
• Prioritization should be based on certain
criteria like objectives, risks, quality
factors, or viewpoints of stakeholders

12
Requirements Prioritization

• “The challenge is to select the ‘right’


requirements out of a given superset of
candidate requirements so that all the
different key interests, technical
constraints and preferences of the critical
stakeholders are fulfilled and the overall
business value of the product is
maximized”
• Ruhe et. al.

13
Prioritization Process

• Prioritization is an iterative process and


might be performed at different
abstraction levels and with different
information in different phases during the
software lifecycle
• Prioritization techniques can roughly be
divided into two categories:
• Methods
• Negotiation approaches

14
Prioritization Methods

• The methods are based on quantitatively


assigning values to different aspects of
requirements
• Quantitative methods make it easier to
aggregate different decision variables into an
overall assessment and lead to faster decisions

15
Negotiation Approaches

• Negotiation approaches focus on giving


priorities to requirements by reaching
agreement between different
stakeholders
• They are based on subjective measures
and are commonly used when analyses
are contextual and when decision
variables are strongly interrelated

16
• In addition, one must be mindful of the social
nature of prioritization. There is more to
requirements prioritization than simply asking
stakeholders about priorities
• Stakeholders play roles and should act
according to the goals of that roles, but they are
also individuals with personalities and personal
agendas, and there are organizational issues
also
• These issues must be addressed while
prioritizing requirements

17
Aspects of Prioritization

• Requirements can be prioritized taking


many different aspects into account
• An aspect is a property or attribute of a
project and its requirements that can be
used to prioritize requirements
• Often aspects interact and changes in
one aspect could result in an impact on
another aspects

18
Aspects of Prioritization

• Importance
• The stakeholders should prioritize which
requirements are most important for the
system. Importance is multifaceted, and
could be urgency of implementation,
importance for product architecture, strategic
importance

19
Aspects of Prioritization

• Penalty
• It is possible to evaluate the penalty that is
introduced if a requirement is not fulfilled.
Penalty is not just the opposite of importance

20
Aspects of Prioritization

• Cost
• The implementation cost is usually estimated
by the developing organization. Measures
that influence cost include: complexity of the
requirement, the ability to reuse existing
code, the amount of testing and
documentation needed
• Cost is often expressed in terms of staff
hours

21
Aspects of Prioritization

• Time
• Time is influenced by many other factors
such as degree of parallelism in
development, training needs, need to
develop support infrastructure, complete
industry standards

22
Aspects of Prioritization

• Risk
• Every project carries some amount of risk
• Volatility
• Volatility of requirements is considered a risk
factor and is sometimes handled as part of
the risk aspect. A point of view is to handle
them separately

23
Aspects of Prioritization

• Other aspects
• Financial benefit, strategic benefit,
competitors, competence/resources, release
theme, ability to sell

• It is important for stakeholders to develop


a list of aspects to help in decision-
making process
• Combining different aspects

24
Prioritization Techniques

• The purpose of any prioritization is to assign


values to distinct prioritization objects that allow
establishment of a relative order between the
objects in the set. In our case, the objects are
the requirements to prioritize

25
Prioritization Techniques

• The prioritization can be done with


various measurement scales and types
• The least powerful prioritization scale is
the ordinal scale, where the requirements
are ordered so that it is possible to see
which requirements are more important
than others, but not how much more
important

26
Prioritization Techniques

• The ratio scale is more powerful since it


is possible to quantify how much more
important one requirement is than
another
• An even more powerful scale is the
absolute scale, which can be used in
situations where an absolute number can
be assigned

27
Analytical Hierarchy Process (AHP)

• AHP is a systematic decision-making


method that has been adapted for
prioritization of software requirements
• It involves comparing all possible pairs of
hierarchically classified requirements, in
order to determine which has higher
priority, and to what extent

28
Analytical Hierarchy Process (AHP)

• The total number of comparisons to


perform with AHP are n * (n-1)/2; where n
is the number of requirements; at each
hierarchy level, which results in a
dramatic increase in the number of
requirements
• Studies have shown that AHP is not
suitable for large number of requirements

29
100-Dollar Test

• One should only perform the prioritization once


on the same set of requirements, since the
stakeholders might bias their evaluation the
second time around if they do not get one of
their favorite requirements as a top priority

30
Numerical Assignment (Grouping)

• It is the most common prioritization technique,


and is based on grouping requirements into
different priority groups
• The number of groups can vary, but in practice,
three groups are very common

31
Numerical Assignment (Grouping)

• When using numerical assignment, it is


important that each group represents
something that the stakeholders can
relate to (e.g. critical, standard, optional),
for a reliable classification
• Using relative terms such as high,
medium, and low will confuse the
stakeholders

32
Ranking

• As in numerical assignment, ranking is


based on an ordinal scale but the
requirements are ranked without ties in
rank
• This means that the most important
requirement is ranked 1 and the least
important is ranked n (for n requirements)

33
Top-Ten Requirements

• In this approach, the stakeholders pick


their top-ten requirements (from a larger
set) without assigning an internal order
between the requirements
• This makes the approach especially
suitable for multiple stakeholders of equal
importance

34
Top-Ten Requirements

• The reason to not prioritize further is that


it might create unnecessary conflict when
some stakeholders get support for their
top priority and others only for their third
priority
• It is not advisable to take average across
all stakeholders since it might lead to
some stakeholders not getting any of
their top requirements

35
Summary of Presented Techniques

• AHP
• Scale: Ratio
• Granularity: Fine
• Sophistication: Very Complex
• 100 Dollar Test
• Scale: Ratio
• Granularity: Fine
• Sophistication: Complex

36
Summary of Presented Techniques

• Ranking
• Scale: Ordinal
• Granularity: Medium
• Sophistication: Easy
• Numerical Assignment
• Scale: Ordinal
• Granularity: Coarse
• Sophistication: Very Easy

37
Summary of Presented Techniques

• Top-Ten
• Scale: -
• Granularity: Extremely Coarse
• Sophistication: Extremely Easy

38
Hints and Tips on Requirements
Prioritization
• A general advice is to use the simplest
appropriate prioritization technique and
use more sophisticated ones when a
more sensitive analysis is needed for
resolving disagreements or to support the
most critical decisions
• More sophisticated techniques, generally,
are more time consuming, the simplest
possible technique ensures cost effective
decisions
39
Hints and Tips on Requirements
Prioritization
• The trade-off is to decide exactly how “quick
and dirty” the approach can be without letting
the quality of the decisions suffer
• Commercial tools are available that facilitate
the use of sophisticated techniques

40
Involvement of Stakeholders

• One Customer
• Several Known Customers
• Mass Market
• Concept of personas
• Perspectives of customers, developers, and financial
representatives

41
Requirements Prioritization Issues

• Abstraction level
• Reprioritization
• Non-functional requirements
• Introducing prioritization into an
organization
• Evaluating prioritization
• Using the results of requirements
prioritization
Home Task
42

You might also like