On the Challenges to Documenting Requirements in Agile Software Development: A Practitioners’ Perspective
Resumo
Agile Software Development (ASD) is an iterative and incremental methodology designed to accelerate project deliveries. In this dynamic environment characterized by constant changes, the task of documenting requirements becomes increasingly challenging, leading to the emergence of the technical debt issue. This research involved a survey of 84 practitioners to identify the techniques and practices employed in documenting software requirements within ASD teams, as well as their perceptions of the documentation process and the challenges, regarding what factors influence it and its consequences. Our key findings indicate that user stories are the most commonly utilized technique by practitioners for documenting requirements. Furthermore, a deficient documentation process results in two primary consequences: rework and a knowledge deficit. To address these challenges, various techniques are implemented across different development phases, including requirement refactoring, documentation refinement meetings, and template reviews. Participants also emphasized the significance of having a requirements expert to enhance the documentation process and expressed uncertainty regarding the adequacy of their existing requirements documentation.
Referências
Alsaqqa, S., Sawalha, S., and Abdel-Nabi, H. (2020). Agile software development: Methodologies and trends. Int. J. Interact. Mob. Technol., 14(11):246–270.
Behutiye, W., Rodríguez, P., and Oivo, M. (2022). Quality requirement documentation guidelines for agile software development. IEEE Access, 10:70154–70173.
Behutiye, W., Seppänen, P., Rodríguez, P., and Oivo, M. (2020). Documentation of quality requirements in agile software development. In Li, J., Jaccheri, L., Dingsøyr, T., and Chitchyan, R., editors, EASE ’20: Evaluation and Assessment in Software Engineering, Trondheim, Norway, April 15-17, 2020, pages 250–259. ACM.
Behutiye, W. N., Rodríguez, P., Oivo, M., and Tosun, A. (2017). Analyzing the concept of technical debt in the context of agile software development: A systematic literature review. Inf. Softw. Technol., 82:139–158.
Bomström, H., Kelanti, M., Annanperä, E., Liukkunen, K., Kilamo, T., Sievi-Korte, O., and Systä, K. (2023). Information needs and presentation in agile software development. Inf. Softw. Technol., 162:107265.
Bourque, P. (2023). Software Engineering Body of Knowledge (SWEBOK). [Online; accessed 18. Nov. 2023].
Canedo, E. D., Calazans, A. T. S., Bandeira, I. N., Costa, P. H. T., and Masson, E. T. S. (2022). Guidelines adopted by agile teams in privacy requirements elicitation after the brazilian general data protection law (LGPD) implementation. Requir. Eng., 27(4):545–567.
Canedo, E. D., Calazans, A. T. S., Cerqueira, A. J., Costa, P. H. T., and Masson, E. T. S. (2021). Agile teams’ perception in privacy requirements elicitation: Lgpd’s compli ance in brazil. In 29th IEEE International Requirements Engineering Conference, RE 2021, Notre Dame, IN, USA, September 20-24, 2021, pages 58–69. IEEE.
Chang, Y., Lim, Y., and Stolterman, E. (2008). Personas: from theory to practices. In Gulz, A., Magnusson, C., Malmborg, L., Eftring, H., Jönsson, B., and Tollmar, K., editors, Proceedings of the 5th Nordic Conference on Human-Computer Interaction 2008, Lund, Sweden, October 20-22, 2008, volume 358 of ACM International Conference Proceeding Series, pages 439–442. ACM.
Corbin, J. and Strauss, A. (2014). Basics of qualitative research: Techniques and procedures for developing grounded theory. Sage publications.
Curcio, K., Navarro, T., Malucelli, A., and Reinehr, S. S. (2018). Requirements engineering: A systematic mapping study in agile software development. J. Syst. Softw., 139:32–50.
d Darothi Sarkar, S. S. and Gupta, D. (2012). Agile processes and methodologies: A conceptual study. International Journal on Computer Science and Engineering (IJCSE), 4 (05).
Dev, J., Rashidi, B., and Garg, V. (2023). Models of applied privacy (MAP): A persona based approach to threat modeling. In Schmidt, A., Väänänen, K., Goyal, T., Kristensson, P. O., Peters, A., Mueller, S., Williamson, J. R., and Wilson, M. L., editors, Proceedings of the 2023 CHI Conference on Human Factors in Computing Systems, CHI 2023, Hamburg, Germany, April 23-28, 2023, pages 189:1–189:15. ACM.
Ernst, N. A. (2012). On the role of requirements in understanding and managing technical debt. In Kruchten, P., Nord, R. L., Ozkaya, I., and Visser, J., editors, Proceedings of the Third International Workshop on Managing Technical Debt, MTD 2012, Zurich, Switzerland, June 5, 2012, pages 61–64. IEEE/ACM.
Fowler, M., Highsmith, J., et al. (2001). The agile manifesto. Software development, 9(8):28–35.
Gurung, G., Shah, R., and Jaiswal, D. P. (2020). Software development life cycle models-a comparative study. In International Journal of Scientific Research in Computer Science, Engineering and Information Technology.
Heikkilä, V. T., Damian, D. E., Lassenius, C., and Paasivaara, M. (2015). A mapping study on requirements engineering in agile software development. In 41st Euromicro Conference on Software Engineering and Advanced Applications, EUROMICROSEAA 2015, Madeira, Portugal, August 26-28, 2015, pages 199–207. IEEE Computer Society.
Heimicke, J., Chen, R., and Albers, A. (2020). Agile meets plan-driven – hybrid approaches in product development: A systematic literature review. Proceedings of the Design Society: DESIGN Conference, pages 577–586.
Jarzebowicz, A. and Sitko, N. (2019). Communication and documentation practices in agile requirements engineering: A survey in polish software industry. In Wrycza, S. and Maslankowski, J., editors, Information Systems: Research, Development, Applications, Education 12th SIGSAND/PLAIS EuroSymposium 2019, Gdansk, Poland, September 19, 2019, Proceedings, volume 359 of Lecture Notes in Business Information Processing, pages 147–158. Springer.
Jarzebowicz, A. and Weichbroth, P. (2021). A systematic literature review on implementing non-functional requirements in agile software development: Issues and facilitating practices. In Przybylek, A., Miler, J., Poth, A., and Riel, A., editors, Lean and Agile Software Development - 5th International Conference, LASD 2021, Virtual Event, January 23, 2021, Proceedings, volume 408 of Lecture Notes in Business Information Processing, pages 91–110. Springer.
Lenarduzzi, V. and Fucci, D. (2019). Towards a holistic definition of requirements debt. In 2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM 2019, Porto de Galinhas, Recife, Brazil, September 19-20, 2019, pages 1–5. IEEE.
Linaker, J., Sulaman, S. M., Höst, M., and de Mello, R. M. (2015). Guidelines for conducting surveys in software engineering v. 1.1. Lund University, 50.
Marek, K., Winska, E., and Dabrowski, W. (2021). The state of agile software development teams during the covid-19 pandemic. In Lean and Agile Software Development 5th International Conference, LASD 2021, Virtual Event, January 23, 2021, Proceedings, volume 408 of Lecture Notes in Business Information Processing, pages 24–39, DOI: 10.1007/978-3-030-67084-9_2. Springer.
Mendes, L., Cerdeiral, C., and Santos, G. (2019). Documentation technical debt: A qualitative study in a software development organization. In do Carmo Machado, I., Souza, R., Maciel, R. S. P., and Sant’Anna, C., editors, Proceedings of the XXXIII Brazilian Symposium on Software Engineering, SBES 2019, Salvador, Brazil, September 23-27, 2019, pages 447–451. ACM.
Perera, J., Tempero, E. D., Tu, Y., and Blincoe, K. (2023). Quantifying requirements technical debt: A systematic mapping study and a conceptual model. In Schneider, K., Dalpiaz, F., and Horkoff, J., editors, 31st IEEE International Requirements Engineering Conference, RE 2023, Hannover, Germany, September 4-8, 2023, pages 123–133. IEEE.
Robiolo, G., Scott, E., Matalonga, S., and Felderer, M. (2019). Technical debt and waste in non-functional requirements documentation: An exploratory study. In Franch, X., Männistö, T., and Martínez-Fernández, S., editors, Product-Focused Software Process Improvement 20th International Conference, PROFES 2019, Barcelona, Spain, November 27-29, 2019, Proceedings, volume 11915 of Lecture Notes in Computer Science, pages 220–235. Springer.
Sajjade, Z.-S. Z. (2020). Agile process model for software development. Journal of Advancement in Software Engineering and Testing, 3 (03).
Saravanan, T., Jha, S., Sabharwal, G., and Narayan, S. (2020). Comparative analysis of software life cycle models. In 2020 2nd International Conference on Advances in Computing, Communication Control and Networking (ICACCCN), volume 2, pages 906–909.
Seaman, C. B. (1999). Qualitative methods in empirical studies of software engineering. IEEE Trans. Software Eng., 25(4):557–572.
Theunissen, T., van Heesch, U., and Avgeriou, P. (2022). A mapping study on documentation in continuous software development. Inf. Softw. Technol., 142:106733.