SlideShare a Scribd company logo
What Programmers Say About
Refactoring Tools?
An Empirical Investigation of StackOverflow

Gustavo Pinto, Fernando Kamei
Federal University of Pernambuco
{ghlp, fkk}@cin.ufpe.br
Researchers

Programmers
Programmers

Researchers

What they think about?
Programmers

Researchers

What they think about?
Programmers

Researchers

What they think about?
1.5M Users
3.4M Questions
6.8M Answers
40GB of data
A TON of information
(with some quality)
1.5M Users
3.4M Questions
6.8M Answers
40GB of data
A TON of information
(with some quality)

But, what about
Refactoring Tools?
3.4M Questions

Filter questions by “refactoring”
and “tools” on the body, or
subject or tag name.

Store the results in a
single MySQL table.

754 Q
>2K A

from July 31, 2008
to July 31, 2012:
●
●
●

324 Questions
1,135 Answers
1,254 Users
The final data!

Manual filter to remove
false positives
3.4M Questions

Filter questions by “refactoring”
and “tools” key-word, on the
body, or subject or tag name.

Store the results in a
single MySQL table.

754 Q
>2K A

from July 31, 2008
to July 31, 2012:
●
●
●

324 Questions
1,135 Answers
1,254 Users
The final data!

Manual filter to remove
false positives
3.4M Questions

Filter questions by “refactoring”
and “tools” key-word, on the
body, or subject or tag name.

Store the results in a
single MySQL table.

754 Q
>2K A

from July 31, 2008
to July 31, 2012:
●
●
●

324 Questions
1,135 Answers
1,254 Users

2x
The final data!

Manual filter to remove
false positives
Research Questions
● RQ1: What are the most desirable features in
refactoring tools?
● RQ2: What are the barriers to adoption of refactoring
tools?
● RQ3: How is interest in refactoring tools related to
programmer expertise?
● RQ4: Does interest in refactoring tools increase over
the years?
RQ1: What are the most desirable features in refactoring tools?
1. Refactoring for dynamic languages (78 questions ≈ 24.72%)
a. PHP
» 29%
“I am looking for a python tool that will allow
b. JavaScript
» 23%
me to specifically rename and move
c. Python
» 23%
modules.”
d. Ruby
» 11%
StackOverflow Question #9424189
e. Perl
» 9%
f. R
» 1%
g. Perl
» 1%
h. Matlab
» 1%
RQ1: What are the most desirable features in refactoring tools?
1. Refactoring for dynamic languages (78 questions ≈ 24.72%)
2. Refactoring recommendations (45 questions ≈ 13.88%)
“I would prefer a tool that just makes suggestions about possible refactorings: names
the refactoring, optionally provides a short description of it (great for learning purposes),
highlights the code section and lets me do the refactoring myself”
StackOverflow Question #785667
RQ1: What are the most desirable features in refactoring tools?
1. Refactoring for dynamic languages (78 questions ≈ 24.72%)
2. Refactoring recommendations (45 questions ≈ 13.88%)
3. Refactoring for databases (12 questions ≈ 3.71%)
a. Automatic simplification of SQL
b. Refactoring table or views structure
c. Fixing SQL vulnerabilities
“I would like to rename a table column in MySql and also have the name updated in any triggers,
stored procs, etc. that reference the column. [...] If a tool exists that can perform such a
refactoring, it would be great if it could generate an SQL script that applies these changes.”
StackOverflow Question #1644271
RQ1: What are the most desirable features in refactoring tools?
1.
2.
3.
4.

Refactoring for dynamic languages (78 questions ≈ 24.72%)
Refactoring recommendations (45 questions ≈ 13.88%)
Refactoring for databases (12 questions ≈ 3.71%)
Multi-language Refactorings (9 questions ≈ 2.77%)
a. All questions related to JVM languages

“I have inherited significant amounts of Groovy code, and I have found it difficult to maintain [..]. I
have tried to manually convert some pieces to Java, it's been a pain. Are you aware of any tools
or plugins that help with this conversion?”
StackOverflow Question #5302103
RQ2: What are the barriers to adoption of refactoring tools?
In order of interest:

1. Usability problems (52 questions ≈ 16%)
1.1. Unknown tool (54%)
1.2. Difficult to learn (13%)
1.3. Difficult to use (8%)
2. Lack of trust (39 questions ≈ 12%)
RQ2: What are the barriers to adoption of refactoring tools?
In order of interest:

1. Usability problems (16% of Q)
1.1. Unknown tool (54%)
1.2. Difficult to learn (13%)
1.3. Difficult to use (8%)

33% are from novice users
64%
49%

What refactoring tool
do you use to do X in
language Z?
RQ2: What are the barriers to adoption of refactoring tools?
In order of interest:

1. Usability problems (16% of Q)
1.1. Unknown tool (54%)
1.2. Difficult to learn (13%)
1.3. Difficult to use (8%)

Barriers or lack of experience?

33% are from novice users
64%
49%

What refactoring tool
do you use to do X in
language Z?
RQ2: What are the barriers to adoption of refactoring tools?
In order of interest:

1. Usability problems (16% of Q)
1.1. Unknown tool (54%)
1.2. Difficult to learn (13%)
1.3. Difficult to use (8%)
2. Lack of trust (12 % of Q)

Sometimes the tool will change
the meaning of your code,
without you expecting it.

StackOverflow Question #1372059
RQ2: What are the barriers to adoption of refactoring tools?
In order of interest:

1. Usability problems (16% of Q)
1.1. Unknown tool (54%)
1.2. Difficult to learn (13%)
1.3. Difficult to use (8%)
2. Lack of trust (12 % of Q)

“It is not good to decrease readability in
favor of atomicity”
StackOverflow Question #5302103

Sometimes the tool will change
the meaning of your code,
without you expecting it.

StackOverflow Question #1372059
RQ3: How is interest in refactoring tools related to programmer
expertise?
Or.. do only hackers talk about refactoring tools?
RQ3: How is interest in refactoring tools related to programmer
expertise?
Or.. do only hackers talk about refactoring tools?

Q: 39% comes from novices
A: 41% comes from seniors

Novices

Seniors
RQ3: How is interest in refactoring tools related to programmer
expertise?
Or.. do only hackers talk about refactoring tools?

Q: 39% comes from novices
A: 41% comes from seniors

Refactoring tool is a topic that
interest all kind of users.

Novices

Seniors
RQ3: How is interest in refactoring tools related to programmer
expertise?
Or.. do only hackers talk about refactoring tools?

Q: 39% comes from novices
A: 41% comes from seniors

Novices

Seniors

Also, we ran a Person
Correlation between reputation x
questions and reputation x
answers, but no significant
correlation was found.
RQ4: Does interest in refactoring tools increase over the years?
Questions per month
● Median: 6
● Mean: 6.75
● SD: 3.38
● Max: 20
● Min: 1
Answers per month
● Median: 18
● Mean: 23.63
● SD: 16.23
● Max: 73
● Min: 1
RQ4: Does interest in refactoring tools increase over the years?
Questions per month
● Median: 6
● Mean: 6.75
● SD: 3.38
● Max: 20
● Min: 1

● Yes, but very little.

Answers per month
● Median: 18
● Mean: 23.63
● SD: 16.23
● Max: 73
● Min: 1
RQ4: Does interest in refactoring tools increase over the years?
Questions per month
● Median: 6
● Mean: 6.75
● SD: 3.38
● Max: 20
● Min: 1

● Yes, but very little.
● An increment of 0.56 questions per trimester.
● A decrement of -8.13 answers per trimester.

Answers per month
● Median: 18
● Mean: 23.63
● SD: 16.23
● Max: 73
● Min: 1
RQ4: Does interest in refactoring tools increase over the years?
Questions per month
● Median: 6
● Mean: 6.75
● SD: 3.38
● Max: 20
● Min: 1

-0.43 without outliers

● Yes, but very little.
● An increment of 0.56 questions per trimester.
● A decrement of -8.13 answers per trimester.

Answers per month
● Median: 18
● Mean: 23.63
● SD: 16.23
● Max: 73
● Min: 1
Conclusions
● We provided a set of desired features, as well as common
cause for barriers adoption.
○ Insights for researchers and tool vendors
● We observed that novice users produce more questions, and
seniors provide the answers.
○ Also, most of the barriers were reported by novice users
● We identified a relative small interest in refactoring tools
○ Mean of 6 questions / month, sd of 4.45
What Programmers Say About
Refactoring Tools?
An Empirical Investigation of StackOverflow

Gustavo Pinto, Fernando Kamei
Federal University of Pernambuco
{ghlp, fkk}@cin.ufpe.br

More Related Content

Similar to What Programmers Say About Refactoring Tools? An Empirical Investigation of StackOverflow 

Are Automated Debugging Techniques Actually Helping Programmers
Are Automated Debugging Techniques Actually Helping ProgrammersAre Automated Debugging Techniques Actually Helping Programmers
Are Automated Debugging Techniques Actually Helping Programmers
Chris Parnin
 
Overcome the Reign of Chaos
Overcome the Reign of ChaosOvercome the Reign of Chaos
Overcome the Reign of Chaos
Michael Stockerl
 
Evaluating the Usefulness of IR-Based Fault LocalizationTechniques
Evaluating the Usefulness of IR-Based Fault LocalizationTechniquesEvaluating the Usefulness of IR-Based Fault LocalizationTechniques
Evaluating the Usefulness of IR-Based Fault LocalizationTechniques
Alex Orso
 
Code-Review-COW56-Meeting
Code-Review-COW56-MeetingCode-Review-COW56-Meeting
Code-Review-COW56-Meeting
Masud Rahman
 
To Mock or Not To Mock
To Mock or Not To MockTo Mock or Not To Mock
To Mock or Not To Mock
Delft University of Technology
 
Pragmatic software testing education - SIGCSE 2019
Pragmatic software testing education - SIGCSE 2019Pragmatic software testing education - SIGCSE 2019
Pragmatic software testing education - SIGCSE 2019
Maurício Aniche
 
[DSC Europe 23] Dmitry Ustalov - Design and Evaluation of Large Language Models
[DSC Europe 23] Dmitry Ustalov - Design and Evaluation of Large Language Models[DSC Europe 23] Dmitry Ustalov - Design and Evaluation of Large Language Models
[DSC Europe 23] Dmitry Ustalov - Design and Evaluation of Large Language Models
DataScienceConferenc1
 
Sporar
SporarSporar
Sporar
oscon2007
 
Works For Me! Characterizing Non-Reproducible Bug Reports
Works For Me! Characterizing Non-Reproducible Bug ReportsWorks For Me! Characterizing Non-Reproducible Bug Reports
Works For Me! Characterizing Non-Reproducible Bug Reports
SALT Lab @ UBC
 
Investigating the Quality Aspects of Crowd-Sourced Developer Forum: A Case St...
Investigating the Quality Aspects of Crowd-Sourced Developer Forum: A Case St...Investigating the Quality Aspects of Crowd-Sourced Developer Forum: A Case St...
Investigating the Quality Aspects of Crowd-Sourced Developer Forum: A Case St...
University of Saskatchewan
 
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
Joseph Beale
 
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
QA or the Highway
 
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
QA or the Highway
 
Teacher-Aware Active Robot Learning
Teacher-Aware Active Robot LearningTeacher-Aware Active Robot Learning
Teacher-Aware Active Robot Learning
Mattia Racca
 
Kodisto Dojo 16-01 notes (2015-01-14)
Kodisto Dojo 16-01 notes (2015-01-14)Kodisto Dojo 16-01 notes (2015-01-14)
Kodisto Dojo 16-01 notes (2015-01-14)
Lorenzo Solano Martinez
 
StratCel: A Strategy-Centric Approach to the Design of End-User Debugging Tools
StratCel: A Strategy-Centric Approach to the Design of End-User Debugging ToolsStratCel: A Strategy-Centric Approach to the Design of End-User Debugging Tools
StratCel: A Strategy-Centric Approach to the Design of End-User Debugging Tools
hciresearch
 
From Chatbots to Augmented Conversational Assistants
From Chatbots to Augmented Conversational AssistantsFrom Chatbots to Augmented Conversational Assistants
From Chatbots to Augmented Conversational Assistants
Databricks
 
MS.Net Interview Questions - Simplified
MS.Net Interview Questions - SimplifiedMS.Net Interview Questions - Simplified
MS.Net Interview Questions - Simplified
Mohd Manzoor Ahmed
 
An introduction to R is a document useful
An introduction to R is a document usefulAn introduction to R is a document useful
An introduction to R is a document useful
ssuser3c3f88
 
Bug debug keynote - Present problems and future solutions
Bug debug keynote - Present problems and future solutionsBug debug keynote - Present problems and future solutions
Bug debug keynote - Present problems and future solutions
RIA RUI Society
 

Similar to What Programmers Say About Refactoring Tools? An Empirical Investigation of StackOverflow  (20)

Are Automated Debugging Techniques Actually Helping Programmers
Are Automated Debugging Techniques Actually Helping ProgrammersAre Automated Debugging Techniques Actually Helping Programmers
Are Automated Debugging Techniques Actually Helping Programmers
 
Overcome the Reign of Chaos
Overcome the Reign of ChaosOvercome the Reign of Chaos
Overcome the Reign of Chaos
 
Evaluating the Usefulness of IR-Based Fault LocalizationTechniques
Evaluating the Usefulness of IR-Based Fault LocalizationTechniquesEvaluating the Usefulness of IR-Based Fault LocalizationTechniques
Evaluating the Usefulness of IR-Based Fault LocalizationTechniques
 
Code-Review-COW56-Meeting
Code-Review-COW56-MeetingCode-Review-COW56-Meeting
Code-Review-COW56-Meeting
 
To Mock or Not To Mock
To Mock or Not To MockTo Mock or Not To Mock
To Mock or Not To Mock
 
Pragmatic software testing education - SIGCSE 2019
Pragmatic software testing education - SIGCSE 2019Pragmatic software testing education - SIGCSE 2019
Pragmatic software testing education - SIGCSE 2019
 
[DSC Europe 23] Dmitry Ustalov - Design and Evaluation of Large Language Models
[DSC Europe 23] Dmitry Ustalov - Design and Evaluation of Large Language Models[DSC Europe 23] Dmitry Ustalov - Design and Evaluation of Large Language Models
[DSC Europe 23] Dmitry Ustalov - Design and Evaluation of Large Language Models
 
Sporar
SporarSporar
Sporar
 
Works For Me! Characterizing Non-Reproducible Bug Reports
Works For Me! Characterizing Non-Reproducible Bug ReportsWorks For Me! Characterizing Non-Reproducible Bug Reports
Works For Me! Characterizing Non-Reproducible Bug Reports
 
Investigating the Quality Aspects of Crowd-Sourced Developer Forum: A Case St...
Investigating the Quality Aspects of Crowd-Sourced Developer Forum: A Case St...Investigating the Quality Aspects of Crowd-Sourced Developer Forum: A Case St...
Investigating the Quality Aspects of Crowd-Sourced Developer Forum: A Case St...
 
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
 
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers & Testing in ChatGPT-AI world.pptx
 
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
 
Teacher-Aware Active Robot Learning
Teacher-Aware Active Robot LearningTeacher-Aware Active Robot Learning
Teacher-Aware Active Robot Learning
 
Kodisto Dojo 16-01 notes (2015-01-14)
Kodisto Dojo 16-01 notes (2015-01-14)Kodisto Dojo 16-01 notes (2015-01-14)
Kodisto Dojo 16-01 notes (2015-01-14)
 
StratCel: A Strategy-Centric Approach to the Design of End-User Debugging Tools
StratCel: A Strategy-Centric Approach to the Design of End-User Debugging ToolsStratCel: A Strategy-Centric Approach to the Design of End-User Debugging Tools
StratCel: A Strategy-Centric Approach to the Design of End-User Debugging Tools
 
From Chatbots to Augmented Conversational Assistants
From Chatbots to Augmented Conversational AssistantsFrom Chatbots to Augmented Conversational Assistants
From Chatbots to Augmented Conversational Assistants
 
MS.Net Interview Questions - Simplified
MS.Net Interview Questions - SimplifiedMS.Net Interview Questions - Simplified
MS.Net Interview Questions - Simplified
 
An introduction to R is a document useful
An introduction to R is a document usefulAn introduction to R is a document useful
An introduction to R is a document useful
 
Bug debug keynote - Present problems and future solutions
Bug debug keynote - Present problems and future solutionsBug debug keynote - Present problems and future solutions
Bug debug keynote - Present problems and future solutions
 

More from UFPA

Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...
Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...
Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...
UFPA
 
More Common Than You Think: An In-Depth Study of Casual Contributors
More Common Than You Think: An In-Depth Study of Casual ContributorsMore Common Than You Think: An In-Depth Study of Casual Contributors
More Common Than You Think: An In-Depth Study of Casual Contributors
UFPA
 
Possibilidades com python
Possibilidades com pythonPossibilidades com python
Possibilidades com python
UFPA
 
Python simplecv
Python simplecvPython simplecv
Python simplecv
UFPA
 
Porque aprender haskell me fez um programador python melhor?
Porque aprender haskell me fez um programador python melhor?Porque aprender haskell me fez um programador python melhor?
Porque aprender haskell me fez um programador python melhor?
UFPA
 
Are Java Programmers Transitioning to Multicore?
Are Java Programmers Transitioning to Multicore? Are Java Programmers Transitioning to Multicore?
Are Java Programmers Transitioning to Multicore?
UFPA
 
Beljug2010
Beljug2010Beljug2010
Beljug2010
UFPA
 
Grails from scratch
Grails from scratchGrails from scratch
Grails from scratch
UFPA
 
A computacao e_voce_caminhos_para_seguir
A computacao e_voce_caminhos_para_seguirA computacao e_voce_caminhos_para_seguir
A computacao e_voce_caminhos_para_seguir
UFPA
 

More from UFPA (9)

Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...
Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...
Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...
 
More Common Than You Think: An In-Depth Study of Casual Contributors
More Common Than You Think: An In-Depth Study of Casual ContributorsMore Common Than You Think: An In-Depth Study of Casual Contributors
More Common Than You Think: An In-Depth Study of Casual Contributors
 
Possibilidades com python
Possibilidades com pythonPossibilidades com python
Possibilidades com python
 
Python simplecv
Python simplecvPython simplecv
Python simplecv
 
Porque aprender haskell me fez um programador python melhor?
Porque aprender haskell me fez um programador python melhor?Porque aprender haskell me fez um programador python melhor?
Porque aprender haskell me fez um programador python melhor?
 
Are Java Programmers Transitioning to Multicore?
Are Java Programmers Transitioning to Multicore? Are Java Programmers Transitioning to Multicore?
Are Java Programmers Transitioning to Multicore?
 
Beljug2010
Beljug2010Beljug2010
Beljug2010
 
Grails from scratch
Grails from scratchGrails from scratch
Grails from scratch
 
A computacao e_voce_caminhos_para_seguir
A computacao e_voce_caminhos_para_seguirA computacao e_voce_caminhos_para_seguir
A computacao e_voce_caminhos_para_seguir
 

Recently uploaded

Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
Safe Software
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Muhammad Ali
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
Ivanti
 
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
alexjohnson7307
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
maigasapphire
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
Matthias Neugebauer
 
Salesforce AI & Einstein Copilot Workshop
Salesforce AI & Einstein Copilot WorkshopSalesforce AI & Einstein Copilot Workshop
Salesforce AI & Einstein Copilot Workshop
CEPTES Software Inc
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
bhumivarma35300
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Kunal Gupta
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes..."Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
Anant Gupta
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
313mohammedarshad
 
WhatsApp Spy Online Trackers and Monitoring Apps
WhatsApp Spy Online Trackers and Monitoring AppsWhatsApp Spy Online Trackers and Monitoring Apps
WhatsApp Spy Online Trackers and Monitoring Apps
HackersList
 
Google I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged SlidesGoogle I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged Slides
Google Developer Group - Harare
 

Recently uploaded (20)

Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
 
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
 
Salesforce AI & Einstein Copilot Workshop
Salesforce AI & Einstein Copilot WorkshopSalesforce AI & Einstein Copilot Workshop
Salesforce AI & Einstein Copilot Workshop
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes..."Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
 
WhatsApp Spy Online Trackers and Monitoring Apps
WhatsApp Spy Online Trackers and Monitoring AppsWhatsApp Spy Online Trackers and Monitoring Apps
WhatsApp Spy Online Trackers and Monitoring Apps
 
Google I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged SlidesGoogle I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged Slides
 

What Programmers Say About Refactoring Tools? An Empirical Investigation of StackOverflow 

  • 1. What Programmers Say About Refactoring Tools? An Empirical Investigation of StackOverflow Gustavo Pinto, Fernando Kamei Federal University of Pernambuco {ghlp, fkk}@cin.ufpe.br
  • 6. 1.5M Users 3.4M Questions 6.8M Answers 40GB of data A TON of information (with some quality)
  • 7. 1.5M Users 3.4M Questions 6.8M Answers 40GB of data A TON of information (with some quality) But, what about Refactoring Tools?
  • 8. 3.4M Questions Filter questions by “refactoring” and “tools” on the body, or subject or tag name. Store the results in a single MySQL table. 754 Q >2K A from July 31, 2008 to July 31, 2012: ● ● ● 324 Questions 1,135 Answers 1,254 Users The final data! Manual filter to remove false positives
  • 9. 3.4M Questions Filter questions by “refactoring” and “tools” key-word, on the body, or subject or tag name. Store the results in a single MySQL table. 754 Q >2K A from July 31, 2008 to July 31, 2012: ● ● ● 324 Questions 1,135 Answers 1,254 Users The final data! Manual filter to remove false positives
  • 10. 3.4M Questions Filter questions by “refactoring” and “tools” key-word, on the body, or subject or tag name. Store the results in a single MySQL table. 754 Q >2K A from July 31, 2008 to July 31, 2012: ● ● ● 324 Questions 1,135 Answers 1,254 Users 2x The final data! Manual filter to remove false positives
  • 11. Research Questions ● RQ1: What are the most desirable features in refactoring tools? ● RQ2: What are the barriers to adoption of refactoring tools? ● RQ3: How is interest in refactoring tools related to programmer expertise? ● RQ4: Does interest in refactoring tools increase over the years?
  • 12. RQ1: What are the most desirable features in refactoring tools? 1. Refactoring for dynamic languages (78 questions ≈ 24.72%) a. PHP » 29% “I am looking for a python tool that will allow b. JavaScript » 23% me to specifically rename and move c. Python » 23% modules.” d. Ruby » 11% StackOverflow Question #9424189 e. Perl » 9% f. R » 1% g. Perl » 1% h. Matlab » 1%
  • 13. RQ1: What are the most desirable features in refactoring tools? 1. Refactoring for dynamic languages (78 questions ≈ 24.72%) 2. Refactoring recommendations (45 questions ≈ 13.88%) “I would prefer a tool that just makes suggestions about possible refactorings: names the refactoring, optionally provides a short description of it (great for learning purposes), highlights the code section and lets me do the refactoring myself” StackOverflow Question #785667
  • 14. RQ1: What are the most desirable features in refactoring tools? 1. Refactoring for dynamic languages (78 questions ≈ 24.72%) 2. Refactoring recommendations (45 questions ≈ 13.88%) 3. Refactoring for databases (12 questions ≈ 3.71%) a. Automatic simplification of SQL b. Refactoring table or views structure c. Fixing SQL vulnerabilities “I would like to rename a table column in MySql and also have the name updated in any triggers, stored procs, etc. that reference the column. [...] If a tool exists that can perform such a refactoring, it would be great if it could generate an SQL script that applies these changes.” StackOverflow Question #1644271
  • 15. RQ1: What are the most desirable features in refactoring tools? 1. 2. 3. 4. Refactoring for dynamic languages (78 questions ≈ 24.72%) Refactoring recommendations (45 questions ≈ 13.88%) Refactoring for databases (12 questions ≈ 3.71%) Multi-language Refactorings (9 questions ≈ 2.77%) a. All questions related to JVM languages “I have inherited significant amounts of Groovy code, and I have found it difficult to maintain [..]. I have tried to manually convert some pieces to Java, it's been a pain. Are you aware of any tools or plugins that help with this conversion?” StackOverflow Question #5302103
  • 16. RQ2: What are the barriers to adoption of refactoring tools? In order of interest: 1. Usability problems (52 questions ≈ 16%) 1.1. Unknown tool (54%) 1.2. Difficult to learn (13%) 1.3. Difficult to use (8%) 2. Lack of trust (39 questions ≈ 12%)
  • 17. RQ2: What are the barriers to adoption of refactoring tools? In order of interest: 1. Usability problems (16% of Q) 1.1. Unknown tool (54%) 1.2. Difficult to learn (13%) 1.3. Difficult to use (8%) 33% are from novice users 64% 49% What refactoring tool do you use to do X in language Z?
  • 18. RQ2: What are the barriers to adoption of refactoring tools? In order of interest: 1. Usability problems (16% of Q) 1.1. Unknown tool (54%) 1.2. Difficult to learn (13%) 1.3. Difficult to use (8%) Barriers or lack of experience? 33% are from novice users 64% 49% What refactoring tool do you use to do X in language Z?
  • 19. RQ2: What are the barriers to adoption of refactoring tools? In order of interest: 1. Usability problems (16% of Q) 1.1. Unknown tool (54%) 1.2. Difficult to learn (13%) 1.3. Difficult to use (8%) 2. Lack of trust (12 % of Q) Sometimes the tool will change the meaning of your code, without you expecting it. StackOverflow Question #1372059
  • 20. RQ2: What are the barriers to adoption of refactoring tools? In order of interest: 1. Usability problems (16% of Q) 1.1. Unknown tool (54%) 1.2. Difficult to learn (13%) 1.3. Difficult to use (8%) 2. Lack of trust (12 % of Q) “It is not good to decrease readability in favor of atomicity” StackOverflow Question #5302103 Sometimes the tool will change the meaning of your code, without you expecting it. StackOverflow Question #1372059
  • 21. RQ3: How is interest in refactoring tools related to programmer expertise? Or.. do only hackers talk about refactoring tools?
  • 22. RQ3: How is interest in refactoring tools related to programmer expertise? Or.. do only hackers talk about refactoring tools? Q: 39% comes from novices A: 41% comes from seniors Novices Seniors
  • 23. RQ3: How is interest in refactoring tools related to programmer expertise? Or.. do only hackers talk about refactoring tools? Q: 39% comes from novices A: 41% comes from seniors Refactoring tool is a topic that interest all kind of users. Novices Seniors
  • 24. RQ3: How is interest in refactoring tools related to programmer expertise? Or.. do only hackers talk about refactoring tools? Q: 39% comes from novices A: 41% comes from seniors Novices Seniors Also, we ran a Person Correlation between reputation x questions and reputation x answers, but no significant correlation was found.
  • 25. RQ4: Does interest in refactoring tools increase over the years? Questions per month ● Median: 6 ● Mean: 6.75 ● SD: 3.38 ● Max: 20 ● Min: 1 Answers per month ● Median: 18 ● Mean: 23.63 ● SD: 16.23 ● Max: 73 ● Min: 1
  • 26. RQ4: Does interest in refactoring tools increase over the years? Questions per month ● Median: 6 ● Mean: 6.75 ● SD: 3.38 ● Max: 20 ● Min: 1 ● Yes, but very little. Answers per month ● Median: 18 ● Mean: 23.63 ● SD: 16.23 ● Max: 73 ● Min: 1
  • 27. RQ4: Does interest in refactoring tools increase over the years? Questions per month ● Median: 6 ● Mean: 6.75 ● SD: 3.38 ● Max: 20 ● Min: 1 ● Yes, but very little. ● An increment of 0.56 questions per trimester. ● A decrement of -8.13 answers per trimester. Answers per month ● Median: 18 ● Mean: 23.63 ● SD: 16.23 ● Max: 73 ● Min: 1
  • 28. RQ4: Does interest in refactoring tools increase over the years? Questions per month ● Median: 6 ● Mean: 6.75 ● SD: 3.38 ● Max: 20 ● Min: 1 -0.43 without outliers ● Yes, but very little. ● An increment of 0.56 questions per trimester. ● A decrement of -8.13 answers per trimester. Answers per month ● Median: 18 ● Mean: 23.63 ● SD: 16.23 ● Max: 73 ● Min: 1
  • 29. Conclusions ● We provided a set of desired features, as well as common cause for barriers adoption. ○ Insights for researchers and tool vendors ● We observed that novice users produce more questions, and seniors provide the answers. ○ Also, most of the barriers were reported by novice users ● We identified a relative small interest in refactoring tools ○ Mean of 6 questions / month, sd of 4.45
  • 30. What Programmers Say About Refactoring Tools? An Empirical Investigation of StackOverflow Gustavo Pinto, Fernando Kamei Federal University of Pernambuco {ghlp, fkk}@cin.ufpe.br