Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting...
Transcript of Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting...
Supporting the Dynamic Reprioritization of Requirements in Agile Development of
Software Products
Z. Racheva, M. Daneva, L. Buglione
2° International Workshop on Software Product Management (IWSPM)
Barcelona, 9 September 2008
2
3
Agenda
1. Agile Requirements Engineering 2. Agile Product Management 3. Review of Requirements Prioritization Techniques
in Agile Projects 4. Conceptual model of agile requirements
prioritization 5. Issues and Solutions
4
Agile Requirements Engineering
active customer participation
iterative and incremental build-up process
accommodation of changes
5
The Role of Customers in Agile RE
An integral part of the team / on-site with the team. writes user stories, discusses requirements with
programmers responsible for business decisions, including
prioritizing user stories evolves the requirements tests the software to confirm it works as expected
6
Agile RE from a Product Manager's perspective
custom programming environments - on-site customer
software vendors - product manager
Note: both serve as the customer representative in planning and requirements definition
7
• PMs anticipate the requirements (instead of reacting to them)
• PMs can tie the actual work being done to market drivers
• PMs can track project progress, so that they set expectation of their clients and executives.
The “extended” role of the Product Manager (PM)
8
Research Approach
Step1: Systematic literature review.
Step2: Codding.
Step3: Conceptual model
9
Prioritization approaches in agile projects
Why do we call these approaches agile:
we found evidences about their use in an iterative and incremental process, following an agile methodology like:
SCRUM
XP
Crystal
10
Prioritization approaches in agile projects (1)
Round-the-group prioritization Ping Pong Balls $100 allocation Multi-voting system MoSCoW (must-should-could-won‘t) Pair-wise analysis Weighted criteria analysis
11
Analytic Hierarchy Process Dot voting Binary Search Tree Ranking based on product definition Planning Game Quality functional deployment QFD Wiegers’ matrix approach Mathematical programming techniques for release planning
Prioritization approaches in agile projects (2)
12
Agile Prioritization Approaches: Summary
Two main groups: Techniques directly comparing requirements pair-
wise e.g. Binary search tree, AHP, pair-wise analysis
Techniques that group requirements depending on their importance e.g. MoSCoW, Planning Game, QFD, 100$ allocation
13
Conceptual model of agile requirements prioritization from client‘s perspective (1)
What we did: identified main processes and actors identified dependencies and information
sources
14
Conceptual model of agile requirements prioritization from client‘s perspective (2)
15
Issues and solutions (1)
Issue 1 – related to step 2 – Business Value estimation at the beginning of iteration
Solution 1 – Make explicit the decision criteria by attaching
additional parameters to a feature: - weight among siblings - dependencies (e.g. chronological, architectural) - certainty factor - mirrors the certainty about the need to
implement the feature at the present moment
16
Issue 2 – related to step 2 – Not all Features create Business Value (chronological
dependency) Solution 2. 1
– Consider such user stories as married to the story that creates (max) business value
Solution 2. 2 – Introduce time-ranking (adding Dependency –
parameter in the description of features)
Issues and solutions (2)
17
Issue 3 – Quality attributes can not be separated from other
features
Solution 3 – Consider them as functional requirements, where the
main criteria is the certainty parameter
Issues and solutions (3)
18
Issue 4 – Variation of current BV
Solution 4 – Estimate current BV before each iteration as:
Business Value feature n, iteration i = f(initial business value, current cost estimate)
Issues and solutions (4)
19
Issue 5 – Choice of prioritization technique
Solution 5 – Consider following criteria:
• number of items to be prioritized, • number of stakeholders involved, • level of requirements volatility, • sources of information available
Issues and solutions (5)
20
Issue 6 – Defining the scope of next iteration
Solution 6 – Apply optimization-based, systematic approach,
• e.g. real-options analysis
Issues and solutions (6)
21
Conclusions
Prioritization is pushed to product managers (customers), but this is not without problems
Partial solutions do exist, but their applicability in context is under-researched
22
What’s next?
Develop a decision-support vehicle that helps clients complement value-based and cost-based prioritization criteria
Investigate project context features that influence the prioritization
Work on more systematic and objective agile prioritization approach
23
Thanks for your attention! ¡Gracias por vuesta atencion!
Z. Racheva: [email protected] M. Daneva: [email protected] L. Buglione: [email protected]
25
Traditional vs. Agile prioritization
Aspects of the prioritization process
Traditional (waterfall) development Agile
When is prioritization performed
Typically once, after the analysis phase and before implementation
Before each iteration, at planning phase, or during iteration
Who is responsible Developer, with participation of project manager and other stakeholders.
Client/customer is the main driver for choosing, having an aid by the Scrum master (or Agile PM) about the technical feasibility of a schedule.
Goals/Purpose of the prioritization
Project management-vehicle Vehicle to make sure delivered Business value is maximized at each iteration; Scope definition vehicle at iteration level