Approach to the Best Practices of Software Development Based on DevOps and SCRUM Used in Very Small Entities
Abstract
Very small entities in software development have a maximum of 25 employees. Their cash flow and time available for implementing improvements in their processes to enable them to be more competitive are limited, leading them to turn to agile frameworks such as SCRUM to manage the software development process. However, when they try to adopt these, they find that the documents only suggest changes that can be made and not how to make them. As a result, the trial and error process of discovering which techniques, events and artifacts ought to be implemented is costly and, in some cases, unfeasible. The same applies to other frameworks that can complement SCRUM, such as DevOps, a framework that proposes a rapprochement between the development and operations areas, in which as many tasks as possible are automated, and quality controls are increased to obtain better quality products. This article presents three best practices based on DevOps, its models of use and when these can be used within SCRUM to facilitate its adoption in the smallest companies. A model is presented for the use of versioning, integration, and continuous deployment and the particular moments recommended for implementing these within SCRUM. The best practices most widely reported in the literature for software development based on SCRUM and DevOps were identified. Three were then selected, and a usage model was built for each of them. Then, they were evaluated using a case study, and the results were assessed. The practices were evaluated in three (3) very small entities, obtaining changes in the support cases reported weekly and in the number of successful deployments. The division of the development process into phases reveals that the development and quality phase provides more possibilities for splicing among the set of practices suggested by DevOps in SCRUM. Likewise, the set of suggested practices points to the implementation of controls for quality assurance, providing key information for development team learning and improvement.
Keywords
Software Engineering, DevOps, SCRUM, Software Quality Assurance, SQA
Author Biography
Manuel-Alejandro Pastrana-Pardo
Roles: Conceptualization, Methodology Resources, Writing- Original draft preparation.
Hugo-Armando Ordoñez-Erazo
Roles: Conceptualization, Methodology, Resources, Writing- Original draft, Supervision, Project administration, Funding acquisition.
Carlos-Alberto Cobos-Lozada
Roles: Supervision, Writing- Review and Editing.
References
- S. Martinez-Fernandez, A. Vollmer, A.Jedlitschka, X. Franch, L. Lopez, P. Ram, P. Rodriguez, S. Aaramaa, A. Bagnato, M. Choras, J. Partanen, “Continuously Assessing and Improving Software Quality With Software Analytics Tools: A Case Study,” IEEE Access, vol. 7, pp. 68219–68239, 2019. https://doi.org/10.1109/ACCESS.2019.2917403 DOI: https://doi.org/10.1109/ACCESS.2019.2917403
- P. Rodríguez, A. Haghighatkhah, L. E. Lwakatare, S. Teppola, T. Suomalainen, J. Eskeli, T. Karvonen, P. Kuvaja, J. M. Verner, M. Oivo, “DevOps in practice: A multiple case study of five companies,” Information and Software Technology, vol. 114, pp. 217–230, 2019. https://doi.org/10.1016/j.infsof.2019.06.010 DOI: https://doi.org/10.1016/j.infsof.2019.06.010
- ISO/IEC JTC 1/SC 7/WG 24, ISO/IEC DTR 29110-5-6-3:2018, ISO, 2019. https://isotc.iso.org/livelink/livelink/open/jtc1sc7wg24
- M. Munoz, J. Mejia, A. Lagunas, “Implementation of the ISO/IEC 29110 standard in agile environments: A systematic literature review,” in Iberian Conference on Information Systems and Technologies, 2018, pp. 1–6. https://doi.org/10.23919/CISTI.2018.8399332 DOI: https://doi.org/10.23919/CISTI.2018.8399332
- A. Hemon, B. Lyonnet, F. Rowe, B. Fitzgerald, “From Agile to DevOps: Smart Skills and Collaborations,” Information Systems Frontiers, vol. 22, no. 4, pp. 927–945, 2020. https://doi.org/10.1007/s10796-019-09905-1 DOI: https://doi.org/10.1007/s10796-019-09905-1
- S. Badshah, A. A. Khan, B. Khan, “Towards Process Improvement in DevOps,” in Proceedings of the Evaluation and Assessment in Software Engineering, 2020, pp. 427–433. https://doi.org/10.1145/3383219.3383280 DOI: https://doi.org/10.1145/3383219.3383280
- M. Z. Toh, S. Sahibuddin, M. N. Mahrin, “Adoption Issues in DevOps from the Perspective of Continuous Delivery Pipeline,” in Proceedings of the 2019 8th International Conference on Software and Computer Applications, 2019, pp. 173–177. https://doi.org/10.1145/3316615.3316619 DOI: https://doi.org/10.1145/3316615.3316619
- A. Hemon, B. Lyonnet, F. Rowe, B. Fitzgerald, “Conceptualizing the transition from agile to DevOps: A maturity model for a smarter is function,” in IFIP Advances in Information and Communication Technology, 2019, pp. 209–223. https://doi.org/10.1007/978-3-030-04315-5_15 DOI: https://doi.org/10.1007/978-3-030-04315-5_15
- R. S. Pressman, B. R. Maxim, Software Engineering: A Practitioner’s Approach, Eighth Edition, McGraw-Hil. Boston, USA: McGraw-Hill, 2015.
- K. Schwaber, J. Sutherland, L. Guía, D. de Scrum, L. Reglas, La Guía Definitiva de Scrum: Las Reglas del Juego, 2020. https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Spanish-European.pdf
- M. O. Onarcan, Y. Fu, M. O. Onarcan, Y. Fu, “A Case Study on Design Patterns and Software Defects in Open Source Software,” Journal of Software Engineering and Applications, vol. 11, no. 5, pp. 249–273, 2018. https://doi.org/10.4236/JSEA.2018.115016 DOI: https://doi.org/10.4236/jsea.2018.115016
- M. Pastrana, H. Ordoñez, A. Rojas, A. Ordoñez, “Ensuring Compliance with Sprint Requirements in SCRUM: Preventive Quality Assurance in SCRUM,” in Advances in Intelligent Systems and Computing, 2019, pp. 33–45. https://doi.org/10.1007/978-981-13-6861-5_3 DOI: https://doi.org/10.1007/978-981-13-6861-5_3
- N. Railic, M. Savic, “Architecting Continuous Integration and Continuous Deployment for Microservice Architecture,” in 20th International Symposium INFOTEH-JAHORINA, 2021. https://doi.org/10.1109/INFOTEH51037.2021.9400696 DOI: https://doi.org/10.1109/INFOTEH51037.2021.9400696
- Y. Zhao, A. Serebrenik, Y. Zhou, V. Filkov, B. Vasilescu, “The impact of continuous integration on other software development practices: A large-scale empirical study,” in 32nd IEEE/ACM International Conference on Automated Software Engineering, 2017, pp. 60–71. https://doi.org/10.1109/ASE.2017.8115619 DOI: https://doi.org/10.1109/ASE.2017.8115619