social debt analytics for improving the management of software evolution tasks
TRANSCRIPT
![Page 1: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/1.jpg)
Social Debt Analytics for Improving the Management of Software Evolution TasksFabio Palomba*#, Alexander Serebrenik#, Andy Zaidman**Delft University of Technology, #Eindhoven University of Technology, The Netherlands
![Page 2: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/2.jpg)
“Software and systems complexity is not solely of
technological nature but also defined by people
and processes”
Netherlands Knowledge and Innovation AgendaICT 2016-2019
![Page 3: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/3.jpg)
Social and Organizational factors are highly relevant for the success of a software project
M. Conway, “How do committees invent”, 1968.
![Page 4: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/4.jpg)
Social and Organizational factors are highly relevant for the success of a software project
M. Conway, “How do committees invent”, 1968.
There is alignment between coordination requirements extracted from technical dependencies among tasks and the actual coordination activities performed by the developers
![Page 5: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/5.jpg)
Unfortunately, the software evolution community mainly focused on technical aspects of software systems, like software quality management
![Page 6: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/6.jpg)
While software communities have mainly been studied from an evolutionary point of view,
whereas some work investigated the impact of socio-technical congruence on developers’
productivity or software build success
![Page 7: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/7.jpg)
What about the intersection between social and technical aspects of software systems?
![Page 8: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/8.jpg)
We cannot separate the technical side of a product from the surrounding environment
![Page 9: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/9.jpg)
Our GoalStudying how community-related factors influence
technical aspects of software products, with the aim of producing community-aware software evolution tools
![Page 10: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/10.jpg)
Our GoalThe relationship between social debt
and technical tasks
![Page 11: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/11.jpg)
Social vs Technical Debt
![Page 12: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/12.jpg)
Social vs Technical DebtSocial debt is represented by patterns
across the organizational structure of a system that may lead to additional
unforeseen project costs. [Tamburri et al. “What is Social Debt in Software Engineering?”
ICSE 2013, pp. 40-49]
![Page 13: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/13.jpg)
Social vs Technical Debt
Technical debt is represented by bad practices applied by developers that may lead to additional project costs.
Social debt is represented by patterns across the organizational structure of
a system that may lead to additional unforeseen project costs.
[Tamburri et al. “What is Social Debt in Software Engineering?”ICSE 2013, pp. 40-49]
W. Cunningham. “The wycash portfolio management system”. SIGPLAN OOPS Mess., 4(2):29–30.
![Page 14: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/14.jpg)
Community vs Code SmellsOrganizational Silo Effect
Tamburri et al., “The architect’s role in community shepherding”, IEEE Software, 33(6):70–79, 2016.
![Page 15: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/15.jpg)
Community vs Code SmellsOrganizational Silo Effect
Tamburri et al., “The architect’s role in community shepherding”, IEEE Software, 33(6):70–79, 2016.
![Page 16: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/16.jpg)
GOD CLASS
Community vs Code Smells
![Page 17: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/17.jpg)
Community vs Code Smells
Are they connected?
![Page 18: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/18.jpg)
Community vs Code SmellsSub-communities that do not communicate with each other might be not able to come up
with a correct way to modularize the different
modules of the systems.
Thus, they might introduce architectural
or code smells
![Page 19: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/19.jpg)
Community vs Code Smells
“The creation of extremely complex and poorly cohesive classes in presence of non-
communicating sub-teams is quite common because in such a scenario developers do not share information with each other about the ideal structure to implement, therefore creating classes that perform a
lot of different things”. [A developer surveyed in the context of our research]
The Importance of Social Aspects
![Page 20: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/20.jpg)
Community vs Bugs
!The presence of community smells might lead to communication overhead causing delays in
bug triaging and resolution activities
![Page 21: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/21.jpg)
Community vs Bugs
!The presence of community smells might lead to communication overhead causing delays in
bug triaging and resolution activities
Missing some information, developers might introduce new bugs
![Page 22: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/22.jpg)
Community vs Bugs
!The presence of community smells might lead to communication overhead causing delays in
bug triaging and resolution activities
Missing some information, developers might introduce new bugs
Missing some information, developers might not be able to solve bugs, causing higher
bug tossing
![Page 23: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/23.jpg)
Community vs Code Review
!The presence of community smells might lead to communication overhead causing delays in
review triaging and review time
![Page 24: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/24.jpg)
Community vs Code Review
!The presence of community smells might lead to communication overhead causing delays in
review triaging and review time
Missing some information, developers might not properly perform good code reviews
![Page 25: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/25.jpg)
Poor communication between developers might cause higher rework or even misunderstanding of the requirements, causing higher effort for
developers
Community vs Effort
!
![Page 26: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/26.jpg)
The presence of community smells might be used as additional information to improve the estimation of costs of maintenance tasks
Poor communication between developers might cause higher rework or even misunderstanding of the requirements, causing higher effort for
developers
Community vs Effort
!
![Page 27: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/27.jpg)
![Page 28: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/28.jpg)
Social Debt Analytics for Improving the Management of Software Evolution Tasks
HOW TO
![Page 29: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/29.jpg)
A complex problem Measuring the Impact of Social Debt ?
![Page 30: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/30.jpg)
A complex problem Measuring the Impact of Social Debt ?Statistical Modeling and Machine Learning
Methods relating a set of socio-technical factors to the considered variable
![Page 31: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/31.jpg)
A complex problem Measuring the Impact of Social Debt ?Statistical Modeling and Machine Learning
Methods relating a set of socio-technical factors to the considered variable
Establishing Causality
![Page 32: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/32.jpg)
A complex problem Measuring the Impact of Social Debt ?Statistical Modeling and Machine Learning
Methods relating a set of socio-technical factors to the considered variable
Establishing Causality
The key is taking into account the possible socio-technical factors possibly biasing the observations. More importantly, involving developers and companies is fundamental to understand the results
![Page 33: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/33.jpg)
The case of code smells
Technical Factors Social Factors
LOCCBOTotal number of commits on a classCode ChurnsCommit and Project TenureCode Smell PersistenceFault-proneness
Socio-technical congruenceTruck-factorCore-Periphery RatioTurnoverSmelly Quitters
![Page 34: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/34.jpg)
The case of code smellsBasic Model Basic + Community
SmellsBasic + Community
Smells + Social Factors
Technical Factors Technical Factors Technical Factors
Community Smells Community Smells
Social Factors
![Page 35: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/35.jpg)
The case of code smellsBasic Model Basic + Community
SmellsBasic + Community
Smells + Social Factors
Technical Factors Technical Factors Technical Factors
Community Smells Community Smells
Social Factors
We controlled the extent to which community smells can explain the phenomenon
![Page 36: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/36.jpg)
The case of code smellsWe complemented the quantitative analyses by asking to 5 project managers to reason about possible scenarios occurring in a real context
![Page 37: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/37.jpg)
The case of code smellsWe complemented the quantitative analyses by asking to 5 project managers to reason about possible scenarios occurring in a real context
Given a scenario where a community smell exists
![Page 38: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/38.jpg)
The case of code smellsWe complemented the quantitative analyses by asking to 5 project managers to reason about possible scenarios occurring in a real context
Given a scenario where a community smell exists
Consequences
![Page 39: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/39.jpg)
A complex problem
?NO CLEAR ANSWERS!
NO SILVER BULLETS!
![Page 40: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/40.jpg)
Social Debt Analytics for Improving the Management of Software Evolution TasksFabio Palomba*#, Alexander Serebrenik#, Andy Zaidman**Delft University of Technology, #Eindhoven University of Technology, The Netherlands
![Page 41: Social Debt Analytics for Improving the Management of Software Evolution Tasks](https://reader031.vdocument.in/reader031/viewer/2022030318/5a6d121a7f8b9a22428b4bd9/html5/thumbnails/41.jpg)
The 2nd International Workshop on Machine Learning Techniques for Software Quality Evaluation
Abstract Deadline: Full Paper Submission:
January 12nd, 2018 January 19th, 2018
https://maltesque.github.io