Social network analysis applied at understanding collaboration in software projects
DOI:
https://doi.org/10.23925/2179-3565.2024v15i2p152-162Keywords:
Collaboration, Social network analysis, Software development, Software repositoriesAbstract
In the realm of software development, collaboration is important for worker satisfaction, mitigating turnover risks and better design of final products. The quality of collaboration in teams can indirectly assessed by the interdependence of team members’ designs and the extent of shared authorship within a system. Our goal is to apply Social Network Analysis to visualize collaboration on software teams. This study is situated within the framework of software projects undertaken by undergraduate Computer Science students in a 3-week programming sprint. Detailed data from the software development process was gathered through Github and further analyzed using a two-mode social network and later a regular social network. Our results indicate that these techniques help illuminate certain facets of collaboration, such as members that are isolated from the team or collaborators that tend to concentrate too much work.
References
ACM. (2013). Computer Science Curricula 2013: Curriculum Guidelines for Undergraduate Degree Programs in Computer Science. Association for Computing Machinery.
Andres, H. P. (2012). Technology-Mediated Collaboration, Shared Mental Model and Task Performance. Journal of Organizational and End User Computing (JOEUC), 24(1), 64–81. https://doi.org/10.4018/joeuc.2012010104
Avila, D. T., Van Petegem, W., Libotton, A. (2021). ASEST framework: A proposal for improving teamwork by making cohesive software engineering student teams. European Journal of Engineering Education, 46(5), 750–764. https://doi.org/10.1080/03043797.2020.1863339
Avila, D. T., Van Petegem, W., Snoeck, M. (2022). Improving Teamwork in Agile Software Engineering Education: The ASEST+ Framework. IEEE Transactions on Education, 65(1), 18–29. https://doi.org/10.1109/TE.2021.3084095
Bacon, D. R., Stewart, K. A., Silver, W. S. (1999). Lessons from the Best and Worst Student Team Experiences: How a Teacher can make the Difference. Journal of Management Education, 23(5), 467–488. https://doi.org/10.1177/105256299902300503
Beck, K., Beedle, M., van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., Grenning, J., Highsmith, J., Hunt, A., Jeffries, R., Kern, J., Marick, B., Martin, R. C., Mellor, S., Schwaber, K., Sutherland, J., Thomas, D. (2001). Manifesto for Agile Software Development. Em Manifesto for Agile Software Development. http://www.agilemanifesto.org/
Borgatti, S. P., Everett, M. G. (1997). Network analysis of 2-mode data. Social Networks, 19(3), 243–269. https://doi.org/10.1016/S0378-8733(96)00301-2
Brusoni, S., Prencipe, A., Pavitt, K. (2001). Knowledge Specialization, Organizational Coupling, and the Boundaries of the Firm: Why Do Firms Know More Than They Make? Administrative Science Quarterly, 46(4), Artigo 4. https://doi.org/10.2307/3094825
Campbell, D. T. (1979). Assessing the impact of planned social change. Evaluation and Program Planning, 2(1), 67–90. https://doi.org/10.1016/0149-7189(79)90048-X
Chaturvedi, K. K., Sing, V. B., Singh, P. (2013). Tools in Mining Software Repositories. 2013 13th International Conference on Computational Science and Its Applications, 89–98. https://doi.org/10.1109/ICCSA.2013.22
Costa, G. C. B., Santana, F., Magdaleno, A. M., Werner, C. M. L. (2014). Monitoring Collaboration in Software Processes Using Social Networks. Em N. Baloian, F. Burstein, H. Ogata, F. Santoro, G. Zurita (Orgs.), Collaboration and Technology (p. 89–96). Springer International Publishing. https://doi.org/10.1007/978-3-319-10166-8_8
Gilbert, E., Karahalios, K. (2009). Using Social Visualization to Motivate Social Production. IEEE Transactions on Multimedia, 11(3), Artigo 3. https://doi.org/10.1109/TMM.2009.2012916
Gousios, G., Kalliamvakou, E., Spinellis, D. (2008). Measuring developer contribution from software repository data. Proceedings of the 2008 International Working Conference on Mining Software Repositories, 129–132. https://doi.org/10.1145/1370750.1370781
Hira, A., Boehm, B. (2016). Function Point Analysis for Software Maintenance. Proceedings of the 10th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, 1–6. https://doi.org/10.1145/2961111.2962613
Hoegl, M., Gemuenden, H. G. (2001). Teamwork Quality and the Success of Innovative Projects: A Theoretical Concept and Empirical Evidence. Organization Science, 12(4), 435–449. https://doi.org/10.1287/orsc.12.4.435.10635
Jorgensen, M., Shepperd, M. (2007). A Systematic Review of Software Development Cost Estimation Studies. IEEE Transactions on Software Engineering, 33(1), Artigo 1. https://doi.org/10.1109/TSE.2007.256943
Katzenbach, J. R., Smith, D. K. (1993, march, 1). The Discipline of Teams. Harvard Business Review. https://hbr.org/1993/03/the-discipline-of-teams-2
Kropp, M., Meier, A., Anslow, C., Biddle, R. (2020). Satisfaction and its correlates in agile software development. Journal of Systems and Software, 164, 110544. https://doi.org/10.1016/j.jss.2020.110544
McCabe, T. J. (1976). A Complexity Measure. IEEE Transactions on Software Engineering, SE-2(4), 308–320. https://doi.org/10.1109/TSE.1976.233837
Moe, N. B., Dingsøyr, T., Dybå, T. (2009). Overcoming Barriers to Self-Management in Software Teams. IEEE Software, 26(6), 20–26. https://doi.org/10.1109/MS.2009.182
Parnas, D. L. (2011). Software Engineering: Multi-person Development of Multi-version Programs. Em C. B. Jones, J. L. Lloyd (Orgs.), Dependable and Historic Computing: Essays Dedicated to Brian Randell on the Occasion of His 75th Birthday (p. 413–427). Springer. https://doi.org/10.1007/978-3-642-24541-1_31
Pillai, S. P., Madhukumar, S. D., Radharamanan, T. (2017). Consolidating evidence-based studies in software cost/effort estimation—A tertiary study. TENCON 2017 - 2017 IEEE Region 10 Conference, 833–838. https://doi.org/10.1109/TENCON.2017.8227974
Pinheiro, M., Rebelo, T., Lourenço, P. R., Dimas, I. (2023). What drives team learning: Core conditions and paths. Journal of Workplace Learning, 35(2), 146–163. https://doi.org/10.1108/JWL-06-2022-0079
Ratner, A., Bach, S. H., Ehrenberg, H., Fries, J., Wu, S., Ré, C. (2017). Snorkel: Rapid training data creation with weak supervision. Proceedings of the VLDB Endowment, 11(3), Artigo 3. https://doi.org/10.14778/3157794.3157797
Riquelme, F., Munoz, R., Mac Lean, R., Villarroel, R., Barcelos, T. S., de Albuquerque, V. H. C. (2019). Using multimodal learning analytics to study collaboration on discussion groups. Universal Access in the Information Society, 18(3), 633–643. https://doi.org/10.1007/s10209-019-00683-w
Robles, G., Capiluppi, A., Gonzalez-Barahona, J. M., Lundell, B., Gamalielsson, J. (2022). Development effort estimation in free/open source software from activity in version control systems. Empirical Software Engineering, 27(6), Artigo 6. https://doi.org/10.1007/s10664-022-10166-x
Sonnentag, S. (1998). Expertise in professional software design: A process study. The Journal of Applied Psychology, 83(5), 703–715. https://doi.org/10.1037/0021-9010.83.5.703
Sonnentag, S. (2000). Excellent Performance: The Role of Communication and Cooperation Processes. Applied Psychology, 49(3), 483–497. https://doi.org/10.1111/1464-0597.00027
Spadini, D., Aniche, M., Bacchelli, A. (2018). PyDriller: Python framework for mining software repositories. Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, 908–911. https://doi.org/10.1145/3236024.3264598
Vidoni, M. (2022). A systematic process for Mining Software Repositories: Results from a systematic literature review. Information and Software Technology, 144, 106791. https://doi.org/10.1016/j.infsof.2021.106791
Weimar, E., Nugroho, A., Visser, J., Plaat, A. (2013). Towards high performance software teamwork. Proceedings of the 17th International Conference on Evaluation and Assessment in Software Engineering, 212–215. https://doi.org/10.1145/2460999.2461030
Whitehead, J., Mistrík, I., Grundy, J., van der Hoek, A. (2010). Collaborative Software Engineering: Concepts and Techniques. Em I. Mistrík, J. Grundy, A. Hoek, J. Whitehead (Orgs.), Collaborative Software Engineering (p. 1–30). Springer. https://doi.org/10.1007/978-3-642-10294-3_1
World Economic Forum. (2020). The Future of Jobs Report 2020. http://www3.weforum.org/docs/WEF_Future_of_Jobs_2020.pdf
Wu, H., Shi, L., Chen, C., Wang, Q., Boehm, B. (2016). Maintenance Effort Estimation for Open Source Software: A Systematic Literature Review. 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME), 32–43. https://doi.org/10.1109/ICSME.2016.87
Downloads
Published
Issue
Section
License
This Journal is licensed under a Creative Commons Attribution-Non Commercial-No Derivers 4.0 International license.
1.The author (s) authorize the publication of the article in the journal;
2.The author (s) warrant that the contribution is original and unpublished and is not in the process of being evaluated in other journal (s);
3. The journal is not responsible for the opinions, ideas and concepts emitted in the texts, as they are the sole responsibility of its author (s);
4. The editors are entitled to make textual adjustments and to adapt the articles to the standards of publication.