Investigating requirements volatility during software development projects : an empirical study
- Publication Type:
- Issue Date:
Changes to software requirements are inevitable during the development process. Despite advances in software engineering over the past three decades, requirements changes are a source of project risk in software development, particularly when businesses and technologies are evolving rapidly. This so-called requirements volatility has attracted much attention, but its extent and consequences are not well understood. The research literature lacks empirical studies investigating requirements volatility, particularly its underlying causes and consequences, and there are no effective strategies to deal with the associated problems throughout software development. We address these issues with a long-term case study in an industrial software development setting to identify and characterise the causes of requirements volatility, its impacts on the software development process, and the strategies used by current system development practitioners to deal with requirements volatility problems. We analysed requirements change request data from two software project releases, and investigated the organisation's handling of requirements changes. Our data include the change request database, project documents, interviews, observations, and regular discussions with the key informants from the project members. We used a combination of qualitative and quantitative research techniques. We first present a critical review of the literature on requirements volatility issues, from which an analytic synthesis for a currently lacking comprehensive coverage of requirements volatility phenomena is derived. The review clarifies the terms used, the sources and adverse impacts of requirements volatility, and the strategies available to current software development teams. We also provide a detailed description of a repeatable research design that researchers and practitioners could use to conduct similar investigation of requirements volatility in any industry setting. We developed requirements change classifications from the change request data. Project members also classified requirements change requests using a card sorting technique. The resulting categories play a vital role in the empirical analysis of several aspects of requirements volatility. Its extent can be characterised by such classification attributes as the types of change (addition, deletion, and modification), reasons for change, and change origin. The classification is useful in analysing the cost of requirements change in terms of rework or effort required. Based on an empirical analysis using the proposed classification, effective strategies were defined to match organisational needs. The organisation was able to use these results to improve its change control process and its change request form, thereby improving management and reducing the impacts of requirements volatility.
Please use this identifier to cite or link to this item: