SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Destacado

정품 비아그라 구입 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
 

Destacado (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
 

Similar a 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
 

Similar a 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
 

Último

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 

Último (20)

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 

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