41
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

Social Debt Analytics for Improving the Management of Software Evolution Tasks

Embed Size (px)

Citation preview

Page 1: Social Debt Analytics for Improving the Management of Software Evolution Tasks

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

“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

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

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

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

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

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

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

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

Our GoalThe relationship between social debt

and technical tasks

Page 11: Social Debt Analytics for Improving the Management of Software Evolution Tasks

Social vs Technical Debt

Page 12: Social Debt Analytics for Improving the Management of Software Evolution Tasks

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

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

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

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

GOD CLASS

Community vs Code Smells

Page 17: Social Debt Analytics for Improving the Management of Software Evolution Tasks

Community vs Code Smells

Are they connected?

Page 18: Social Debt Analytics for Improving the Management of Software Evolution Tasks

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

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

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

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

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

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

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

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

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
Page 28: Social Debt Analytics for Improving the Management of Software Evolution Tasks

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

A complex problem Measuring the Impact of Social Debt ?

Page 30: Social Debt Analytics for Improving the Management of Software Evolution Tasks

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

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

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

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

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

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

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

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

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

A complex problem

?NO CLEAR ANSWERS!

NO SILVER BULLETS!

Page 40: Social Debt Analytics for Improving the Management of Software Evolution Tasks

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

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