SlideShare a Scribd company logo
1 of 38
Pull Requests
Analytics:
A quantitative way for
Performance Evaluation of the
Development Team
Rohit Agarwal
Chief Data Officer
Mobisy Technologies
Agenda
• Who we are
• Use case Discussion
• Use of NLP in the solution
Bizom Simplifies Supply Chain
Brand’s Salesman visits outlet Order is punched in Bizom App Order is delivered
Brand’s Salesman visits outlet
Takes order of
inventory using pen
& paper
Order is manually
handed to
distributor
Distributor
Checks
Inventory
Order is delivered
Retail Intelligence Platform
With enormous retail data that we gather using our App, we are developing a series of AI / ML
capabilities to solve industry’s prickliest challenges
35 Hawk
Image recognition
model(s)
Automated targets
Dynamic sales targets
Suggested order
Predictive demand
forecasting Route optimisation
Optimize salesman
productivity
Delivery optimisation
Optimize van sales/
direct delivery
Augmented Reality
Merchandising
optimisation Eagle Eye
Hyperlocal geospatial
analytics
Decision
optimization across
Supply chain
Sales
automation
Category
management
USECASE: How to
quantitatively assess
quality of developer?
https://www.atlassian.com/blog/bitbucket/5-pull-request-must-haves
What is pull request?
What is Pull Requests Analytics?
Analysis of the pull requests meta data to gain insights about
the efficiency & quality of the developers & reviewers can be
construed as PR Analytics
How does PR analytics fits in with Agile
Complimentary
Where is the PR Data??
Bitbucket( git based source code management) allows us to fetch the data for the repos using APIs.
The data points that can be accessed are:
PR Comments
PR Summary
PR Files
PR Activities
(Audit Trail)
PR Commits
PR SUMMARY
PR COMMITS
PR FILES
PR COMMENTS
How are we using the PR data?
Q1
Q2
Q4
Q3
We plot a 2D curve
between Quality of work
and Quantity of work :
Scorecard
Objective way to assess
the quality of a developer
or reviewer with respect
to the team
Gives timely feedback to
developer on their
performance within the
team
Mean no of PRs
Mean performance Index
Developer Trends
Use the scorecard to see shift in the performance of a particular developer over multiple quarters
Different Beneficiaries of Scorecard
Developer
• Timely feedback
• Motivates to accel
in the work
(gamification)
• Gap assessment
tool (self
assessment)
Team
Leads
• Capability
Assessment Tool :
Objective way of
appraisal
• Gap assessment tool
for the team
Scrum
Master
• Better Resource &
time planning
• Allocate critical tasks
to quality developers
(de risk the critical
path )
Cycle Time
PR
opened Time to Review
First
Comment
Time to Approve
PR
Approved
Time to Merge
PR
Merged
Cycle Time
Cycle Time: The time between opening of the PR and the closing of the PR. It is measured in days
Small Cycle Time
(<1 day or 1-2 days)
Large Cycle Time
(>14 days)
Additional Data Points
PR Frequency
Number of PRs
worked upon by a
developer
Comment Type
Category of
comments by
reviewer
PR Size
Number of lines for
reviewing
Comment Count
Number of
comments received
during the Review
Indicates Quantity of work
Indicates Quality of work
Project
Experience
How long have you
been working on
this project?
Industry Experience
Large industry experience indicates
that the resource has some idea of
good development practices and
better chances of doing the work
correctly
Developer & Reviewer Profile
Developer
profile
Cycle Time
How much time it
took for PR to be
accepted/rejected.
Too much time is
not desired
Number of
comments
Has the developer
received a lot of
comments
PR Size
How many lines of
code for review in
a single PR
PR Frequency
how many PRs
have been worked
upon
Category of
comments
Coding issues,
guidelines issue,
general Reviewer
Profile
Cycle Time w.r.t. PR
size (review time)
Is the reviewer
spending time
proportional to the
PR size
Number of
comments
How many
comments is
Reviewer giving
to PRs
PR Frequency
How many PRs
are being
reviewed
Types of comment
This shows the
depth of
understanding of the
code
Scorecard Preparation
Score card = F(Developer Scorecard , Reviewer Scorecard)
Preparation of Developer Scorecard
Depends on the following
Cycle time: We give bonus for smaller cycle times and penalize for large cycle time
PR Size : We penalize for large PR sizes and give bonus for small PR sizes
Comment Types: Comment have been assigned penalty points based on their types. We count the penalty across all the PRs
Preparation of Reviewer Scorecard
Depends on the following
Quality of comments that reviewer has given. We give bonus for good quality comments
Number of PRs that the reviewer has reviewed
CycleTime wrt PRSize: Penalized on being lazy or not doing the review properly
Final Scorecard
● The team member may play a role of reviewer as
well as developer so we combine the developer
score and reviewer score together to get the final
score
● In general, the more experienced folks in the
team are expected to play reviewer role more
than the developer role and vice versa. This is
reflected in the way we combine the scores.
For e.g.
‘A’ is highly experienced team member, score will
be 0.4 * development score+0.6* reviewer score
(as we expect more of a mentorship role)
While ‘ L’ is a fresh out of college, we expect 100%
development effort and so the reviewer
weightage will be 0
Combined Score = Development_Weightage * Development Score + Review_Weightage * Review Score
• NLP for Comments classification
Comment Types
Logical Suggestions
• Code logic suggestions
• Requirement/ usecase
validations with product
team
Code Suggestion
Comment contains the exact
code that needs to be
incorporated.
These comments show the
proficiency of the reviewer
Buggy Code
• When the component is not
working as per expectations
• Functionality can break in
future
• No exception handling
• Code Optimization issues
Spelling Suggestions
Comment related to use of
standard naming conventions
Rename files or variables
Questioning
• Reviewer needs more
clarifications from
developer
• Seek more information
Completeness Tasks
• Ensure that the code has
been unit tested
• Some functionality is
missing and need to be
completed before merge
Refactoring Suggestions
• Duplicate code that needs to
be deleted
• Indentation issues
• Empty spaces/rows
• Commented code removal
Documentation
Suggestion
• Required some code
comments
• Adding some background
to the approach
Few challenges while using algorithms to classify comments
Comment Types Penalty for Developers
• High accuracy is desired
• Not every person writing comments uses proper English sentences/grammar
• Sometimes comments are written like a rhetorical question for e.g.
“Don’t you think we should have used XYZ in the code?”
Comment Type Penalty
Weight
BUGGYCODE SUGGESTION -10
CODE SUGGESTION -8
REFACTORING SUGGESTION -7
REUSE SUGGESTION -6
COMPLETENESS SUGGESTION -5
QUESTIONING -4
LOGICAL SUGGESTION -3
SPELLING -2
DOCUMENTATION SUGGESTION -1
How to detect Comment Types
Why can’t we use the traditional NLP which is based on the word count or regex?
Spelling suggestions Reuse Suggestions
Difficult to classify the comments to the correct basket just by the count
How to detect Comment Types
• Classification of Comments is a Multiclass Classification Problem
• We have tried a Text Generation Model approach to solve Multiclass Classification problem
Why a generative model instead of a classification model?
Seq2seq using Attention
Every task including translation, question
answering, and classification is converted
to a seq2seq problem. The T5 model is fed
text as input and it generates some target
text
https://arxiv.org/abs/1910.10683
Data
Number of manually classified Comments: 4800
Training Data: 3700 comments
Validation Data: 900 comments
Number of classes (Comment Types) : 10
• Training Accuracy is
increasing with epoch but
the validation accuracy has
plateaued. Overfitting
• Validation Accuracy is
~ 40%
Validation loss not changing
after 10 epoch …overfitting
LSTM (Baseline)
LSTM 2
LSTM 1
Seq2Seq Model
I am going….. fun
Seq2Seq Model with Attention
https://lena-voita.github.io/nlp_course/seq2seq_and_attention.html
Using Attention 𝑒𝑖 = 𝑆𝑇𝑊ℎ𝑖
Seq2Seq Model with Attention
Seq2Seq Model with Attention contd..
Training
Metrics
Validation
Metrics
Seq2Seq Model with Attention contd..
https://mccormickml.com/2019/07/22/BERT-fine-tuning/
• Training Accuracy is
increasing with epoch but
the validation accuracy has
plateaued --- Overfitting
• Validation Accuracy is ~65%
which is better than LSTM
Validation loss is not
decreasing much while
the training loss has
decreased …overfitting
BERT (next step)
1. For each developer find out the various types of comments and their counts
2.Calculate the penalty based on the comment type weights
3. Aggregating penalty for each developer column wise
Comment Types Penalty for Developers Calculation
Successes
• PR Scorecard is currently being used for the quarterly review of 80% of the RnD
teams
• ~ 10% developers who were not performing well were given focused trainings to
enhance their productivity. We see an increased trend in their performance after
that
• Less slippages in the deadlines as the scrum masters are considering the relative
efficiency of the developers before giving task estimates
Next Steps
• We are improving BERT & other transformer models on the comment
classification task by adding more training data & different pretrained models
• We are replicating the similar scorecard for the Customer Support team where
the metrics will be dependent on the First Response Time, Total Resolution Time,
Number of times Case Reopened, Customer Comments etc.
Thank you
38
rohitagarwal24
rohit@mobisy.com
https://github.com/rohdimp24/PAW2022

More Related Content

Similar to Pull_Request_PAW_Shared_Rohit.pptx

Applying Quality to the Project and Product Management Process
Applying Quality to the Project and Product Management ProcessApplying Quality to the Project and Product Management Process
Applying Quality to the Project and Product Management ProcessKaali Dass PMP, PhD.
 
SAFe DevOps Practitioner (SDP) Exam | Start Your Preparation
SAFe DevOps Practitioner (SDP) Exam | Start Your PreparationSAFe DevOps Practitioner (SDP) Exam | Start Your Preparation
SAFe DevOps Practitioner (SDP) Exam | Start Your PreparationMeghna Arora
 
Test team dynamics, Антон Мужайло
Test team dynamics, Антон МужайлоTest team dynamics, Антон Мужайло
Test team dynamics, Антон МужайлоSigma Software
 
How Custom is your Org? CEER at Dreamforce 2019
How Custom is your Org?  CEER at Dreamforce 2019How Custom is your Org?  CEER at Dreamforce 2019
How Custom is your Org? CEER at Dreamforce 2019Steven Herod
 
Spectacular Specs and how to write them!
Spectacular Specs and how to write them!Spectacular Specs and how to write them!
Spectacular Specs and how to write them!YeurDreamin'
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileIosif Itkin
 
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Vimal Suba
 
Nearshore Best Practices Workshop
Nearshore Best Practices WorkshopNearshore Best Practices Workshop
Nearshore Best Practices WorkshopVelocity Partners
 
Improving our Approach Towards Capturing Value in Requirements
Improving our Approach Towards Capturing Value in RequirementsImproving our Approach Towards Capturing Value in Requirements
Improving our Approach Towards Capturing Value in RequirementsOsama M. Khaled
 
Quality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the EnterpriseQuality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the EnterpriseQASymphony
 
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar SinghWorkshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar SinghAgile ME
 
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...AgileNetwork
 
Scrum Crash Course - Anatoli Iliev and Lyubomir Cholakov, Infragistics
Scrum Crash Course - Anatoli Iliev and Lyubomir Cholakov, InfragisticsScrum Crash Course - Anatoli Iliev and Lyubomir Cholakov, Infragistics
Scrum Crash Course - Anatoli Iliev and Lyubomir Cholakov, InfragisticsbeITconference
 
Quality metrics and angular js applications
Quality metrics and angular js applicationsQuality metrics and angular js applications
Quality metrics and angular js applicationsnadeembtech
 
How To Avoid Continuously Delivering Faulty Software
How To Avoid Continuously Delivering Faulty SoftwareHow To Avoid Continuously Delivering Faulty Software
How To Avoid Continuously Delivering Faulty SoftwareErika Barron
 
How to Build High-Performing IT Teams - Including New Data on IT Performance ...
How to Build High-Performing IT Teams - Including New Data on IT Performance ...How to Build High-Performing IT Teams - Including New Data on IT Performance ...
How to Build High-Performing IT Teams - Including New Data on IT Performance ...Puppet
 
Puppet Labs EMC DevOps Day NYC Aug-2015
Puppet Labs  EMC DevOps Day NYC Aug-2015Puppet Labs  EMC DevOps Day NYC Aug-2015
Puppet Labs EMC DevOps Day NYC Aug-2015Bob Sokol
 
Overcome-3-common-aem-delivery-challenges
Overcome-3-common-aem-delivery-challengesOvercome-3-common-aem-delivery-challenges
Overcome-3-common-aem-delivery-challengesiCiDIGITAL
 
Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager
Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager
Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager Mark Kelley
 

Similar to Pull_Request_PAW_Shared_Rohit.pptx (20)

Applying Quality to the Project and Product Management Process
Applying Quality to the Project and Product Management ProcessApplying Quality to the Project and Product Management Process
Applying Quality to the Project and Product Management Process
 
SAFe DevOps Practitioner (SDP) Exam | Start Your Preparation
SAFe DevOps Practitioner (SDP) Exam | Start Your PreparationSAFe DevOps Practitioner (SDP) Exam | Start Your Preparation
SAFe DevOps Practitioner (SDP) Exam | Start Your Preparation
 
Test team dynamics, Антон Мужайло
Test team dynamics, Антон МужайлоTest team dynamics, Антон Мужайло
Test team dynamics, Антон Мужайло
 
How Custom is your Org? CEER at Dreamforce 2019
How Custom is your Org?  CEER at Dreamforce 2019How Custom is your Org?  CEER at Dreamforce 2019
How Custom is your Org? CEER at Dreamforce 2019
 
Spectacular Specs and how to write them!
Spectacular Specs and how to write them!Spectacular Specs and how to write them!
Spectacular Specs and how to write them!
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibile
 
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
 
Nearshore Best Practices Workshop
Nearshore Best Practices WorkshopNearshore Best Practices Workshop
Nearshore Best Practices Workshop
 
Improving our Approach Towards Capturing Value in Requirements
Improving our Approach Towards Capturing Value in RequirementsImproving our Approach Towards Capturing Value in Requirements
Improving our Approach Towards Capturing Value in Requirements
 
Quality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the EnterpriseQuality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the Enterprise
 
Agile testing
Agile testingAgile testing
Agile testing
 
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar SinghWorkshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
 
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
 
Scrum Crash Course - Anatoli Iliev and Lyubomir Cholakov, Infragistics
Scrum Crash Course - Anatoli Iliev and Lyubomir Cholakov, InfragisticsScrum Crash Course - Anatoli Iliev and Lyubomir Cholakov, Infragistics
Scrum Crash Course - Anatoli Iliev and Lyubomir Cholakov, Infragistics
 
Quality metrics and angular js applications
Quality metrics and angular js applicationsQuality metrics and angular js applications
Quality metrics and angular js applications
 
How To Avoid Continuously Delivering Faulty Software
How To Avoid Continuously Delivering Faulty SoftwareHow To Avoid Continuously Delivering Faulty Software
How To Avoid Continuously Delivering Faulty Software
 
How to Build High-Performing IT Teams - Including New Data on IT Performance ...
How to Build High-Performing IT Teams - Including New Data on IT Performance ...How to Build High-Performing IT Teams - Including New Data on IT Performance ...
How to Build High-Performing IT Teams - Including New Data on IT Performance ...
 
Puppet Labs EMC DevOps Day NYC Aug-2015
Puppet Labs  EMC DevOps Day NYC Aug-2015Puppet Labs  EMC DevOps Day NYC Aug-2015
Puppet Labs EMC DevOps Day NYC Aug-2015
 
Overcome-3-common-aem-delivery-challenges
Overcome-3-common-aem-delivery-challengesOvercome-3-common-aem-delivery-challenges
Overcome-3-common-aem-delivery-challenges
 
Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager
Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager
Case Study: Time Warner Cable's Formula for Maximizing Adobe Experience Manager
 

Recently uploaded

WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2
 
WSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfryanfarris8
 

Recently uploaded (20)

WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration Tooling
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in Uganda
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
 
WSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AI
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
 

Pull_Request_PAW_Shared_Rohit.pptx

  • 1. Pull Requests Analytics: A quantitative way for Performance Evaluation of the Development Team Rohit Agarwal Chief Data Officer Mobisy Technologies
  • 2. Agenda • Who we are • Use case Discussion • Use of NLP in the solution
  • 3.
  • 4. Bizom Simplifies Supply Chain Brand’s Salesman visits outlet Order is punched in Bizom App Order is delivered Brand’s Salesman visits outlet Takes order of inventory using pen & paper Order is manually handed to distributor Distributor Checks Inventory Order is delivered
  • 5. Retail Intelligence Platform With enormous retail data that we gather using our App, we are developing a series of AI / ML capabilities to solve industry’s prickliest challenges 35 Hawk Image recognition model(s) Automated targets Dynamic sales targets Suggested order Predictive demand forecasting Route optimisation Optimize salesman productivity Delivery optimisation Optimize van sales/ direct delivery Augmented Reality Merchandising optimisation Eagle Eye Hyperlocal geospatial analytics Decision optimization across Supply chain Sales automation Category management
  • 6. USECASE: How to quantitatively assess quality of developer?
  • 8. What is Pull Requests Analytics? Analysis of the pull requests meta data to gain insights about the efficiency & quality of the developers & reviewers can be construed as PR Analytics
  • 9. How does PR analytics fits in with Agile Complimentary
  • 10. Where is the PR Data?? Bitbucket( git based source code management) allows us to fetch the data for the repos using APIs. The data points that can be accessed are: PR Comments PR Summary PR Files PR Activities (Audit Trail) PR Commits
  • 11. PR SUMMARY PR COMMITS PR FILES PR COMMENTS
  • 12. How are we using the PR data? Q1 Q2 Q4 Q3 We plot a 2D curve between Quality of work and Quantity of work : Scorecard Objective way to assess the quality of a developer or reviewer with respect to the team Gives timely feedback to developer on their performance within the team Mean no of PRs Mean performance Index
  • 13. Developer Trends Use the scorecard to see shift in the performance of a particular developer over multiple quarters
  • 14. Different Beneficiaries of Scorecard Developer • Timely feedback • Motivates to accel in the work (gamification) • Gap assessment tool (self assessment) Team Leads • Capability Assessment Tool : Objective way of appraisal • Gap assessment tool for the team Scrum Master • Better Resource & time planning • Allocate critical tasks to quality developers (de risk the critical path )
  • 15. Cycle Time PR opened Time to Review First Comment Time to Approve PR Approved Time to Merge PR Merged Cycle Time Cycle Time: The time between opening of the PR and the closing of the PR. It is measured in days Small Cycle Time (<1 day or 1-2 days) Large Cycle Time (>14 days)
  • 16. Additional Data Points PR Frequency Number of PRs worked upon by a developer Comment Type Category of comments by reviewer PR Size Number of lines for reviewing Comment Count Number of comments received during the Review Indicates Quantity of work Indicates Quality of work Project Experience How long have you been working on this project? Industry Experience Large industry experience indicates that the resource has some idea of good development practices and better chances of doing the work correctly
  • 17. Developer & Reviewer Profile Developer profile Cycle Time How much time it took for PR to be accepted/rejected. Too much time is not desired Number of comments Has the developer received a lot of comments PR Size How many lines of code for review in a single PR PR Frequency how many PRs have been worked upon Category of comments Coding issues, guidelines issue, general Reviewer Profile Cycle Time w.r.t. PR size (review time) Is the reviewer spending time proportional to the PR size Number of comments How many comments is Reviewer giving to PRs PR Frequency How many PRs are being reviewed Types of comment This shows the depth of understanding of the code
  • 18. Scorecard Preparation Score card = F(Developer Scorecard , Reviewer Scorecard)
  • 19. Preparation of Developer Scorecard Depends on the following Cycle time: We give bonus for smaller cycle times and penalize for large cycle time PR Size : We penalize for large PR sizes and give bonus for small PR sizes Comment Types: Comment have been assigned penalty points based on their types. We count the penalty across all the PRs
  • 20. Preparation of Reviewer Scorecard Depends on the following Quality of comments that reviewer has given. We give bonus for good quality comments Number of PRs that the reviewer has reviewed CycleTime wrt PRSize: Penalized on being lazy or not doing the review properly
  • 21. Final Scorecard ● The team member may play a role of reviewer as well as developer so we combine the developer score and reviewer score together to get the final score ● In general, the more experienced folks in the team are expected to play reviewer role more than the developer role and vice versa. This is reflected in the way we combine the scores. For e.g. ‘A’ is highly experienced team member, score will be 0.4 * development score+0.6* reviewer score (as we expect more of a mentorship role) While ‘ L’ is a fresh out of college, we expect 100% development effort and so the reviewer weightage will be 0 Combined Score = Development_Weightage * Development Score + Review_Weightage * Review Score
  • 22. • NLP for Comments classification
  • 23. Comment Types Logical Suggestions • Code logic suggestions • Requirement/ usecase validations with product team Code Suggestion Comment contains the exact code that needs to be incorporated. These comments show the proficiency of the reviewer Buggy Code • When the component is not working as per expectations • Functionality can break in future • No exception handling • Code Optimization issues Spelling Suggestions Comment related to use of standard naming conventions Rename files or variables Questioning • Reviewer needs more clarifications from developer • Seek more information Completeness Tasks • Ensure that the code has been unit tested • Some functionality is missing and need to be completed before merge Refactoring Suggestions • Duplicate code that needs to be deleted • Indentation issues • Empty spaces/rows • Commented code removal Documentation Suggestion • Required some code comments • Adding some background to the approach
  • 24. Few challenges while using algorithms to classify comments Comment Types Penalty for Developers • High accuracy is desired • Not every person writing comments uses proper English sentences/grammar • Sometimes comments are written like a rhetorical question for e.g. “Don’t you think we should have used XYZ in the code?” Comment Type Penalty Weight BUGGYCODE SUGGESTION -10 CODE SUGGESTION -8 REFACTORING SUGGESTION -7 REUSE SUGGESTION -6 COMPLETENESS SUGGESTION -5 QUESTIONING -4 LOGICAL SUGGESTION -3 SPELLING -2 DOCUMENTATION SUGGESTION -1
  • 25. How to detect Comment Types Why can’t we use the traditional NLP which is based on the word count or regex? Spelling suggestions Reuse Suggestions Difficult to classify the comments to the correct basket just by the count
  • 26. How to detect Comment Types • Classification of Comments is a Multiclass Classification Problem • We have tried a Text Generation Model approach to solve Multiclass Classification problem Why a generative model instead of a classification model? Seq2seq using Attention Every task including translation, question answering, and classification is converted to a seq2seq problem. The T5 model is fed text as input and it generates some target text https://arxiv.org/abs/1910.10683
  • 27. Data Number of manually classified Comments: 4800 Training Data: 3700 comments Validation Data: 900 comments Number of classes (Comment Types) : 10
  • 28. • Training Accuracy is increasing with epoch but the validation accuracy has plateaued. Overfitting • Validation Accuracy is ~ 40% Validation loss not changing after 10 epoch …overfitting LSTM (Baseline)
  • 29. LSTM 2 LSTM 1 Seq2Seq Model I am going….. fun
  • 30. Seq2Seq Model with Attention https://lena-voita.github.io/nlp_course/seq2seq_and_attention.html
  • 31. Using Attention 𝑒𝑖 = 𝑆𝑇𝑊ℎ𝑖 Seq2Seq Model with Attention
  • 32. Seq2Seq Model with Attention contd.. Training Metrics Validation Metrics
  • 33. Seq2Seq Model with Attention contd..
  • 34. https://mccormickml.com/2019/07/22/BERT-fine-tuning/ • Training Accuracy is increasing with epoch but the validation accuracy has plateaued --- Overfitting • Validation Accuracy is ~65% which is better than LSTM Validation loss is not decreasing much while the training loss has decreased …overfitting BERT (next step)
  • 35. 1. For each developer find out the various types of comments and their counts 2.Calculate the penalty based on the comment type weights 3. Aggregating penalty for each developer column wise Comment Types Penalty for Developers Calculation
  • 36. Successes • PR Scorecard is currently being used for the quarterly review of 80% of the RnD teams • ~ 10% developers who were not performing well were given focused trainings to enhance their productivity. We see an increased trend in their performance after that • Less slippages in the deadlines as the scrum masters are considering the relative efficiency of the developers before giving task estimates
  • 37. Next Steps • We are improving BERT & other transformer models on the comment classification task by adding more training data & different pretrained models • We are replicating the similar scorecard for the Customer Support team where the metrics will be dependent on the First Response Time, Total Resolution Time, Number of times Case Reopened, Customer Comments etc.