On the Experiences of Practitioners with Requirements Elicitation Techniques - Mesquita, Rodrigo; Silva, Geovana; Canedo, Edna (Anais do Simpósio Brasileiro de Engenharia de Software (SBES), 2023)
Requirements elicitation is a crucial process in software engineering, which involves identifying and understanding the needs of stakeholders to define system requirements. Several techniques are used for requirements elicitation, each with unique advantages, disadvantages, and challenges. This paper presents the findings of a survey conducted among 33 practitioners in the software development community to investigate their experiences with requirements elicitation techniques. The results revealed that practitioners find the elicitation process highly challenging due to difficulties managing the relationship between the development team and the client, understanding complex business processes, and the lack of knowledge among stakeholders. The survey also assessed the participants’ familiarity with various elicitation techniques. The most well-known techniques were brainstorming, data analysis, use cases, interviews, user stories, and prototyping. In contrast, techniques such as ethnography, Quality Function Deployment (QFD), Joint Application Development (JAD), blueprint, and laddering were less recognized. When providing the pros and cons of some techniques, participants considered techniques’ clarity, speed of use, resource cost, and stakeholder involvement. This research contributes to the field by highlighting challenges, providing insights into practitioner experiences, and guiding informed decision-making in requirements elicitation.