Post on 28-Jan-2018
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
“Software and systems complexity is not solely of
technological nature but also defined by people
and processes”
Netherlands Knowledge and Innovation AgendaICT 2016-2019
Social and Organizational factors are highly relevant for the success of a software project
M. Conway, “How do committees invent”, 1968.
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
Unfortunately, the software evolution community mainly focused on technical aspects of software systems, like software quality management
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
What about the intersection between social and technical aspects of software systems?
We cannot separate the technical side of a product from the surrounding environment
Our GoalStudying how community-related factors influence
technical aspects of software products, with the aim of producing community-aware software evolution tools
Our GoalThe relationship between social debt
and technical tasks
Social vs Technical Debt
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]
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.
Community vs Code SmellsOrganizational Silo Effect
Tamburri et al., “The architect’s role in community shepherding”, IEEE Software, 33(6):70–79, 2016.
Community vs Code SmellsOrganizational Silo Effect
Tamburri et al., “The architect’s role in community shepherding”, IEEE Software, 33(6):70–79, 2016.
GOD CLASS
Community vs Code Smells
Community vs Code Smells
Are they connected?
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
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
Community vs Bugs
!The presence of community smells might lead to communication overhead causing delays in
bug triaging and resolution activities
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
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
Community vs Code Review
!The presence of community smells might lead to communication overhead causing delays in
review triaging and review time
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
Poor communication between developers might cause higher rework or even misunderstanding of the requirements, causing higher effort for
developers
Community vs Effort
!
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
!
Social Debt Analytics for Improving the Management of Software Evolution Tasks
HOW TO
A complex problem Measuring the Impact of Social Debt ?
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
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
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
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
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
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
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
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
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
A complex problem
?NO CLEAR ANSWERS!
NO SILVER BULLETS!
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
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