Large software projects have many stakeholders. In order for the resulting software system and architecture to be aligned with the enterprise and stakeholder needs, key stakeholders must be adequately consulted and involved in the project. This work proposes the use of genetic algorithms to identify key stakeholders and their actual influence in requirements elicitation, given the stakeholders’ requirements and the actual set of requirements implemented in the project. The proposed method is applied to a large real-world software project. Results show that search is able to identify key stakeholders accurately. Results also indicate that many different good solutions exist. This implies that a stakeholder has the potential to play a key role in requirements elicitation, depending on which other stakeholders are already involved. This work demonstrates the true complexity of requirements elicitation – all stakeholders should be consulted, but not all of them should be treated as key stakeholders, even if they appear to be significant based on their role in the domain.
Large software projects are complex. They involve thousands, or even hundreds of thousands of stakeholders (Cleland-Huang & Mobasher, 2008). These stakeholders range from customers who pay for the software system, to users who interact with the system, developers who build and maintain the system, and legislators who impose rules on the development and operation of the system. They have different and sometimes conflicting requirements. They also have different degrees of influence on the project (Glinz & Wieringa, 2007).
In order for the resulting software system and architecture to be aligned with the enterprise and stakeholder needs, the stakeholders’ voices must be heard (Lim & Finkelstein, 2011). In addition, key stakeholders – stakeholders who contribute significant and valuable information to the requirements elicitation process – must be identified and engaged throughout the project (Gause & Weinberg, 1989; Glinz & Wieringa, 2007). Nevertheless, stakeholders can lack knowledge, interest or time to be adequately involved in the project (Alexander & Robertson, 2004). Previous studies have found that most developers experience difficulty identifying and engaging with key stakeholders (Alexander & Robertson, 2004; Gause & Weinberg, 1989). As a result, software projects often fail due to the omission of these stakeholders and lack of input from them (Lim, 2010).
This paper focuses on discovering key stakeholders who influence the outcome of requirements elicitation. In large projects, this is a known challenge (Cheng & Atlee, 2007). To consider all stakeholders would be impractical and often infeasible. However, considering only a subset of stakeholders is risky. As requirements are elicited from stakeholders, involving the wrong set of people gives rise to incomplete requirements, which leads to the development of the wrong product. Previous work proposes the use of social network analysis – a technique increasingly being used in software engineering – to identify and prioritise stakeholders (Lim, Quercia, & Finkelstein, 2010). However, such approaches make the assumption that the stakeholders’ influence in the project is determined solely by their position in the network, which does not always hold (Lim et al., 2010). Exactly how to determine if an individual is a key stakeholder is not well understood.
This work proposes the use of genetic algorithms to identify key stakeholders and their actual influence in a project, given the stakeholders’ requirements priorities and the actual priorities of the requirements that are implemented in the project. The aim of the work is to increase the understanding of key stakeholders using search-based techniques. In addition, the proposed method can be used in an incremental development process in which the analyst applies the method to the data collected from the previous increment, and use the results to inform elicitation in the current increment. This is one of the first applications of search-based techniques to analyse software project stakeholders. Stakeholder analysis is an ideal candidate for genetic algorithms, because the direct calculation of influence is not feasible as the search space is vast, noisy and multimodal, yet the evaluation of candidate solutions is fast (Goldberg, 1989). The proposed method is applied to data collected from a large real-world software project. The results are analysed using quantitative data collected from project documentation and stakeholder interviews.
The rest of the paper is organised as follows. The next section describes the background and related work, and the section after that introduces the proposed search-based technique for stakeholder analysis. The evaluation section describes the research questions, the large-scale software project used in the study, and the experiments. It also reports the results of the study. The final sections discuss future work and conclude.