Investigating Developer Experience in Software Reuse

  • Rodrigo Feitosa Gonçalves UFRJ
  • Cláudia Maria Lima Werner UFRJ
  • Claudio Miceli de Farias UFRJ

Resumo


Software reuse has been recognized as a key strategy for improving productivity, reducing development costs, and enhancing software quality. However, successfully implementing software reuse practices largely depends on the developer experience (DX). This study investigates the factors, barriers, and strategies influencing DX in software reuse. Through a Rapid Review (RR), we analyzed 328 studies, selecting 10 for detailed data extraction based on defined filters and the backward snowballing technique. Our findings identify 15 factors affecting DX in software reuse, categorized into technical, organizational, and human/social factors. We also uncover 7 barriers that impede developers from improving DX and identify 13 strategies to enhance it. The results highlight the critical role of comprehensive documentation, a clear understanding of software functionality, and robust reuse-compatible infrastructure as key technical factors. Organizational support, effective resource allocation, and fostering a communication, collaboration, and self-efficacy culture are essential for successful software reuse. This study’s insights have significant implications for researchers and practitioners, offering practical guidance to develop more effective reuse practices and improve DX.

Palavras-chave: Developer Experience, Software Reuse, Rapid Review

Referências

Nazakat Ali, Horn Daneth, and Jang-Eui Hong. 2020. A hybrid DevOps process supporting software reuse: A pilot project. Journal of Software: Evolution and Process 32, 7 (2020), e2248. DOI: 10.1002/smr.2248

Luiz Amorim and Manoel Mendonça. 2016. A method to support the adoption of reuse technology in large software organizations. In Software Reuse: Bridging with Social-Awareness: 15th International Conference, ICSR. 73–88. DOI: 10.1007/978-3-319-35122-3_6

José L Barros-Justo, David N Olivieri, and Fernando Pinciroli. 2019. An exploratory study of the standard reuse practice in a medium sized software development firm. Computer Standards & Interfaces 61 (2019), 137–146. DOI: 10.1016/j.csi.2018.06.005

José L. Barros-Justo, Fernando Pinciroli, Santiago Matalonga, and Nelson Martínez-Araujo. 2018. What software reuse benefits have been transferred to the industry? A systematic mapping study. Information and Software Technology 103 (2018), 1–21. DOI: 10.1016/j.infsof.2018.06.003

Rafael Capilla, Barbara Gallina, Carlos Cetina, and John Favaro. 2019. Opportunities for software reuse in an uncertain world: From past to emerging trends. Journal of software: Evolution and process 31, 8 (2019), e2217. DOI: 10.1002/smr.2217

Bruno Cartaxo, Gustavo Pinto, and Sergio Soares. 2018. The role of rapid reviews in supporting decision-making in software engineering practice. In International Conference on Evaluation and Assessment in Software Engineering 2018. 24–34. DOI: 10.1145/3210459.3210462

Bruno Cartaxo, Gustavo Pinto, and Sergio Soares. 2020. Rapid reviews in software engineering. Contemporary Empirical Methods in Software Engineering (2020), 357–384. DOI: 10.1007/978-3-030-32489-6_13

Kathy Charmaz. 2006. Constructing grounded theory: A practical guide through qualitative analysis. Sage Publications, Thousand Oaks.

Mengwen Chen, Tao Wang, Cheng Yang, Qiang Fan, Gang Yin, and Huaimin Wang. 2016. Social Computing in Open Source Community: A Study of Software Reuse. In Social Computing: International Conference of Young Computer Scientists, Engineers and Educators, ICYCSEE. Springer, 621–631. DOI: 10.1007/978-981-10-2053-7_55

Xingru Chen, Deepika Badampudi, and Muhammad Usman. 2022. Reuse in Contemporary Software Engineering Practices–An Exploratory Case Study in A Medium-sized Company. e-Informatica Software Engineering Journal 16, 1 (2022). DOI: 10.37190/e-Inf220110

Daniela S Cruzes and Tore Dyba. 2011. Recommended steps for thematic synthesis in software engineering. In 2011 international symposium on empirical software engineering and measurement. 275–284.

Fabian Fagerholm and Jürgen Münch. 2012. Developer experience: Concept and definition. In International conference on software and system process (ICSSP). 73–77. DOI: 10.1109/ICSSP.2012.6225984

Awdren Fontão, Arilo Dias-Neto, and Davi Viana. 2017. Investigating Factors That Influence Developers’ Experience in Mobile Software Ecosystems. In International Workshop on Software Engineering for Systems-of-Systems. 55–58. DOI: 10.1109/JSOS.2017.10

Michaela Greiler, Margaret-Anne Storey, and Abi Noda. 2022. An actionable framework for understanding and improving developer experience. IEEE Transactions on Software Engineering 49, 4 (2022), 1411–1425. DOI: 10.1109/TSE.2022.3175660

Martin Griss, Ivar Jacobson, Chris Jette, Bob Kessler, and Doug Lea. 1995. Systematic software reuse (panel) objects and frameworks are not enough. In Proceedings of the 1995 Symposium on Software reusability. 17–20. DOI: 10.1145/223427.213969

Jenny Guber and Iris Reinhartz-Berger. 2023. Privacy-Compliant Software Reuse in Early Development Phases: A Systematic Literature Review. Information and Software Technology (2023), 107351. DOI: 10.1016/j.infsof.2023.107351

Michelle M Haby, Evelina Chapman, Rachel Clark, Jorge Barreto, Ludovic Reveiz, and John N Lavis. 2016. What are the best methodologies for rapid reviews of the research evidence for evidence-informed decision making in health policy and practice: a rapid review. Health research policy and systems 14 (2016), 1–12. DOI: 10.1186/s12961-016-0155-7

Candyce Hamel, Alan Michaud, Micere Thuku, Becky Skidmore, Adrienne Stevens, Barbara Nussbaumer-Streit, and Chantelle Garritty. 2021. Defining rapid reviews: a systematic scoping review and thematic analysis of definitions and defining characteristics of rapid reviews. Journal of Clinical Epidemiology 129 (2021), 74–85. DOI: 10.1016/j.jclinepi.2020.09.041

Catherine M Hicks, Carol S Lee, and Morgan Ramsey. 2024. Developer Thriving: four sociocognitive factors that create resilient productivity on software teams. IEEE Software (2024). DOI: 10.1109/MS.2024.3382957

Stanislaw Jarzabek and Daniel Dan. 2017. Documentation reuse: Managing similar documents. In International Conference on Information Reuse and Integration (IRI). 372–375. DOI: 10.1109/IRI.2017.52

Xiaoyu Jin, Charu Khatwani, Nan Niu, MichaelWagner, and Juha Savolainen. 2016. Pragmatic software reuse in bioinformatics: How can social network information help?. In Software Reuse: Bridging with Social-Awareness: International Conference. Springer, 247–264. DOI: 10.1007/978-3-319-35122-3_17

Monica Johar, Vijay Mookerjee, and Suresh Sethi. 2015. Optimal software design reuse policies: A control theoretic approach. Information Systems Frontiers 17 (2015), 439–453. DOI: 10.1007/s10796-013-9421-1

Huma Hayat Khan and Muhammad Noman Malik. 2017. Software standards and software failures: a review with the perspective of varying situational contexts. IEEE access 5 (2017), 17501–17513. DOI: 10.1109/ACCESS.2017.2738622

Valerie J King, Adrienne Stevens, Barbara Nussbaumer-Streit, Chris Kamel, and Chantelle Garritty. 2022. Paper 2: Performing rapid reviews. Systematic Reviews 11, 1 (2022), 151. DOI: 10.1186/s13643-022-02011-5

D. Kirk, M. Roper, and M.Wood. 2002. Defining the problems of framework reuse. In Proceedings 26th Annual International Computer Software and Applications. 623–626. DOI: 10.1109/CMPSAC.2002.1045073

Barbara Kitchenham and Stuart Charters. 2007. Guidelines for performing systematic literature reviews in software engineering. Technical Report. Evidence-Based Software Engineering (EBSE) Project.

Barbara Kitchenham and Stuart Charters. 2007. Guidelines for performing Systematic Literature Reviews in Software Engineering. Technical Report EBSE 2007-001. Keele University and Durham University Joint Report.

Nam-Yong Lee and C.R. Litecky. 1997. An empirical study of software reuse with special attention to Ada. IEEE Transactions on Software Engineering 23, 9 (1997), 537–549. DOI: 10.1109/32.629492

Jingyue Li, Reidar Conradi, Parastoo Mohagheghi, Odd Are Sæhle, Øivind Wang, Erlend Naalsund, and Ole Anders Walseth. 2004. A study of developer attitude to component reuse in three IT companies. In Product Focused Software Process Improvement: 5th International Conference, PROFES. 538–552. DOI: 10.1007/978-3-540-24659-6_39

Niko Mäkitalo, Antero Taivalsaari, Arto Kiviluoto, Tommi Mikkonen, and Rafael Capilla. 2020. On opportunistic software reuse. Computing 102 (2020), 2385–2408. DOI: 10.1007/s00607-020-00833-6

Vidhya Mellarkod, Radha Appan, Donald R Jones, and Karma Sherif. 2007. A multi-level analysis of factors affecting software developers’ intention to reuse software assets: An empirical investigation. Information & Management 44, 7 (2007), 613–625. DOI: 10.1016/j.im.2007.03.006

H. Mili, F. Mili, and A. Mili. 1995. Reusing software: issues and research directions. IEEE Transactions on Software Engineering 21, 6 (1995), 528–562. DOI: 10.1109/32.391379

Sonia Montagud, Silvia Abrahão, and Emilio Insfran. 2012. A systematic review of quality attributes and measures for software product lines. Software Quality Journal 20 (2012), 425–486. DOI: 10.1007/s11219-011-9146-7

Jenny Morales, Cristian Rusu, Federico Botella, and Daniela Quiñones. 2019. Programmer eXperience: A Systematic Literature Review. IEEE Access 7 (2019), 71079–71094. DOI: 10.1109/ACCESS.2019.2920124

Rebeca C. Motta, Káthia M. de Oliveira, and Guilherme H. Travassos. 2019. A conceptual perspective on interoperability in context-aware software systems. Information and Software Technology 114 (2019), 231–257. DOI: 10.1016/j.infsof.2019.07.001

Abi Noda, Margaret-Anne Storey, Nicole Forsgren, and Michaela Greiler. 2023. DevEx: What Actually Drives Productivity: The developer-centric approach to measuring and improving productivity. Queue 21, 2 (2023), 35–53. DOI: 10.1145/3595878

Mohd Akmal Faiz Osman, Mohamad Noorman Masrek, and Khalid Abdul Wahid. 2022. Software Reuse Practices among Malaysian Freelance Developers: A Conceptual Framework. In Proceedings, Vol. 82. MDPI, 30. DOI: 10.3390/proceedings2022082030

Mohamed A Oumaziz, Alan Charpentier, Jean-Rémy Falleri, and Xavier Blanc. 2017. Documentation reuse: Hot or not? An empirical study. In 16th International Conference on Software Reuse. 12–27. DOI: 10.1007/978-3-319-56856-0_2

Iris Reinhartz-Berger. 2024. Challenges in software model reuse: cross application domain vs. cross modeling paradigm. Empirical Software Engineering 29, 1 (2024), 16. DOI: 10.1007/s10664-023-10386-9

M.A. Rothenberger, K.J. Dooley, U.R. Kulkarni, and N. Nada. 2003. Strategies for software reuse: a principal component analysis of reuse practices. IEEE Transactions on Software Engineering 29, 9 (2003), 825–837. DOI: 10.1109/TSE.2003.1232287

Marcus A Rothenberger. 2003. Project-Level Reuse Factors: Drivers for Variation within Software Development Environments. Decision sciences 34, 1 (2003), 83–106. DOI: 10.1111/1540-5915.02252

Di Shang, Karl Lang, and Roumen Vragov. 2022. A Market-Based Approach to Facilitate the Organizational Adoption of Software Component Reuse Strategies. Communications of the Association for Information Systems 51, 1 (2022), 36. DOI: 10.17705/1CAIS.05140

Karma Sherif and Ajay Vinze. 2003. Barriers to adoption of software reuse: A qualitative study. Information & Management 41, 2 (2003), 159–175. DOI: 10.1016/S0378-7206(03)00045-4

Gustavo Silva, Carla Bezerra, Anderson Uchôa, and Ivan Machado. 2023. What Factors Affect the Build Failures Correction Time? A Multi-Project Study. In Brazilian Symposium on Software Components, Architectures, and Reuse (SBCARS ’23). 41–50. DOI: 10.1145/3622748.3622753

Odd Petter N Slyngstad, Anita Gupta, Reidar Conradi, Parastoo Mohagheghi, Harald Rønneberg, and Einar Landre. 2006. An empirical study of developers views on software reuse in statoil asa. In ACM/IEEE International Symposium on Empirical Software Engineering. 242–251. DOI: 10.1145/1159733.1159770

Dalia Sobhy, Rami Bahsoon, Leandro Minku, and Rick Kazman. 2021. Evaluation of software architectures under uncertainty: A systematic literature review. ACM Transactions on Software Engineering and Methodology (TOSEM) 30, 4 (2021), 1–50. DOI: 10.1145/3464305

Manuel Sojer and Joachim Henkel. 2010. Code reuse in open source software development: Quantitative evidence, drivers, and impediments. Journal of the Association for Information Systems 11, 12 (2010), 868–901. DOI: abstract=1489789

IO Standardization. 2019. Part 210: Human-centred design for interactive systems. (2019).

Sebastian Spaeth Stefan Haefliger, Georg von Krogh. 2008. Code Reuse in Open Source Software. Management Science 54, 1 (2008), 180–193. DOI: 10.1287/mnsc.1070.0748

Hongyi Sun, Waileung Ha, Min Xie, and Jianglin Huang. 2015. Modularity’s impact on the quality and productivity of embedded software development: a case study in a Hong Kong company. Total Quality Management & Business Excellence 26, 11-12 (2015), 1188–1201. DOI: 10.1080/14783363.2014.920179

Sri Lakshmi Vadlamani and Olga Baysal. 2020. Studying software developer expertise and contributions in Stack Overflow and GitHub. In IEEE International Conference on Software Maintenance and Evolution (ICSME). 312–323. DOI: 10.1109/ICSME46990.2020.00038

Julia Varnell-Sarjeant and Anneliese Amschler Andrews. 2015. Comparing reuse strategies in different development environments. In Advances in Computers. Vol. 97. Elsevier, 1–47. DOI: 10.1016/bs.adcom.2014.10.002
Publicado
30/09/2024
GONÇALVES, Rodrigo Feitosa; WERNER, Cláudia Maria Lima; FARIAS, Claudio Miceli de. Investigating Developer Experience in Software Reuse. In: SIMPÓSIO BRASILEIRO DE COMPONENTES, ARQUITETURAS E REUTILIZAÇÃO DE SOFTWARE (SBCARS), 18. , 2024, Curitiba/PR. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 71-80. DOI: https://doi.org/10.5753/sbcars.2024.3865.