Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products. Z. Racheva, M. Daneva, L.

Size: px
Start display at page:

Download "Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products. Z. Racheva, M. Daneva, L."

Transcription

1 2 International Workshop on Software Product Management (IWSPM) Barcelona, 9 September 2008 Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products Z. Racheva, M. Daneva, L. Buglione

2 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 3

4 Agile Requirements Engineering active customer participation iterative and incremental build-up process accommodation of changes 4

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 5

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 6

7 The extended role of the Product Manager (PM) 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. 7

8 Research Approach Step 1 : Systematic literature review. Step 2 : Codding. Step 3 : Conceptual model 8

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 9

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 10

11 Prioritization approaches in agile projects (2) 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 11

12 Agile Prioritization Approaches: Summary Two main groups: Techniques directly comparing requirements pairwise 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 12

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 13

14 Conceptual model of agile requirements prioritization from client s perspective (2) 14

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 15

16 Issues and solutions (2) 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) 16

17 Issues and solutions (3) 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 17

18 Issues and solutions (4) 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) 18

19 Issues and solutions (5) 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 19

20 Issues and solutions (6) Issue 6 Defining the scope of next iteration Solution 6 Apply optimization-based, systematic approach, e.g. real-options analysis 20

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 21

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 22

23 Thanks for your attention! Gracias por vuesta atencion! 23

24 Z. Racheva: M. Daneva: L. Buglione:

25 Traditional vs. Agile prioritization Aspects of the prioritization process When is prioritization performed Traditional (waterfall) development Typically once, after the analysis phase and before implementation Agile Before each iteration, at planning phase, or during iteration Who is responsible Goals/Purpose of the prioritization Developer, with participation of project manager and other stakeholders. Project management-vehicle 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. Vehicle to make sure delivered Business value is maximized at each iteration; Scope definition vehicle at iteration level 25