Planning for non-functional requirements

Objectives

Improve estimation, prioritization and scheduling of non-functional requirements implementation.

Abstract

One of the key strengths of agile development processes is that they are driven by business imperatives; they carefully assess the business value of functional requirements, then prioritize and plan their implementation accordingly. A critical element of this is that it is the business customer who ultimately decides priority and hence the scheduling of the requirements.

Getting a business customer to prioritise functional requirements can be a challenge. Getting them to specify and prioritise non-functional requirements is a dark art. Typical customers want a system that is 'fast', 'reliable', 'secure' and 'easy to change'. In this workshop, we will trial alternative techniques for planning and prioritising non-functional requirements. We will specifically explore whether non-functional requirements can be captured in traditional user stories, creating value, or whether they should be expressed in other ways, incurring costs if the project fails to meet them. The session organizers will propose techniques of both types. The session aims to demonstrate the strengths and weaknesses of each.

In the simulation, competing teams are assigned a strategy for analyzing non-functional requirements. These are elicited in several iterations. As the simulation progresses, adherence to the assigned strategy is relaxed and participants are encouraged to supplement them with techniques they have found useful in their own practice. The session leaders will act as customers and be a bit awkward so as to challenge the validity of the approaches.

We are looking for some good strategies for dealing with this problem and we will be happy to achieve this whether the feedback is that our strategies are good or whether a participant brings a good strategy. We hope to produce a paper that summarises the various strategies and in what context(s) they might be considered 'good'.

Benefits of participating

Gain insight into rationally planning effort invested into realizing non-functional requirements. Share you experiences of dealing with planning non-functional requirements with other practitioners.

Note: this session requires a minimum of 8 participants to execute successfully.

Session Outline

  • 0 - 10min: presentation of alternative strategies and techniques
  • 10 - 15min: splitting into groups. Each group is assigned a strategy
  • 15 - 25min: a case study is explained as the topic of a simulation game
  • 25 - 85min: simulation
  • 85 - 105min: evaluation in groups
  • 105 - 120 min: discussion
History

The idea for this session grew from a series of workshops Yo ran on eliciting security requirements. Paul surmised that the techniques would be applicable to a wider range of non-functional requirements. This observation was the topic of a discussion at the Agile Open conference earlier this year.