SlideShare une entreprise Scribd logo
1  sur  34
Expert Recommendation
 with    Usage Expertise

             David Ma                 David Schuler
        University of Calgary       Saarland University




        Tom Zimmermann                Jonathan Sillito
        Microsoft Research          University of Calgary
                                1
Stuck...

AutoBuildJob(Workspace workspace) {
	 super(Messages.events_building_0);
	 setRule(workspace.getRoot());
	 setPriority(BUILD);
	 isAutoBuilding = workspace.isAutoBuilding();
	 preferences.addPropertyChangeListener(this);
}




                              2
Who knows how
this code works?
AutoBuildJob(Workspace workspace) {
	 super(Messages.events_building_0);
	 setRule(workspace.getRoot());
	 setPriority(BUILD);
	 isAutoBuilding = workspace.isAutoBuilding();
	 preferences.addPropertyChangeListener(this);
}




                              3
Who knows how
this code works?



      Who has modified
      this code before?


             4
AutoBuildJob(Workspace workspace) {
	 super(Messages.events_building_0);
	 setRule(workspace.getRoot());
	 setPriority(BUILD);
	 isAutoBuilding = workspace.isAutoBuilding();
	 preferences.addPropertyChangeListener(this);
}




                              5
AutoBuildJob(Workspace workspace) {
	 super(Messages.events_building_0);
	 setRule(workspace.getRoot());
	 setPriority(BUILD);
	 isAutoBuilding = workspace.isAutoBuilding();
	 preferences.addPropertyChangeListener(this);
}

            Anna changes AutoBuildJob.
            She knows how this method works.


                              6
Implementation
                                                 Expertise
AutoBuildJob(Workspace workspace) {
	 super(Messages.events_building_0);
	 setRule(workspace.getRoot());
	 setPriority(BUILD);
	 isAutoBuilding = workspace.isAutoBuilding();
	 preferences.addPropertyChangeListener(this);
}

            Anna changes AutoBuildJob.
            She knows how this method works.


                              7
Implementation
                              Expertise


   Projects unlikely to share code



This concept can’t transfer
expertise across projects

                   8
Developers moving between
multiple projects or that are
new to projects

                  Implementation
                        Expertise
New projects
don’t have data

                  Some projects don’t have
                  enough data or is of poor
                  quality

                       9
10
Usage
                                                 Expertise
AutoBuildJob(Workspace workspace) {
	 super(Messages.events_building_0);
	 setRule(workspace.getRoot());
	 setPriority(BUILD);
	 isAutoBuilding = workspace.isAutoBuilding();
	 preferences.addPropertyChangeListener(this);
}

           Matt adds a call to setPriority().
           Matt knows how to use setPriority()
           without knowing how it was coded.

                              11
Usage
                          Expertise and Context
AutoBuildJob(Workspace workspace) {
	 super(Messages.events_building_0);
	 setRule(workspace.getRoot());
	 setPriority(BUILD);
	 isAutoBuilding = workspace.isAutoBuilding();
	 preferences.addPropertyChangeListener(this);
}

           Matt adds a call to setPriority().
           Matt knows how to use setPriority()
           and the surrounding method calls.

                              12
Why
                          Usage Expertise?


Projects unlikely to share code

  Projects likely to share calls to libraries




                     13
How Do We Make
Recommendations?




       14
Expertise Profiles
                             Database of Profiles



Mine developer
history for
                                    Bob’s Profile
Changed Methods
and
Added Method Calls
                                               Dan’s Profile


                          Alice’s Profile




                     15
Looking for Experts
               Who has                                Database of Profiles

               Implementation
               Expertise?

AutoBuildJob(Workspace workspace) {                          Bob’s Profile
	   super(Messages.events_building_0);
	   setRule(workspace.getRoot());
	   setPriority(BUILD);
	   isAutoBuilding = workspace.isAutoBuilding();
	   preferences.addPropertyChangeListener(this);
}
                                                                        Dan’s Profile


                                                   Alice’s Profile
             Who has
             Usage Expertise?


                                             16
Ranking Implementation Expertise

   (How previous research has done it)


         Change
                         Change Recency
        Frequency




                    17
Ranking Usage Expertise


   Frequency of             Breadth of
      Usage                   Usage




   Frequency of             Breadth of
  Usage Relative          Usage Relative
 to Everyone Else        to Everyone Else




                    18
Research Questions
         Can Usage Expertise correctly
1    recommend experts within projects as
      often as Implementation Expertise?


    Can Usage Expertise + Context correctly
2    recommend experts within projects as
      often as Implementation Expertise?


    Is it possible to recommend developers
3                across projects?

                    19
Experiment 1 of 2

Recommending Within Projects
 accuracy of implementation-based recommendations
 vs. accuracy usage-based recommendations




                        20
Training
                            Database of Profiles




                                   Bob’s Profile




      CVS history                             Dan’s Profile


                         Alice’s Profile




                    21
Testing

 Database of       Changeset     Ranked by               Joe
   Profiles                     impl. expertise
                                                        Matt
                   Changed                       Bob (expert)

               +
                   Methods
                                 Ranked by
                   Added       usage expertise
                   Method
                                                        Kim
                    Calls                        Bob (expert)
                                                         Joe


     Evaluation
     Did we recommend the actual expert?


                        22
Experiment 2 of 2

Recommending Across Projects
  Determining if usage-based recommendations
  are possible across projects




                      23
Training
                                  Database of Profiles




    Eclipse CVS history                         Bob’s Profile



                                  Jack’s Profile



     AspectJ CVS history                          Dan’s Profile



                               Alice’s Profile

                                                    Kate’s Profile




                          24
Testing

 Database of       Changeset
   Profiles
                   Changed       Ranked by
                               usage expertise


               +
                   Methods
                                                 Alice (Eclipse)
                   Added                          Jake (Eclipse)
                   Method                        Kim (AspectJ)
                    Calls



  Evaluation
  Did we recommend devs. from other projects?


                        25
Results
             (Within Projects)

  Impl-based recommendations are
correct ~80% of time time while usage
 based are correct ~50% of the time.




                 26
Can Usage Expertise correctly
1   recommend experts within projects as
     often as Implementation Expertise?




             No
                  27
Results
             (Within Projects)

Usage Expertise + Context correctly
recommends experts just as often as
     Implementation Expertise




                 28
Can Usage Expertise + Context correctly
2    recommend experts within projects as
      often as Implementation Expertise?




            YES
                    29
Results
            (Across Projects)

  Our usage expertise heuristics
recommend developers 25-75% of
   the time from other projects.




               30
Is it possible to recommend developers
3                across projects?




           YES
                  31
Is it possible to recommend developers
3                across projects?




          YES
          BUT
                  32
Open Questions

 How precise are recommendations
 made across projects?

 Can we recommend for projects with
 no or little history?

 What if we combine both
 implementation and usage expertise?


                  33
Research Questions
Can Usage Expertise correctly
recommend experts within projects as
often as Implementation Expertise?
                                          No
Can Usage Expertise + Context correctly
recommend experts within projects as
often as Implementation Expertise?
                                          YES
Is it possible to recommend developers
across projects?                          YES
                         34

Contenu connexe

Tendances

A journey to_be_a_software_craftsman
A journey to_be_a_software_craftsmanA journey to_be_a_software_craftsman
A journey to_be_a_software_craftsmanJaehoon Oh
 
A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD) A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD) CodeOps Technologies LLP
 
Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)Brian Rasmussen
 
Test driven development
Test driven developmentTest driven development
Test driven developmentShalabh Saxena
 
TDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereTDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereDaniel Davis
 
Why Test Driven Development?
Why Test Driven Development?Why Test Driven Development?
Why Test Driven Development?Naresh Jain
 
Test Driven Development by Denis Lutz
Test Driven Development by Denis LutzTest Driven Development by Denis Lutz
Test Driven Development by Denis Lutzjazzman1980
 
The WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpecThe WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpecBen Mabey
 
Introduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentIntroduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentSteven Mak
 
TechDays 2013 Juhani Lind: Acceptance Test Driven Development With VS 2012
TechDays 2013 Juhani Lind: Acceptance Test Driven Development With VS 2012TechDays 2013 Juhani Lind: Acceptance Test Driven Development With VS 2012
TechDays 2013 Juhani Lind: Acceptance Test Driven Development With VS 2012Tieturi Oy
 
Agile Test Driven Development
Agile Test Driven DevelopmentAgile Test Driven Development
Agile Test Driven DevelopmentViraf Karai
 
Black box-software-testing-douglas-hoffman2483
Black box-software-testing-douglas-hoffman2483Black box-software-testing-douglas-hoffman2483
Black box-software-testing-douglas-hoffman2483Chaitanya Kn
 
Testing for continuous delivery with visual studio 2012
Testing for continuous delivery with visual studio 2012Testing for continuous delivery with visual studio 2012
Testing for continuous delivery with visual studio 2012Cristiano Caetano
 
Agile testing overview
Agile testing overviewAgile testing overview
Agile testing overviewraianup
 

Tendances (19)

A journey to_be_a_software_craftsman
A journey to_be_a_software_craftsmanA journey to_be_a_software_craftsman
A journey to_be_a_software_craftsman
 
A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD) A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD)
 
Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
TDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereTDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & Where
 
Why Test Driven Development?
Why Test Driven Development?Why Test Driven Development?
Why Test Driven Development?
 
Atdd half day_new_1_up
Atdd half day_new_1_upAtdd half day_new_1_up
Atdd half day_new_1_up
 
Test Driven Development by Denis Lutz
Test Driven Development by Denis LutzTest Driven Development by Denis Lutz
Test Driven Development by Denis Lutz
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
The WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpecThe WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpec
 
The Design Process - FRC
The Design Process - FRCThe Design Process - FRC
The Design Process - FRC
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Introduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentIntroduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven Development
 
TechDays 2013 Juhani Lind: Acceptance Test Driven Development With VS 2012
TechDays 2013 Juhani Lind: Acceptance Test Driven Development With VS 2012TechDays 2013 Juhani Lind: Acceptance Test Driven Development With VS 2012
TechDays 2013 Juhani Lind: Acceptance Test Driven Development With VS 2012
 
Agile Test Driven Development
Agile Test Driven DevelopmentAgile Test Driven Development
Agile Test Driven Development
 
Black box-software-testing-douglas-hoffman2483
Black box-software-testing-douglas-hoffman2483Black box-software-testing-douglas-hoffman2483
Black box-software-testing-douglas-hoffman2483
 
ATDD in practice
ATDD in practiceATDD in practice
ATDD in practice
 
Testing for continuous delivery with visual studio 2012
Testing for continuous delivery with visual studio 2012Testing for continuous delivery with visual studio 2012
Testing for continuous delivery with visual studio 2012
 
Agile testing overview
Agile testing overviewAgile testing overview
Agile testing overview
 

En vedette

정품 비아그라 구입 KAVA899。C0M 비아그라 구입,비아그라 처방
정품 비아그라 구입 KAVA899。C0M 비아그라 구입,비아그라 처방 정품 비아그라 구입 KAVA899。C0M 비아그라 구입,비아그라 처방
정품 비아그라 구입 KAVA899。C0M 비아그라 구입,비아그라 처방 dksan13
 
[ITALENTS TEAM ] - CƠ HỘI NGHỀ NGHIỆP & PHÁT TRIỂN BẢN THÂN TẠI ITALENTS
[ITALENTS TEAM ] - CƠ HỘI NGHỀ NGHIỆP & PHÁT TRIỂN BẢN THÂN TẠI ITALENTS[ITALENTS TEAM ] - CƠ HỘI NGHỀ NGHIỆP & PHÁT TRIỂN BẢN THÂN TẠI ITALENTS
[ITALENTS TEAM ] - CƠ HỘI NGHỀ NGHIỆP & PHÁT TRIỂN BẢN THÂN TẠI ITALENTSCông ty TNHH DV TV Tiềm Năng Việt
 
Malwa gramin bank for officers, office asst exam 2011 tution at cheap rate wi...
Malwa gramin bank for officers, office asst exam 2011 tution at cheap rate wi...Malwa gramin bank for officers, office asst exam 2011 tution at cheap rate wi...
Malwa gramin bank for officers, office asst exam 2011 tution at cheap rate wi...Tanay Kumar Das
 
Diapositivas proyecto tic
Diapositivas proyecto tic Diapositivas proyecto tic
Diapositivas proyecto tic Manuel Dominguez
 
Presentacion Proyecto Final Tita
Presentacion Proyecto Final TitaPresentacion Proyecto Final Tita
Presentacion Proyecto Final Titaprofejosealejandro
 
[SpLab3]Structures
[SpLab3]Structures[SpLab3]Structures
[SpLab3]StructuresNora Youssef
 
BCIC SWKS Stock Pitch Final Copy..
BCIC SWKS Stock Pitch Final Copy..BCIC SWKS Stock Pitch Final Copy..
BCIC SWKS Stock Pitch Final Copy..T. Campbell Blue
 
LegendNewMaterialssm
LegendNewMaterialssmLegendNewMaterialssm
LegendNewMaterialssmErika DeBlasi
 

En vedette (17)

정품 비아그라 구입 KAVA899。C0M 비아그라 구입,비아그라 처방
정품 비아그라 구입 KAVA899。C0M 비아그라 구입,비아그라 처방 정품 비아그라 구입 KAVA899。C0M 비아그라 구입,비아그라 처방
정품 비아그라 구입 KAVA899。C0M 비아그라 구입,비아그라 처방
 
[ITALENTS TEAM ] - CƠ HỘI NGHỀ NGHIỆP & PHÁT TRIỂN BẢN THÂN TẠI ITALENTS
[ITALENTS TEAM ] - CƠ HỘI NGHỀ NGHIỆP & PHÁT TRIỂN BẢN THÂN TẠI ITALENTS[ITALENTS TEAM ] - CƠ HỘI NGHỀ NGHIỆP & PHÁT TRIỂN BẢN THÂN TẠI ITALENTS
[ITALENTS TEAM ] - CƠ HỘI NGHỀ NGHIỆP & PHÁT TRIỂN BẢN THÂN TẠI ITALENTS
 
Malwa gramin bank for officers, office asst exam 2011 tution at cheap rate wi...
Malwa gramin bank for officers, office asst exam 2011 tution at cheap rate wi...Malwa gramin bank for officers, office asst exam 2011 tution at cheap rate wi...
Malwa gramin bank for officers, office asst exam 2011 tution at cheap rate wi...
 
ISpresentation
ISpresentationISpresentation
ISpresentation
 
Dsc07301
Dsc07301Dsc07301
Dsc07301
 
Practica 11 (Primera parte)
Practica 11 (Primera parte)Practica 11 (Primera parte)
Practica 11 (Primera parte)
 
Manohar CV 2
Manohar CV 2Manohar CV 2
Manohar CV 2
 
Sol tp 3
Sol tp 3Sol tp 3
Sol tp 3
 
Diapositivas proyecto tic
Diapositivas proyecto tic Diapositivas proyecto tic
Diapositivas proyecto tic
 
Mafalda
MafaldaMafalda
Mafalda
 
Tsp1045
Tsp1045Tsp1045
Tsp1045
 
P,9
P,9 P,9
P,9
 
Presentacion Proyecto Final Tita
Presentacion Proyecto Final TitaPresentacion Proyecto Final Tita
Presentacion Proyecto Final Tita
 
[SpLab3]Structures
[SpLab3]Structures[SpLab3]Structures
[SpLab3]Structures
 
BCIC SWKS Stock Pitch Final Copy..
BCIC SWKS Stock Pitch Final Copy..BCIC SWKS Stock Pitch Final Copy..
BCIC SWKS Stock Pitch Final Copy..
 
P&G outsourcing
P&G outsourcing P&G outsourcing
P&G outsourcing
 
LegendNewMaterialssm
LegendNewMaterialssmLegendNewMaterialssm
LegendNewMaterialssm
 

Similaire à Expert Recommendation with Usage Expertise

Journey's diary developing a framework using tdd
Journey's diary   developing a framework using tddJourney's diary   developing a framework using tdd
Journey's diary developing a framework using tddeduardomg23
 
When develpment met test(shift left testing)
When develpment met test(shift left testing)When develpment met test(shift left testing)
When develpment met test(shift left testing)SangIn Choung
 
Software Design for Testability
Software Design for TestabilitySoftware Design for Testability
Software Design for Testabilityamr0mt
 
Testing Sap: Modern Methodology
Testing Sap: Modern MethodologyTesting Sap: Modern Methodology
Testing Sap: Modern MethodologyEthan Jewett
 
Gap Survey, Assessment and Analysis for DevSecOps
Gap Survey, Assessment and Analysis for DevSecOpsGap Survey, Assessment and Analysis for DevSecOps
Gap Survey, Assessment and Analysis for DevSecOpsMarc Hornbeek
 
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology
 
Agile principles and practices
Agile principles and practicesAgile principles and practices
Agile principles and practicesVipin Jose
 
Accelerate Your Delivery Pipeline with Continuous Testing
Accelerate Your Delivery Pipeline with Continuous TestingAccelerate Your Delivery Pipeline with Continuous Testing
Accelerate Your Delivery Pipeline with Continuous TestingSmartBear
 
Agile Testing 20021015
Agile Testing 20021015Agile Testing 20021015
Agile Testing 20021015Raghu Karnati
 
Hazen michael
Hazen michaelHazen michael
Hazen michaelNASAPMC
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineRemus Langu
 
Professional Code Reviews - Bogdan Gusiev
Professional Code Reviews - Bogdan GusievProfessional Code Reviews - Bogdan Gusiev
Professional Code Reviews - Bogdan GusievRuby Meditation
 
A confused tester in agile world finalversion
A confused tester in agile world finalversionA confused tester in agile world finalversion
A confused tester in agile world finalversionAshish Kumar
 
Quality of Bug Reports in Open Source
Quality of Bug Reports in Open SourceQuality of Bug Reports in Open Source
Quality of Bug Reports in Open SourceThomas Zimmermann
 

Similaire à Expert Recommendation with Usage Expertise (20)

Journey's diary developing a framework using tdd
Journey's diary   developing a framework using tddJourney's diary   developing a framework using tdd
Journey's diary developing a framework using tdd
 
When develpment met test(shift left testing)
When develpment met test(shift left testing)When develpment met test(shift left testing)
When develpment met test(shift left testing)
 
Testing In Java
Testing In JavaTesting In Java
Testing In Java
 
Software Design for Testability
Software Design for TestabilitySoftware Design for Testability
Software Design for Testability
 
Testing Sap: Modern Methodology
Testing Sap: Modern MethodologyTesting Sap: Modern Methodology
Testing Sap: Modern Methodology
 
Gap Survey, Assessment and Analysis for DevSecOps
Gap Survey, Assessment and Analysis for DevSecOpsGap Survey, Assessment and Analysis for DevSecOps
Gap Survey, Assessment and Analysis for DevSecOps
 
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineering
 
Agile principles and practices
Agile principles and practicesAgile principles and practices
Agile principles and practices
 
Coding Naked
Coding NakedCoding Naked
Coding Naked
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
 
TDD in Agile
TDD in AgileTDD in Agile
TDD in Agile
 
Accelerate Your Delivery Pipeline with Continuous Testing
Accelerate Your Delivery Pipeline with Continuous TestingAccelerate Your Delivery Pipeline with Continuous Testing
Accelerate Your Delivery Pipeline with Continuous Testing
 
test
testtest
test
 
Agile Testing 20021015
Agile Testing 20021015Agile Testing 20021015
Agile Testing 20021015
 
Hazen michael
Hazen michaelHazen michael
Hazen michael
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & Jasmine
 
Professional Code Reviews - Bogdan Gusiev
Professional Code Reviews - Bogdan GusievProfessional Code Reviews - Bogdan Gusiev
Professional Code Reviews - Bogdan Gusiev
 
Stepping Outside
Stepping OutsideStepping Outside
Stepping Outside
 
A confused tester in agile world finalversion
A confused tester in agile world finalversionA confused tester in agile world finalversion
A confused tester in agile world finalversion
 
Quality of Bug Reports in Open Source
Quality of Bug Reports in Open SourceQuality of Bug Reports in Open Source
Quality of Bug Reports in Open Source
 

Dernier

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Dernier (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

Expert Recommendation with Usage Expertise

  • 1. Expert Recommendation with Usage Expertise David Ma David Schuler University of Calgary Saarland University Tom Zimmermann Jonathan Sillito Microsoft Research University of Calgary 1
  • 2. Stuck... AutoBuildJob(Workspace workspace) { super(Messages.events_building_0); setRule(workspace.getRoot()); setPriority(BUILD); isAutoBuilding = workspace.isAutoBuilding(); preferences.addPropertyChangeListener(this); } 2
  • 3. Who knows how this code works? AutoBuildJob(Workspace workspace) { super(Messages.events_building_0); setRule(workspace.getRoot()); setPriority(BUILD); isAutoBuilding = workspace.isAutoBuilding(); preferences.addPropertyChangeListener(this); } 3
  • 4. Who knows how this code works? Who has modified this code before? 4
  • 5. AutoBuildJob(Workspace workspace) { super(Messages.events_building_0); setRule(workspace.getRoot()); setPriority(BUILD); isAutoBuilding = workspace.isAutoBuilding(); preferences.addPropertyChangeListener(this); } 5
  • 6. AutoBuildJob(Workspace workspace) { super(Messages.events_building_0); setRule(workspace.getRoot()); setPriority(BUILD); isAutoBuilding = workspace.isAutoBuilding(); preferences.addPropertyChangeListener(this); } Anna changes AutoBuildJob. She knows how this method works. 6
  • 7. Implementation Expertise AutoBuildJob(Workspace workspace) { super(Messages.events_building_0); setRule(workspace.getRoot()); setPriority(BUILD); isAutoBuilding = workspace.isAutoBuilding(); preferences.addPropertyChangeListener(this); } Anna changes AutoBuildJob. She knows how this method works. 7
  • 8. Implementation Expertise Projects unlikely to share code This concept can’t transfer expertise across projects 8
  • 9. Developers moving between multiple projects or that are new to projects Implementation Expertise New projects don’t have data Some projects don’t have enough data or is of poor quality 9
  • 10. 10
  • 11. Usage Expertise AutoBuildJob(Workspace workspace) { super(Messages.events_building_0); setRule(workspace.getRoot()); setPriority(BUILD); isAutoBuilding = workspace.isAutoBuilding(); preferences.addPropertyChangeListener(this); } Matt adds a call to setPriority(). Matt knows how to use setPriority() without knowing how it was coded. 11
  • 12. Usage Expertise and Context AutoBuildJob(Workspace workspace) { super(Messages.events_building_0); setRule(workspace.getRoot()); setPriority(BUILD); isAutoBuilding = workspace.isAutoBuilding(); preferences.addPropertyChangeListener(this); } Matt adds a call to setPriority(). Matt knows how to use setPriority() and the surrounding method calls. 12
  • 13. Why Usage Expertise? Projects unlikely to share code Projects likely to share calls to libraries 13
  • 14. How Do We Make Recommendations? 14
  • 15. Expertise Profiles Database of Profiles Mine developer history for Bob’s Profile Changed Methods and Added Method Calls Dan’s Profile Alice’s Profile 15
  • 16. Looking for Experts Who has Database of Profiles Implementation Expertise? AutoBuildJob(Workspace workspace) { Bob’s Profile super(Messages.events_building_0); setRule(workspace.getRoot()); setPriority(BUILD); isAutoBuilding = workspace.isAutoBuilding(); preferences.addPropertyChangeListener(this); } Dan’s Profile Alice’s Profile Who has Usage Expertise? 16
  • 17. Ranking Implementation Expertise (How previous research has done it) Change Change Recency Frequency 17
  • 18. Ranking Usage Expertise Frequency of Breadth of Usage Usage Frequency of Breadth of Usage Relative Usage Relative to Everyone Else to Everyone Else 18
  • 19. Research Questions Can Usage Expertise correctly 1 recommend experts within projects as often as Implementation Expertise? Can Usage Expertise + Context correctly 2 recommend experts within projects as often as Implementation Expertise? Is it possible to recommend developers 3 across projects? 19
  • 20. Experiment 1 of 2 Recommending Within Projects accuracy of implementation-based recommendations vs. accuracy usage-based recommendations 20
  • 21. Training Database of Profiles Bob’s Profile CVS history Dan’s Profile Alice’s Profile 21
  • 22. Testing Database of Changeset Ranked by Joe Profiles impl. expertise Matt Changed Bob (expert) + Methods Ranked by Added usage expertise Method Kim Calls Bob (expert) Joe Evaluation Did we recommend the actual expert? 22
  • 23. Experiment 2 of 2 Recommending Across Projects Determining if usage-based recommendations are possible across projects 23
  • 24. Training Database of Profiles Eclipse CVS history Bob’s Profile Jack’s Profile AspectJ CVS history Dan’s Profile Alice’s Profile Kate’s Profile 24
  • 25. Testing Database of Changeset Profiles Changed Ranked by usage expertise + Methods Alice (Eclipse) Added Jake (Eclipse) Method Kim (AspectJ) Calls Evaluation Did we recommend devs. from other projects? 25
  • 26. Results (Within Projects) Impl-based recommendations are correct ~80% of time time while usage based are correct ~50% of the time. 26
  • 27. Can Usage Expertise correctly 1 recommend experts within projects as often as Implementation Expertise? No 27
  • 28. Results (Within Projects) Usage Expertise + Context correctly recommends experts just as often as Implementation Expertise 28
  • 29. Can Usage Expertise + Context correctly 2 recommend experts within projects as often as Implementation Expertise? YES 29
  • 30. Results (Across Projects) Our usage expertise heuristics recommend developers 25-75% of the time from other projects. 30
  • 31. Is it possible to recommend developers 3 across projects? YES 31
  • 32. Is it possible to recommend developers 3 across projects? YES BUT 32
  • 33. Open Questions How precise are recommendations made across projects? Can we recommend for projects with no or little history? What if we combine both implementation and usage expertise? 33
  • 34. Research Questions Can Usage Expertise correctly recommend experts within projects as often as Implementation Expertise? No Can Usage Expertise + Context correctly recommend experts within projects as often as Implementation Expertise? YES Is it possible to recommend developers across projects? YES 34