+ All Categories
Home > Documents > Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting...

Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting...

Date post: 04-Aug-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
25
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
Transcript
Page 1: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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

Page 2: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

2

Page 3: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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

Page 4: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

4

Agile Requirements Engineering

 active customer participation

 iterative and incremental build-up process

 accommodation of changes

Page 5: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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

Page 6: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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

Page 7: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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)

Page 8: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

8

Research Approach

Step1: Systematic literature review.

Step2: Codding.

Step3: Conceptual model

Page 9: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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

Page 10: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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

Page 11: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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)

Page 12: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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

Page 13: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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

Page 14: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

14

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

Page 15: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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

Page 16: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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)

Page 17: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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)

Page 18: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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)

Page 19: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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)

Page 20: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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)

Page 21: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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

Page 22: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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

Page 23: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

23

Thanks for your attention! ¡Gracias por vuesta atencion!

Page 24: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

Z. Racheva: [email protected] M. Daneva: [email protected] L. Buglione: [email protected]

Page 25: Supporting the Dynamic Reprioritization of Requirements in Agile … · 2008-09-09 · Supporting the Dynamic Reprioritization of Requirements in Agile Development of Software Products

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


Recommended