A Survey on Software Requirements Engineering in Information Technology Institutions - Akbar, Muhammad Tulus; Siregar, Maria Ulfah (Elinvo (Electronics, Informatics, and Vocational Education), 2024)
Requirements engineering is a crucial phase in software development. In theory, requirements gathering should follow structured and systematic steps to ensure all requirements are complete, consistent, and clear. However, there is a lack of research in real-world contexts, particularly in small and medium-sized software development organizations, which often face challenges related to human resources, infrastructure, and financial constraints. This study aims to explore the practices of requirements engineering in software development agencies. A qualitative approach was used, employing a narrative (descriptive) research design. Data were gathered through interviews, observations, and documentation from six institutions involved in developing various types of software. The data were then analyzed using Yin's Five Cycle content analysis method, supported by Nvivo 12 software. The findings reveal that the time required for gathering requirements varies between institutions (four institutions take 1 week to 1 month, two take 1 to 3 months, and two take over 3 months). Regarding the analysts' backgrounds, all institutions consider requirements elicitation a critical stage in software development, leading them to hire analysts with IT educational backgrounds, most of whom possess significant work experience. This is further evidenced by the fact that all institutions consider staff experience when forming requirements analysis teams and assigning senior staff to specific roles. There is limited practical variation in the sources of requirements and elicitation techniques. All institutions rely on objectives, domain knowledge, stakeholders, and the operational environment as sources of requirements. As for elicitation techniques, they primarily use interviews, facilitated meetings, and document reviews.