Social network analysis applied at understanding collaboration in software projects

Authors

  • Fabio de Miranda Institude of Education and Research, INSPER
  • Marcelo Augusto Vieira Graglia Pontifical Catholic University of São Paulo, TIDD

DOI:

https://doi.org/10.23925/2179-3565.2024v15i2p152-162

Keywords:

Collaboration, Social network analysis, Software development, Software repositories

Abstract

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

2024-08-15