Context: An inadequate requirements specification activity acts as a catalyst to other problems, such as low team productivity and difficulty in maintaining software. Although Agile Software Development (ASD) has grown in recent years, research pointed out several limitations concerning its requirements engineering activities, such as Software Requirements Specification (SRS) provided in high level and targeted to the customer, lack of information required to perform design activities and low availability of the customer. To overcome these issues, the RSD (Requirements Specification for Developers) approach was proposed to create an SRS that provides information closer to development needs. In addition, existing literature reviews identify a demand for more empirical studies on the requirements specification activity in ASD. Objective: Face to this, this work presents the evaluation of the RSD approach with respect to how it affects the teamwork and to identify its strengths and limitations. Methods: This evaluation was performed by means of two industrial case studies conducted using a multiple-case design, focusing on software engineers as the analysis unit. Data were collected during 15 months from documents, observations, and interviews. They were triangulated, analyzed, and synthesized using techniques of grounded theory. Results: The findings pointed out that the readability of SRS was compromised when several requirements are specified in the same RSD artifact. Evaluation also indicated the need of prioritization and categorization of the acceptance criteria, a tool for creating, searching and tracing the artifacts, and obtaining acceptance tests from acceptance criteria. On the other hand, the findings showed that the practices used to specify requirements using the RSD approach have the potential to produce a more objective SRS, tailored for the development team. Conclusion: As a consequence, the structure of the RSD artifact was considered as a factor that improved the team performance in the two case studies.
- Agile software development
- Empirical software engineering
- Software requirements specification