SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
How Developers Spend
Their Effort During
Maintenance Activities
Zéphyrin Soh, Foutse Khomh,
Yann-Gaël Guéhéneuc, Giuliano Antoniol

École Polytechnique Montréal
July, 5th 2013
Outline


Introduction



Goal and Benefits



Background



Empirical Study



– RQ1
– RQ2
Conclusion



Threats to Validity
Introduction


Performing maintenance task = spend a certain
effort to provide some results



Effort:



explore the program
 find relevant program entities
 understand and make changes on the program
entities
Result:





Changes made on source code
Provide as patch or commit in repository
Motivating Example




Exploration graph
Explored, relevant,
additional files
Motivating Example




Exploration graph
Explored, relevant,
additional files
Motivating Example




Exploration graph
Explored, relevant,
additional files
Motivating Examples





Does the effort spend is proportional to the
results?
What are the factors that may affect developers'
effort?
Motivations
How developers' spend their effort may
affect their productivity




Some tasks need less effort while others need
more effort
Some developers may take comparatively less
effort than others :
for a task of equal complexity
 to provide the results of equal size
==> Important to know why these differences

Goal


Main goal
How can we help developers based on
the way they spend their effort?



Specific goals
Understand how developers spend their effort
 Study whether there are factors which can be
influenced by tooling
==> Propose such tooling

Benefits


Better assign tasks to developers



A developer may perform well for some kind of
task e.g., task that need to change a method vs.
add new method
Refine recommendation systems



Be careful when recommending effort consuming
entities that are not relevant to a task
Guide developers during program exploration




Background
Need detailed information about :


Developers' programming activities
Interactions histories
Recorded by Eclipse Mylyn plugin
==> opportunity to estimate developers' effort



The changes made to address a task
Patches : contains the source code before and after
the changes
Background




Developers must activate the task to gather
interactions, and disable to stop gathered
interactiosns
XML files
– How developers explore a program entities
– The time spend on each entity
Empirical Study




Four open-source projects : ECF, Mylyn, PDE,
Eclipse Platform
RQ1 : Does the complexity of the implementation
of a task reflects developer’s effort?

?
Effort

Complexity of the
implementation
Empirical Study


RQ2 : How developers spend their effort?

What are the factors affecting developers’ effort?
Bug severity

?
?

Developers'
Experience

Effort

?
Additional
Files
RQ1 : Effort vs. Complexity of the
implementation


Does the task that require complex implementation
require more effort?
–



Sometimes, a simple implementation can also
require a lot of effort

Effort : Interactions data





Time spend
Cyclomatic complexity

Complexity of the implementation : Patches data


Entropy



Change distance
Developers' effort


Time Spend


Total duration spent on all files and their contents

f1(2min), f2.m1(3min), f3.field1(1min) ==> 6min




The more a task takes time, the more the effort is
spent to understand and perform changes.

Cyclomatic complexity


Cyclomatic = edges – vertex + connected_components



connected_components = 1
The more is the cyclomatic complexity of the
exploration graph, the more developers' spend effort to
explore the program.
Complexity of the Implementation


Entropy


How much the changes are scarttered between files

Change 5 LOC : on 1 file vs. on 5 files




The more the entropy is high, the more the changes are
scattered between files, thus complex implementation

Change distance


How much is the difference between the source code
before the changes and source code after the changes

Add new LOC vs. rename a variable in a LOC


The greater is the difference between the old and the
new code (i.e., more change distance), the more the
change is complex
RQ1 : Approach





Identify the patch that is the result of a given interaction
Ensure that the changes in the patch are the results of the
effort spend in the interaction

==> Use working date and modifications dates


When developers create a patch?


Before disable the task : 26.04%



After disable the task : 73.95%



delta(t) ~ 12 min

==> Cannot automatically match based on these dates
RQ1 : Approach
A patch is the result of the corresponding interaction if and
only if both are attached to the same bug report, by the
same developer at the same date and time.


Unbalanced matchings


Files are changed but not explored

==> refactoring (propagation) or interruption period


no common files between the interaction and the
patch

==> Changes without activited the task
The patch is not the result of the interaction
RQ1 : Results
Matching Unbalanced
ECF

15

2

Mylyn

663

122

PDE

132

27

Platform

218

66

1,028

217

Total


After finding where and how to perform the task,
developers' disable the task before performing the
changes
RQ1 : Results




Spearman correlation Effort vs. Complexity of the
implementation (0.16 to 0.33)
Developers do not necessary spend more effort on
tasks requiring more complex implementations

==> some of the effort spend by developers on a task
do not materialise in the patch?
Complexity of the
implementation

Effort
How developers spend their effort?




Additional files may increase the developers’ effort and
decrease their productivity
How much developers used additional files?
–
–



Jaccard similarity between the significantly relevant
files and explored files
On average, developers use about 62% of
additional files.

Developers who explore a large number of additional
files spend more effort to perform the task

Effort
Additional
Files
What are the factors affecting
developers’ effort?


Bug severity



Developers' experience
Bug severity

?
?

Developers'
Experience

Effort
Effort vs. Bug Severity




The effort spent to perform easy tasks must be
different to the effort spent to perform more
complex tasks
Approach
– Make sure that the bug severity indicates
the complexity of the implementation
• Kruskall-Wallis test : Bug severity vs.
Complexity of the implementation
– Kruskall-Wallis test : Bug severity vs. Effort
Effort vs. Bug Severity




Bug severity indicates the complexity of the
implementation
Bug severities that required less files did not
necessarily required less changes
Effort vs. Bug severity


The relation between developers’ effort and bug
severities is project dependant

Complexity of the
implementation

Bug severity
Project dependent

Effort
Effort vs. Experience




An experienced developer would spend less effort
compared to inexperienced developers
Approach
–

Compute experience metrics

–

Correlation : Experience vs. Effort
Effort vs. Experience


Experience metrics
–
–

#Files (NF) that the developer changed before

–


#Bugs (NB) that the devloper fixed before
#LOC (NLOC) : sum of added and deleted LOC

Task1 : f1(2 LOC) and f2(5 LOC)
–



First task ==> experience (0, 0, 0)

Task2 :
–
–

C1 : Significantly relevant files for Task2 = f2, f3, f4

–


Experience (1 task, 2 files, 7 LOC)
C2 : Significantly relevant files for Task2 = f6, …, f9

Experience(C1) vs. Experience(C2)?
Effort vs. Experience


More experience when the significantly relevant files for a
given task have already been used in previous tasks.

==> Two kind of experience :


Overall Experience (OE) : task-independent



(task) Relevant Experience (RE) : based on relevant files



C1 : Significantly relevant files for Task2 = f2, f3, f4
–
–



OE = 1 task, 2 files, and 7 LOC
RE = 1 task, 1 file, and 2 LOC

C2 : Significantly relevant files for Task2 = f6, …, f9
–

OE = 1 task, 2 files, and 7 LOC

–

RE = 1 task, 0 file, and 0 LOC
Effort vs. Experience




No consensus about the benefits of experience on the
effort spend
The experience may reduce the effort in some few cases

==> weak negative correlation between effort and
experience


Robbes and Röthlisberger [1] also found weak negative
correlation using the number of commits to measure
experience

==> one can use the number of task and the number of files
changed before to measure developers’ experience
[1] R. Robbes and D. Röthlisberger. Using developer interaction data to compare expertise metrics. MSR ’13
Effort vs. Experience




No benefits of experience
When a program evolves, developers increasingly perform
tasks on the files that they never used before

Files never used

More files never used

Less files never used
More files never used
Conclusion
Complexity of the
implementation

Bug severity
Project
dependent

Effort
Developers'
Experience

Additional
Files
Threats to Validity


Construct validity : Mismatching (the patch is not the result of
the interaction)
–
–



Remove unbalanced matchings
No guarantee that we didn't miss some matchings

Conclusion validity
–
–



No violation of assumptions of the statistical tests
No causation : only observations based on correlation
and distribution of metrics values

Internal validity
–



Only Mylyn's interaction histories

External validity
–

Open-source projects
Thanks for your attention!

Complexity of the
implementation

Bug severity
Project
dependent

Effort
Developers'
Experience

Additional
Files

Mais conteúdo relacionado

Mais procurados

Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...Alan Braz
 
2016 04-25 continuous integration at google scale
2016 04-25 continuous integration at google scale2016 04-25 continuous integration at google scale
2016 04-25 continuous integration at google scaleJohn Micco
 
Early Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software DevelopmentEarly Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software DevelopmentRoopesh Jhurani
 
ProDebt's Lessons Learned from Planning Technical Debt Strategically
ProDebt's Lessons Learned from Planning Technical Debt StrategicallyProDebt's Lessons Learned from Planning Technical Debt Strategically
ProDebt's Lessons Learned from Planning Technical Debt StrategicallyQAware GmbH
 
ICPE 2022 - Data Challenge
ICPE 2022 - Data ChallengeICPE 2022 - Data Challenge
ICPE 2022 - Data ChallengeLuc Lesoil
 
Continuous integration at scale
Continuous integration at scaleContinuous integration at scale
Continuous integration at scaleVivek Singh
 
Strayer bus 375 midterm exam part 2
Strayer bus 375 midterm exam part 2Strayer bus 375 midterm exam part 2
Strayer bus 375 midterm exam part 2nikig6806
 
Agile Product Line Engineering Literature Review
Agile Product Line Engineering Literature ReviewAgile Product Line Engineering Literature Review
Agile Product Line Engineering Literature ReviewHeba Elshandidy
 
Strayer bus 375 midterm exam part 2
Strayer bus 375 midterm exam part 2Strayer bus 375 midterm exam part 2
Strayer bus 375 midterm exam part 2eyavagal
 
Adoption of Software Testing in Open Source Projects - A Preliminary Study on...
Adoption of Software Testing in Open Source Projects - A Preliminary Study on...Adoption of Software Testing in Open Source Projects - A Preliminary Study on...
Adoption of Software Testing in Open Source Projects - A Preliminary Study on...Pavneet Singh Kochhar
 
CertificationScrumDevloper
CertificationScrumDevloperCertificationScrumDevloper
CertificationScrumDevloperSébastien Coste
 
Glenn Vanderburg — Real software engineering
Glenn Vanderburg — Real software engineeringGlenn Vanderburg — Real software engineering
Glenn Vanderburg — Real software engineeringatr2006
 
224 - Factors Impacting Rapid Releases: An Industrial Case Study
224 - Factors Impacting Rapid Releases: An Industrial Case Study224 - Factors Impacting Rapid Releases: An Industrial Case Study
224 - Factors Impacting Rapid Releases: An Industrial Case StudyESEM 2014
 
Revisiting Assert Use in GitHub Projects
Revisiting Assert Use in GitHub ProjectsRevisiting Assert Use in GitHub Projects
Revisiting Assert Use in GitHub ProjectsPavneet Singh Kochhar
 
Software Estimation
Software EstimationSoftware Estimation
Software EstimationNguyen Hai
 
SDPM - Lecture 4 - Activity planning and resource allocation
SDPM - Lecture 4 - Activity planning and resource allocationSDPM - Lecture 4 - Activity planning and resource allocation
SDPM - Lecture 4 - Activity planning and resource allocationOpenLearningLab
 
The International Journal of Engineering and Science (IJES)
The International Journal of Engineering and Science (IJES)The International Journal of Engineering and Science (IJES)
The International Journal of Engineering and Science (IJES)theijes
 

Mais procurados (18)

Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...
 
2016 04-25 continuous integration at google scale
2016 04-25 continuous integration at google scale2016 04-25 continuous integration at google scale
2016 04-25 continuous integration at google scale
 
Early Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software DevelopmentEarly Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software Development
 
ProDebt's Lessons Learned from Planning Technical Debt Strategically
ProDebt's Lessons Learned from Planning Technical Debt StrategicallyProDebt's Lessons Learned from Planning Technical Debt Strategically
ProDebt's Lessons Learned from Planning Technical Debt Strategically
 
ICPE 2022 - Data Challenge
ICPE 2022 - Data ChallengeICPE 2022 - Data Challenge
ICPE 2022 - Data Challenge
 
Continuous integration at scale
Continuous integration at scaleContinuous integration at scale
Continuous integration at scale
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Strayer bus 375 midterm exam part 2
Strayer bus 375 midterm exam part 2Strayer bus 375 midterm exam part 2
Strayer bus 375 midterm exam part 2
 
Agile Product Line Engineering Literature Review
Agile Product Line Engineering Literature ReviewAgile Product Line Engineering Literature Review
Agile Product Line Engineering Literature Review
 
Strayer bus 375 midterm exam part 2
Strayer bus 375 midterm exam part 2Strayer bus 375 midterm exam part 2
Strayer bus 375 midterm exam part 2
 
Adoption of Software Testing in Open Source Projects - A Preliminary Study on...
Adoption of Software Testing in Open Source Projects - A Preliminary Study on...Adoption of Software Testing in Open Source Projects - A Preliminary Study on...
Adoption of Software Testing in Open Source Projects - A Preliminary Study on...
 
CertificationScrumDevloper
CertificationScrumDevloperCertificationScrumDevloper
CertificationScrumDevloper
 
Glenn Vanderburg — Real software engineering
Glenn Vanderburg — Real software engineeringGlenn Vanderburg — Real software engineering
Glenn Vanderburg — Real software engineering
 
224 - Factors Impacting Rapid Releases: An Industrial Case Study
224 - Factors Impacting Rapid Releases: An Industrial Case Study224 - Factors Impacting Rapid Releases: An Industrial Case Study
224 - Factors Impacting Rapid Releases: An Industrial Case Study
 
Revisiting Assert Use in GitHub Projects
Revisiting Assert Use in GitHub ProjectsRevisiting Assert Use in GitHub Projects
Revisiting Assert Use in GitHub Projects
 
Software Estimation
Software EstimationSoftware Estimation
Software Estimation
 
SDPM - Lecture 4 - Activity planning and resource allocation
SDPM - Lecture 4 - Activity planning and resource allocationSDPM - Lecture 4 - Activity planning and resource allocation
SDPM - Lecture 4 - Activity planning and resource allocation
 
The International Journal of Engineering and Science (IJES)
The International Journal of Engineering and Science (IJES)The International Journal of Engineering and Science (IJES)
The International Journal of Engineering and Science (IJES)
 

Destaque

130712 keshav choudhary - studying developer co-ordination patterns in os d...
130712   keshav choudhary - studying developer co-ordination patterns in os d...130712   keshav choudhary - studying developer co-ordination patterns in os d...
130712 keshav choudhary - studying developer co-ordination patterns in os d...Ptidej Team
 
单元二:识字教学
单元二:识字教学单元二:识字教学
单元二:识字教学Shin Lee
 
130102 venera arnaoudova - a new family of software anti-patterns linguisti...
130102   venera arnaoudova - a new family of software anti-patterns linguisti...130102   venera arnaoudova - a new family of software anti-patterns linguisti...
130102 venera arnaoudova - a new family of software anti-patterns linguisti...Ptidej Team
 
The Research of Incubation Center in Silicon Valley
The Research of Incubation Center in Silicon Valley The Research of Incubation Center in Silicon Valley
The Research of Incubation Center in Silicon Valley Naoya Muto
 
Sesión wiki
Sesión wikiSesión wiki
Sesión wikiruth1510
 
Future of media is here today. Lessons learned while turning City Magazine in...
Future of media is here today. Lessons learned while turning City Magazine in...Future of media is here today. Lessons learned while turning City Magazine in...
Future of media is here today. Lessons learned while turning City Magazine in...Ilkka O. Lavas
 
130614 sebastiano panichella - mining source code descriptions from develo...
130614   sebastiano panichella -  mining source code descriptions from develo...130614   sebastiano panichella -  mining source code descriptions from develo...
130614 sebastiano panichella - mining source code descriptions from develo...Ptidej Team
 
Ilmu bedah kolon2
Ilmu bedah kolon2Ilmu bedah kolon2
Ilmu bedah kolon2Iva Maria
 
130411 francis palma - detection of process antipatterns -- a bpel perspective
130411   francis palma - detection of process antipatterns -- a bpel perspective130411   francis palma - detection of process antipatterns -- a bpel perspective
130411 francis palma - detection of process antipatterns -- a bpel perspectivePtidej Team
 
1 M-CARE: Дидактическа подкрепа за учене през мобилен телефон
1 M-CARE: Дидактическа подкрепа за учене през мобилен телефон1 M-CARE: Дидактическа подкрепа за учене през мобилен телефон
1 M-CARE: Дидактическа подкрепа за учене през мобилен телефонKarel Van Isacker
 
2 M-CARE: Информираност за уврежданията
2 M-CARE: Информираност за уврежданията2 M-CARE: Информираност за уврежданията
2 M-CARE: Информираност за уврежданиятаKarel Van Isacker
 
Kairós eso 4
Kairós eso 4Kairós eso 4
Kairós eso 4Javier Dn
 
Power point Presentation
Power point PresentationPower point Presentation
Power point PresentationSumesh SV
 

Destaque (20)

130712 keshav choudhary - studying developer co-ordination patterns in os d...
130712   keshav choudhary - studying developer co-ordination patterns in os d...130712   keshav choudhary - studying developer co-ordination patterns in os d...
130712 keshav choudhary - studying developer co-ordination patterns in os d...
 
单元二:识字教学
单元二:识字教学单元二:识字教学
单元二:识字教学
 
130102 venera arnaoudova - a new family of software anti-patterns linguisti...
130102   venera arnaoudova - a new family of software anti-patterns linguisti...130102   venera arnaoudova - a new family of software anti-patterns linguisti...
130102 venera arnaoudova - a new family of software anti-patterns linguisti...
 
The Research of Incubation Center in Silicon Valley
The Research of Incubation Center in Silicon Valley The Research of Incubation Center in Silicon Valley
The Research of Incubation Center in Silicon Valley
 
(42) viiolencia sexual estudios
(42) viiolencia sexual estudios(42) viiolencia sexual estudios
(42) viiolencia sexual estudios
 
Sesión wiki
Sesión wikiSesión wiki
Sesión wiki
 
Future of media is here today. Lessons learned while turning City Magazine in...
Future of media is here today. Lessons learned while turning City Magazine in...Future of media is here today. Lessons learned while turning City Magazine in...
Future of media is here today. Lessons learned while turning City Magazine in...
 
Economie S40 2013
Economie S40 2013Economie S40 2013
Economie S40 2013
 
130614 sebastiano panichella - mining source code descriptions from develo...
130614   sebastiano panichella -  mining source code descriptions from develo...130614   sebastiano panichella -  mining source code descriptions from develo...
130614 sebastiano panichella - mining source code descriptions from develo...
 
4 M-CARE: Политика
4 M-CARE: Политика4 M-CARE: Политика
4 M-CARE: Политика
 
Ilmu bedah kolon2
Ilmu bedah kolon2Ilmu bedah kolon2
Ilmu bedah kolon2
 
130411 francis palma - detection of process antipatterns -- a bpel perspective
130411   francis palma - detection of process antipatterns -- a bpel perspective130411   francis palma - detection of process antipatterns -- a bpel perspective
130411 francis palma - detection of process antipatterns -- a bpel perspective
 
1 M-CARE: Дидактическа подкрепа за учене през мобилен телефон
1 M-CARE: Дидактическа подкрепа за учене през мобилен телефон1 M-CARE: Дидактическа подкрепа за учене през мобилен телефон
1 M-CARE: Дидактическа подкрепа за учене през мобилен телефон
 
2 M-CARE: Информираност за уврежданията
2 M-CARE: Информираност за уврежданията2 M-CARE: Информираност за уврежданията
2 M-CARE: Информираност за уврежданията
 
PEAD - Practica 8 Circuito off-delay
PEAD - Practica 8 Circuito off-delayPEAD - Practica 8 Circuito off-delay
PEAD - Practica 8 Circuito off-delay
 
Ecoexpo
EcoexpoEcoexpo
Ecoexpo
 
Kairós eso 4
Kairós eso 4Kairós eso 4
Kairós eso 4
 
Société S40 2013
Société S40 2013Société S40 2013
Société S40 2013
 
Power point Presentation
Power point PresentationPower point Presentation
Power point Presentation
 
Mahmoud CV 2015
Mahmoud CV 2015Mahmoud CV 2015
Mahmoud CV 2015
 

Semelhante a How Developers Spend Effort During Maintenance and Factors That Affect It

131016 wcre-matching
131016   wcre-matching131016   wcre-matching
131016 wcre-matchingZephyrin Soh
 
CH02_Software_development_life_cycle (1).pptx
CH02_Software_development_life_cycle (1).pptxCH02_Software_development_life_cycle (1).pptx
CH02_Software_development_life_cycle (1).pptxKhcThKhnhHuyn1T20ACN
 
Managing Inquiry-based Learning: Learning from experience
Managing Inquiry-based Learning: Learning from experienceManaging Inquiry-based Learning: Learning from experience
Managing Inquiry-based Learning: Learning from experiencecilass.slideshare
 
A controlled experiment in assessing and estimating software maintenance tasks
A controlled experiment in assessing and estimating software maintenance tasks A controlled experiment in assessing and estimating software maintenance tasks
A controlled experiment in assessing and estimating software maintenance tasks sadique_ghitm
 
Test-Driven-Development.pptx
Test-Driven-Development.pptxTest-Driven-Development.pptx
Test-Driven-Development.pptxdheeraj438799
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.Masoud Kalali
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build AutomationHeiswayi Nrird
 
Chapter1 conventional softwaremanagement (1)
Chapter1 conventional softwaremanagement (1)Chapter1 conventional softwaremanagement (1)
Chapter1 conventional softwaremanagement (1)Jkumararaja
 
An Empirical Study of the Effect of File Editing Patterns on Software Quality
An Empirical Study of the Effect of File Editing Patterns on Software QualityAn Empirical Study of the Effect of File Editing Patterns on Software Quality
An Empirical Study of the Effect of File Editing Patterns on Software QualityFeng Zhang
 
Wcre2012 patterns slides (1)
Wcre2012 patterns slides (1)Wcre2012 patterns slides (1)
Wcre2012 patterns slides (1)SAIL_QU
 
ISTQB Foundation - Chapter 2
ISTQB Foundation - Chapter 2ISTQB Foundation - Chapter 2
ISTQB Foundation - Chapter 2Chandukar
 
Object Oriented Programming Lab Manual
Object Oriented Programming Lab Manual Object Oriented Programming Lab Manual
Object Oriented Programming Lab Manual Abdul Hannan
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering JayaKamal
 

Semelhante a How Developers Spend Effort During Maintenance and Factors That Affect It (20)

Qrs17a.ppt
Qrs17a.pptQrs17a.ppt
Qrs17a.ppt
 
Qrs17a.ppt
Qrs17a.pptQrs17a.ppt
Qrs17a.ppt
 
Wcre13b.ppt
Wcre13b.pptWcre13b.ppt
Wcre13b.ppt
 
131016 wcre-matching
131016   wcre-matching131016   wcre-matching
131016 wcre-matching
 
Wcre13b.ppt
Wcre13b.pptWcre13b.ppt
Wcre13b.ppt
 
CH02_Software_development_life_cycle (1).pptx
CH02_Software_development_life_cycle (1).pptxCH02_Software_development_life_cycle (1).pptx
CH02_Software_development_life_cycle (1).pptx
 
Managing Inquiry-based Learning: Learning from experience
Managing Inquiry-based Learning: Learning from experienceManaging Inquiry-based Learning: Learning from experience
Managing Inquiry-based Learning: Learning from experience
 
A controlled experiment in assessing and estimating software maintenance tasks
A controlled experiment in assessing and estimating software maintenance tasks A controlled experiment in assessing and estimating software maintenance tasks
A controlled experiment in assessing and estimating software maintenance tasks
 
Test-Driven-Development.pptx
Test-Driven-Development.pptxTest-Driven-Development.pptx
Test-Driven-Development.pptx
 
agile methods.docx
agile methods.docxagile methods.docx
agile methods.docx
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
Chapter1 conventional softwaremanagement (1)
Chapter1 conventional softwaremanagement (1)Chapter1 conventional softwaremanagement (1)
Chapter1 conventional softwaremanagement (1)
 
An Empirical Study of the Effect of File Editing Patterns on Software Quality
An Empirical Study of the Effect of File Editing Patterns on Software QualityAn Empirical Study of the Effect of File Editing Patterns on Software Quality
An Empirical Study of the Effect of File Editing Patterns on Software Quality
 
Wcre2012 patterns slides (1)
Wcre2012 patterns slides (1)Wcre2012 patterns slides (1)
Wcre2012 patterns slides (1)
 
tip oopt pse-summit2017
tip oopt pse-summit2017tip oopt pse-summit2017
tip oopt pse-summit2017
 
ISTQB Foundation - Chapter 2
ISTQB Foundation - Chapter 2ISTQB Foundation - Chapter 2
ISTQB Foundation - Chapter 2
 
Object Oriented Programming Lab Manual
Object Oriented Programming Lab Manual Object Oriented Programming Lab Manual
Object Oriented Programming Lab Manual
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering
 

Mais de Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software MiniaturisationPtidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel BriandPtidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel AbdellatifPtidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh KermansaraviPtidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel GrichiPtidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano PolitowskiPtidej Team
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisisPtidej Team
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptPtidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptPtidej Team
 

Mais de Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 

Último

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Último (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

How Developers Spend Effort During Maintenance and Factors That Affect It

  • 1. How Developers Spend Their Effort During Maintenance Activities Zéphyrin Soh, Foutse Khomh, Yann-Gaël Guéhéneuc, Giuliano Antoniol École Polytechnique Montréal July, 5th 2013
  • 2. Outline  Introduction  Goal and Benefits  Background  Empirical Study  – RQ1 – RQ2 Conclusion  Threats to Validity
  • 3. Introduction  Performing maintenance task = spend a certain effort to provide some results  Effort:  explore the program  find relevant program entities  understand and make changes on the program entities Result:    Changes made on source code Provide as patch or commit in repository
  • 7. Motivating Examples   Does the effort spend is proportional to the results? What are the factors that may affect developers' effort?
  • 8. Motivations How developers' spend their effort may affect their productivity   Some tasks need less effort while others need more effort Some developers may take comparatively less effort than others : for a task of equal complexity  to provide the results of equal size ==> Important to know why these differences 
  • 9. Goal  Main goal How can we help developers based on the way they spend their effort?  Specific goals Understand how developers spend their effort  Study whether there are factors which can be influenced by tooling ==> Propose such tooling 
  • 10. Benefits  Better assign tasks to developers  A developer may perform well for some kind of task e.g., task that need to change a method vs. add new method Refine recommendation systems  Be careful when recommending effort consuming entities that are not relevant to a task Guide developers during program exploration  
  • 11. Background Need detailed information about :  Developers' programming activities Interactions histories Recorded by Eclipse Mylyn plugin ==> opportunity to estimate developers' effort  The changes made to address a task Patches : contains the source code before and after the changes
  • 12. Background   Developers must activate the task to gather interactions, and disable to stop gathered interactiosns XML files – How developers explore a program entities – The time spend on each entity
  • 13. Empirical Study   Four open-source projects : ECF, Mylyn, PDE, Eclipse Platform RQ1 : Does the complexity of the implementation of a task reflects developer’s effort? ? Effort Complexity of the implementation
  • 14. Empirical Study  RQ2 : How developers spend their effort? What are the factors affecting developers’ effort? Bug severity ? ? Developers' Experience Effort ? Additional Files
  • 15. RQ1 : Effort vs. Complexity of the implementation  Does the task that require complex implementation require more effort? –  Sometimes, a simple implementation can also require a lot of effort Effort : Interactions data    Time spend Cyclomatic complexity Complexity of the implementation : Patches data  Entropy  Change distance
  • 16. Developers' effort  Time Spend  Total duration spent on all files and their contents f1(2min), f2.m1(3min), f3.field1(1min) ==> 6min   The more a task takes time, the more the effort is spent to understand and perform changes. Cyclomatic complexity  Cyclomatic = edges – vertex + connected_components  connected_components = 1 The more is the cyclomatic complexity of the exploration graph, the more developers' spend effort to explore the program.
  • 17. Complexity of the Implementation  Entropy  How much the changes are scarttered between files Change 5 LOC : on 1 file vs. on 5 files   The more the entropy is high, the more the changes are scattered between files, thus complex implementation Change distance  How much is the difference between the source code before the changes and source code after the changes Add new LOC vs. rename a variable in a LOC  The greater is the difference between the old and the new code (i.e., more change distance), the more the change is complex
  • 18. RQ1 : Approach   Identify the patch that is the result of a given interaction Ensure that the changes in the patch are the results of the effort spend in the interaction ==> Use working date and modifications dates  When developers create a patch?  Before disable the task : 26.04%  After disable the task : 73.95%  delta(t) ~ 12 min ==> Cannot automatically match based on these dates
  • 19. RQ1 : Approach A patch is the result of the corresponding interaction if and only if both are attached to the same bug report, by the same developer at the same date and time.  Unbalanced matchings  Files are changed but not explored ==> refactoring (propagation) or interruption period  no common files between the interaction and the patch ==> Changes without activited the task The patch is not the result of the interaction
  • 20. RQ1 : Results Matching Unbalanced ECF 15 2 Mylyn 663 122 PDE 132 27 Platform 218 66 1,028 217 Total  After finding where and how to perform the task, developers' disable the task before performing the changes
  • 21. RQ1 : Results   Spearman correlation Effort vs. Complexity of the implementation (0.16 to 0.33) Developers do not necessary spend more effort on tasks requiring more complex implementations ==> some of the effort spend by developers on a task do not materialise in the patch? Complexity of the implementation Effort
  • 22. How developers spend their effort?   Additional files may increase the developers’ effort and decrease their productivity How much developers used additional files? – –  Jaccard similarity between the significantly relevant files and explored files On average, developers use about 62% of additional files. Developers who explore a large number of additional files spend more effort to perform the task Effort Additional Files
  • 23. What are the factors affecting developers’ effort?  Bug severity  Developers' experience Bug severity ? ? Developers' Experience Effort
  • 24. Effort vs. Bug Severity   The effort spent to perform easy tasks must be different to the effort spent to perform more complex tasks Approach – Make sure that the bug severity indicates the complexity of the implementation • Kruskall-Wallis test : Bug severity vs. Complexity of the implementation – Kruskall-Wallis test : Bug severity vs. Effort
  • 25. Effort vs. Bug Severity   Bug severity indicates the complexity of the implementation Bug severities that required less files did not necessarily required less changes
  • 26. Effort vs. Bug severity  The relation between developers’ effort and bug severities is project dependant Complexity of the implementation Bug severity Project dependent Effort
  • 27. Effort vs. Experience   An experienced developer would spend less effort compared to inexperienced developers Approach – Compute experience metrics – Correlation : Experience vs. Effort
  • 28. Effort vs. Experience  Experience metrics – – #Files (NF) that the developer changed before –  #Bugs (NB) that the devloper fixed before #LOC (NLOC) : sum of added and deleted LOC Task1 : f1(2 LOC) and f2(5 LOC) –  First task ==> experience (0, 0, 0) Task2 : – – C1 : Significantly relevant files for Task2 = f2, f3, f4 –  Experience (1 task, 2 files, 7 LOC) C2 : Significantly relevant files for Task2 = f6, …, f9 Experience(C1) vs. Experience(C2)?
  • 29. Effort vs. Experience  More experience when the significantly relevant files for a given task have already been used in previous tasks. ==> Two kind of experience :  Overall Experience (OE) : task-independent  (task) Relevant Experience (RE) : based on relevant files  C1 : Significantly relevant files for Task2 = f2, f3, f4 – –  OE = 1 task, 2 files, and 7 LOC RE = 1 task, 1 file, and 2 LOC C2 : Significantly relevant files for Task2 = f6, …, f9 – OE = 1 task, 2 files, and 7 LOC – RE = 1 task, 0 file, and 0 LOC
  • 30. Effort vs. Experience   No consensus about the benefits of experience on the effort spend The experience may reduce the effort in some few cases ==> weak negative correlation between effort and experience  Robbes and Röthlisberger [1] also found weak negative correlation using the number of commits to measure experience ==> one can use the number of task and the number of files changed before to measure developers’ experience [1] R. Robbes and D. Röthlisberger. Using developer interaction data to compare expertise metrics. MSR ’13
  • 31. Effort vs. Experience   No benefits of experience When a program evolves, developers increasingly perform tasks on the files that they never used before Files never used More files never used Less files never used More files never used
  • 32. Conclusion Complexity of the implementation Bug severity Project dependent Effort Developers' Experience Additional Files
  • 33. Threats to Validity  Construct validity : Mismatching (the patch is not the result of the interaction) – –  Remove unbalanced matchings No guarantee that we didn't miss some matchings Conclusion validity – –  No violation of assumptions of the statistical tests No causation : only observations based on correlation and distribution of metrics values Internal validity –  Only Mylyn's interaction histories External validity – Open-source projects
  • 34. Thanks for your attention! Complexity of the implementation Bug severity Project dependent Effort Developers' Experience Additional Files