Social Debt Analytics for Improving the
Management of Software Evolution Tasks
Fabio 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 Agenda
ICT 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 Goal
Studying how community-related factors influence
technical aspects of software products, with the aim of
producing community-aware software evolution tools
Our Goal
The relationship between social debt 

and technical tasks
Social vs Technical Debt
Social vs Technical Debt
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]
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 Smells
Organizational Silo Effect
Tamburri et al., “The architect’s role in community
shepherding”, IEEE Software, 33(6):70–79, 2016.
Community vs Code Smells
Organizational 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 Smells
Sub-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
LOC
CBO
Total number of commits on a class
Code Churns
Commit and Project Tenure
Code Smell Persistence
Fault-proneness
Socio-technical congruence
Truck-factor
Core-Periphery Ratio
Turnover
Smelly Quitters
The case of code smells
Basic Model Basic + Community
Smells
Basic + Community
Smells + Social
Factors
Technical Factors Technical Factors Technical Factors
Community Smells Community Smells
Social Factors
The case of code smells
Basic Model Basic + Community
Smells
Basic + 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 smells
We complemented the quantitative analyses by
asking to 5 project managers to reason about
possible scenarios occurring in a real context
The case of code smells
We 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 smells
We 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 Tasks
Fabio 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

Social Debt Analytics for Improving the Management of Software Evolution Tasks

  • 1.
    Social Debt Analyticsfor Improving the Management of Software Evolution Tasks Fabio Palomba*#, Alexander Serebrenik#, Andy Zaidman* *Delft University of Technology, #Eindhoven University of Technology, The Netherlands
  • 2.
    “Software and systems complexityis not solely of technological nature but also defined by people and processes” Netherlands Knowledge and Innovation Agenda ICT 2016-2019
  • 3.
    Social and Organizationalfactors are highly relevant for the success of a software project M. Conway, “How do committees invent”, 1968.
  • 4.
    Social and Organizationalfactors 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
  • 5.
    Unfortunately, the softwareevolution community mainly focused on technical aspects of software systems, like software quality management
  • 6.
    While software communitieshave 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
  • 7.
    What about theintersection between social and technical aspects of software systems?
  • 8.
    We cannot separatethe technical side of a product from the surrounding environment
  • 9.
    Our Goal Studying howcommunity-related factors influence technical aspects of software products, with the aim of producing community-aware software evolution tools
  • 10.
    Our Goal The relationshipbetween social debt 
 and technical tasks
  • 11.
  • 12.
    Social vs TechnicalDebt 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]
  • 13.
    Social vs TechnicalDebt 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.
  • 14.
    Community vs CodeSmells Organizational Silo Effect Tamburri et al., “The architect’s role in community shepherding”, IEEE Software, 33(6):70–79, 2016.
  • 15.
    Community vs CodeSmells Organizational Silo Effect Tamburri et al., “The architect’s role in community shepherding”, IEEE Software, 33(6):70–79, 2016.
  • 16.
  • 17.
    Community vs CodeSmells Are they connected?
  • 18.
    Community vs CodeSmells Sub-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
  • 19.
    Community vs CodeSmells “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
  • 20.
    Community vs Bugs ! Thepresence of community smells might lead to communication overhead causing delays in bug triaging and resolution activities
  • 21.
    Community vs Bugs ! Thepresence of community smells might lead to communication overhead causing delays in bug triaging and resolution activities Missing some information, developers might introduce new bugs
  • 22.
    Community vs Bugs ! Thepresence 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
  • 23.
    Community vs CodeReview ! The presence of community smells might lead to communication overhead causing delays in review triaging and review time
  • 24.
    Community vs CodeReview ! 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
  • 25.
    Poor communication betweendevelopers might cause higher rework or even misunderstanding of the requirements, causing higher effort for developers Community vs Effort !
  • 26.
    The presence ofcommunity 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 !
  • 28.
    Social Debt Analyticsfor Improving the Management 
 of Software Evolution Tasks
 HOW TO
  • 29.
    A complex problem Measuringthe Impact of Social Debt ?
  • 30.
    A complex problem Measuringthe Impact of Social Debt ?Statistical Modeling and Machine Learning Methods relating a set of socio-technical factors to the considered variable
  • 31.
    A complex problem Measuringthe Impact of Social Debt ?Statistical Modeling and Machine Learning Methods relating a set of socio-technical factors to the considered variable Establishing Causality
  • 32.
    A complex problem Measuringthe 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
  • 33.
    The case ofcode smells Technical Factors Social Factors LOC CBO Total number of commits on a class Code Churns Commit and Project Tenure Code Smell Persistence Fault-proneness Socio-technical congruence Truck-factor Core-Periphery Ratio Turnover Smelly Quitters
  • 34.
    The case ofcode smells Basic Model Basic + Community Smells Basic + Community Smells + Social Factors Technical Factors Technical Factors Technical Factors Community Smells Community Smells Social Factors
  • 35.
    The case ofcode smells Basic Model Basic + Community Smells Basic + 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
  • 36.
    The case ofcode smells We complemented the quantitative analyses by asking to 5 project managers to reason about possible scenarios occurring in a real context
  • 37.
    The case ofcode smells We 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
  • 38.
    The case ofcode smells We 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
  • 39.
    A complex problem ?NOCLEAR ANSWERS! NO SILVER BULLETS!
  • 40.
    Social Debt Analyticsfor Improving the Management of Software Evolution Tasks Fabio Palomba*#, Alexander Serebrenik#, Andy Zaidman* *Delft University of Technology, #Eindhoven University of Technology, The Netherlands
  • 41.
    The 2nd InternationalWorkshop on Machine Learning Techniques for Software Quality Evaluation Abstract Deadline: 
 Full Paper Submission: January 12nd, 2018
 January 19th, 2018 https://maltesque.github.io