SlideShare a Scribd company logo
Towards Better
Open-Source
Development:
Improving PyQtGraph’s
Feature-Development
Process
Thesis Presentation
By Aditya Kelekar
BE (IT) Metropolia University of Applied Sciences
-
– Let’s spare a moment to think about
what is happening with a giant open-
source software project….
At a well-known open-source project
Source: Linux Kernel Report 2017, Linux Foundation
Figure 1:
Top companies
contributing to
the Linux kernel,
4.8– 4.13 in 2017
Linux Kernel Contributors
Table of Contents
– 1. What is PyQtGraph and where does it come from?
– 2. Open Source Feature Development: Known Facts
– 3. Analysis of PyQtGraph’s Feature Development Process
– 4. Guidelines for PyQtGraph’s Feature Process
Improvements
– 5. Conclusions
PyQtGraph: A graphic library
Functionalities:
– Basic 2D plotting
– Image display with interactive
lookup tables
– 3D graphics system
– Library of widgets and modules
useful for science/engineering
applications
Source: www.pyqtgraph.orgFigure 2: Histogram drawn with
PyQtGraph
PyQtGraph:
Components & Competitors
Figure 3:
PyQtGraph’s Dependencies
and Other Graphics Libraries
NOTE: Size of shapes is not an
indicator of any metric
Feature Development in Open-Soure Software
– Iterative process with a public repository
– Mailing list, Forum Boards
– Small, frequent changes to code repository
– Few key developers (that is, limited resources)
– Atleast one maintainer
Applying Pirate Metrics to
PyQtGraph Project
Figure 4: The
AARRR! Metrics
for PyQtGraph
Source:
Pirate Metrics: A new
way to measure open
source community
success by Gaby Fachler
To Accept or Not to Accept?
– A dilemma often presenting itself to the maintainer:
– One side:
– Accepting (new) code appeases the feature contributor; (possibly also) other
users
– Other side:
– New code becomes the responsibility of the maintainer
PyQtGraph’s Code Development
– Bug Reports and New Feature Proposals on GitHub Issues, GitHub Pull Request
and PyQtGraph GoogleGroups pages
– Maintainer of the GitHub (and also founder): Luke Campagnola
– 8-10 user queries/feature proposals every month
– 60 percent of user queries/feature proposals are answered
– About 40 ‘listed’ contributors
– All development is voluntary-based
– FAQ for prospective contributors is available
PyQtGraph Google Group Statistics
Figure 5: Data Related to Number of Posts on PyQtGraph ’Google
Group’ Forum site
Analysing the Library Forum Posts
– Only posts where the maintainer had commented were analysed
– Corresponding changes in code in Github were studied
– A list of observations was created
– 3 cases of feature development were studied
– The 3 cases represented different feature development outcomes
A Successful Development Cycle
aa
Figure 6: Timeline
of events for a
typical successful
feature-addition
process.
Case of Unsuccessful Feature
Development
Figure 7:
Timeline of
interactions for
the “New Time
Axis” proposed
feature
Suggested Improvements for Feature
Development Process
– Need for a Collaboration Tool.
(Objective: focus the current development resources towards feature completion)
– A new metric to assign collaboration level for new feature code posts
– Visibility of across GithHub and Google Groups forum
– While feature development in progress: correction list auto-tracking features
Pirate Metrics + Interactions
Component
Figure 8:
Extended
Pirate Metrics
with
Interactions
component
PyQtGraph’s GitHub Pull
Requests Page
Conclusions: Beneficiaries &
Limitiations of Scope
– This study could aid:
• a developer wishing to contribute to the PyQtGraph project code
• maintainer of the PyQtGraph project
• User studying the open-source process
- Limitations:
 Research based only on one open-source library
 Each open-source project may have its own dynamics
References:
– 1. Luke Campagnola. PyQtGraph Project Home page:
http://www.pyqtgraph.org/ [Internet] [cited 24 April 2018]
– 2. Luke Campagnola. PyQtGraph Project Official Documentation page:
http://www.pyqtgraph.org/documentation/installation.html [Internet] [cited 24
April 2018]
– 3. Pirate Metrics: A new way to measure open source community success.
https://opensource.com/business/16/6/pirate-metrics [Internet] [cited 24 April
2018]
Thank You!
And now the exercise…
Plotting a Graph
–Imagine an Apple Tree that grows
uniformly at the rate of 1 meter per
year. It was planted in 2010. Can you
show how it has grown?

More Related Content

Similar to PyQtGraph evening

Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTSBig Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
Matt Stubbs
 
FinalReport
FinalReportFinalReport
FinalReport
Katy Lee
 
Data Sharing, Distribution and Updating Using Social Coding Community Github ...
Data Sharing, Distribution and Updating Using Social Coding Community Github ...Data Sharing, Distribution and Updating Using Social Coding Community Github ...
Data Sharing, Distribution and Updating Using Social Coding Community Github ...
Universität Salzburg
 
A data-driven approach for understanding Open Design @ Design For Next
A data-driven approach for understanding Open Design @ Design For NextA data-driven approach for understanding Open Design @ Design For Next
A data-driven approach for understanding Open Design @ Design For Next
MAKE-IT
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
AmarnathKambale
 
Big Data projects.pdf
Big Data projects.pdfBig Data projects.pdf
Big Data projects.pdf
ssuserf0a206
 
EDUPUB Implementation Demo Showcase - Reference SW using Readium JS
EDUPUB Implementation Demo Showcase - Reference SW using Readium JSEDUPUB Implementation Demo Showcase - Reference SW using Readium JS
EDUPUB Implementation Demo Showcase - Reference SW using Readium JS
Open Cyber University of Korea
 
Primers or Reminders? The Effects of Existing Review Comments on Code Review
Primers or Reminders? The Effects of Existing Review Comments on Code ReviewPrimers or Reminders? The Effects of Existing Review Comments on Code Review
Primers or Reminders? The Effects of Existing Review Comments on Code Review
Delft University of Technology
 
Maruti gollapudi cv
Maruti gollapudi cvMaruti gollapudi cv
Maruti gollapudi cv
Maruti Gollapudi
 
London atlassian meetup 31 jan 2016 jira metrics-extract slides
London atlassian meetup 31 jan 2016 jira metrics-extract slidesLondon atlassian meetup 31 jan 2016 jira metrics-extract slides
London atlassian meetup 31 jan 2016 jira metrics-extract slides
Rudiger Wolf
 
Final Algos
Final AlgosFinal Algos
Final Algos
Anirudh Mallem
 
CI / CD with fabric8
CI / CD with fabric8 CI / CD with fabric8
CI / CD with fabric8
James Rawlings
 
GITHUB
GITHUBGITHUB
Software Development Practices.pdf
Software Development Practices.pdfSoftware Development Practices.pdf
Software Development Practices.pdf
Ezhumalai p
 
Research data spring: streamlining deposit
Research data spring: streamlining depositResearch data spring: streamlining deposit
Research data spring: streamlining deposit
Jisc RDM
 
Efficient GitHub Crawling using the GraphQL API
Efficient GitHub Crawling using the GraphQL APIEfficient GitHub Crawling using the GraphQL API
Efficient GitHub Crawling using the GraphQL API
Matthias Trapp
 
Gitana: a SQL-based Git Repository Inspector
Gitana: a SQL-based Git Repository InspectorGitana: a SQL-based Git Repository Inspector
Gitana: a SQL-based Git Repository Inspector
Valerio Cosentino
 
Building Reactive Real-time Data Pipeline
Building Reactive Real-time Data PipelineBuilding Reactive Real-time Data Pipeline
Building Reactive Real-time Data Pipeline
Trieu Nguyen
 
Crunching the numbers: Open Source Community Metrics at OSCON
Crunching the numbers: Open Source Community Metrics at OSCONCrunching the numbers: Open Source Community Metrics at OSCON
Crunching the numbers: Open Source Community Metrics at OSCON
Dawn Foster
 
Crunching the numbers: Open Source Community Metrics
Crunching the numbers: Open Source Community MetricsCrunching the numbers: Open Source Community Metrics
Crunching the numbers: Open Source Community Metrics
Dawn Foster
 

Similar to PyQtGraph evening (20)

Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTSBig Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
Big Data LDN 2018: ENABLING DATA-DRIVEN DECISIONS WITH AUTOMATED INSIGHTS
 
FinalReport
FinalReportFinalReport
FinalReport
 
Data Sharing, Distribution and Updating Using Social Coding Community Github ...
Data Sharing, Distribution and Updating Using Social Coding Community Github ...Data Sharing, Distribution and Updating Using Social Coding Community Github ...
Data Sharing, Distribution and Updating Using Social Coding Community Github ...
 
A data-driven approach for understanding Open Design @ Design For Next
A data-driven approach for understanding Open Design @ Design For NextA data-driven approach for understanding Open Design @ Design For Next
A data-driven approach for understanding Open Design @ Design For Next
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Big Data projects.pdf
Big Data projects.pdfBig Data projects.pdf
Big Data projects.pdf
 
EDUPUB Implementation Demo Showcase - Reference SW using Readium JS
EDUPUB Implementation Demo Showcase - Reference SW using Readium JSEDUPUB Implementation Demo Showcase - Reference SW using Readium JS
EDUPUB Implementation Demo Showcase - Reference SW using Readium JS
 
Primers or Reminders? The Effects of Existing Review Comments on Code Review
Primers or Reminders? The Effects of Existing Review Comments on Code ReviewPrimers or Reminders? The Effects of Existing Review Comments on Code Review
Primers or Reminders? The Effects of Existing Review Comments on Code Review
 
Maruti gollapudi cv
Maruti gollapudi cvMaruti gollapudi cv
Maruti gollapudi cv
 
London atlassian meetup 31 jan 2016 jira metrics-extract slides
London atlassian meetup 31 jan 2016 jira metrics-extract slidesLondon atlassian meetup 31 jan 2016 jira metrics-extract slides
London atlassian meetup 31 jan 2016 jira metrics-extract slides
 
Final Algos
Final AlgosFinal Algos
Final Algos
 
CI / CD with fabric8
CI / CD with fabric8 CI / CD with fabric8
CI / CD with fabric8
 
GITHUB
GITHUBGITHUB
GITHUB
 
Software Development Practices.pdf
Software Development Practices.pdfSoftware Development Practices.pdf
Software Development Practices.pdf
 
Research data spring: streamlining deposit
Research data spring: streamlining depositResearch data spring: streamlining deposit
Research data spring: streamlining deposit
 
Efficient GitHub Crawling using the GraphQL API
Efficient GitHub Crawling using the GraphQL APIEfficient GitHub Crawling using the GraphQL API
Efficient GitHub Crawling using the GraphQL API
 
Gitana: a SQL-based Git Repository Inspector
Gitana: a SQL-based Git Repository InspectorGitana: a SQL-based Git Repository Inspector
Gitana: a SQL-based Git Repository Inspector
 
Building Reactive Real-time Data Pipeline
Building Reactive Real-time Data PipelineBuilding Reactive Real-time Data Pipeline
Building Reactive Real-time Data Pipeline
 
Crunching the numbers: Open Source Community Metrics at OSCON
Crunching the numbers: Open Source Community Metrics at OSCONCrunching the numbers: Open Source Community Metrics at OSCON
Crunching the numbers: Open Source Community Metrics at OSCON
 
Crunching the numbers: Open Source Community Metrics
Crunching the numbers: Open Source Community MetricsCrunching the numbers: Open Source Community Metrics
Crunching the numbers: Open Source Community Metrics
 

Recently uploaded

一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
nedcocy
 
Data Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason WebinarData Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason Webinar
UReason
 
ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
VANDANAMOHANGOUDA
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
Yasser Mahgoub
 
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURSCompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
RamonNovais6
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
Divyanshu
 
Welding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdfWelding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdf
AjmalKhan50578
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
aryanpankaj78
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
IJECEIAES
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
Atif Razi
 
SCALING OF MOS CIRCUITS m .pptx
SCALING OF MOS CIRCUITS m                 .pptxSCALING OF MOS CIRCUITS m                 .pptx
SCALING OF MOS CIRCUITS m .pptx
harshapolam10
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
Gino153088
 
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by AnantLLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
Anant Corporation
 
CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1
PKavitha10
 
Design and optimization of ion propulsion drone
Design and optimization of ion propulsion droneDesign and optimization of ion propulsion drone
Design and optimization of ion propulsion drone
bjmsejournal
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
21UME003TUSHARDEB
 
Generative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdfGenerative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdf
mahaffeycheryld
 
morris_worm_intro_and_source_code_analysis_.pdf
morris_worm_intro_and_source_code_analysis_.pdfmorris_worm_intro_and_source_code_analysis_.pdf
morris_worm_intro_and_source_code_analysis_.pdf
ycwu0509
 
Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...
bijceesjournal
 

Recently uploaded (20)

一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
 
Data Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason WebinarData Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason Webinar
 
ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
 
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURSCompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
 
Welding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdfWelding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdf
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
 
SCALING OF MOS CIRCUITS m .pptx
SCALING OF MOS CIRCUITS m                 .pptxSCALING OF MOS CIRCUITS m                 .pptx
SCALING OF MOS CIRCUITS m .pptx
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
 
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by AnantLLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
 
CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1
 
Design and optimization of ion propulsion drone
Design and optimization of ion propulsion droneDesign and optimization of ion propulsion drone
Design and optimization of ion propulsion drone
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
 
Generative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdfGenerative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdf
 
morris_worm_intro_and_source_code_analysis_.pdf
morris_worm_intro_and_source_code_analysis_.pdfmorris_worm_intro_and_source_code_analysis_.pdf
morris_worm_intro_and_source_code_analysis_.pdf
 
Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...
 

PyQtGraph evening

  • 1. Towards Better Open-Source Development: Improving PyQtGraph’s Feature-Development Process Thesis Presentation By Aditya Kelekar BE (IT) Metropolia University of Applied Sciences
  • 2. - – Let’s spare a moment to think about what is happening with a giant open- source software project…. At a well-known open-source project
  • 3.
  • 4. Source: Linux Kernel Report 2017, Linux Foundation Figure 1: Top companies contributing to the Linux kernel, 4.8– 4.13 in 2017 Linux Kernel Contributors
  • 5. Table of Contents – 1. What is PyQtGraph and where does it come from? – 2. Open Source Feature Development: Known Facts – 3. Analysis of PyQtGraph’s Feature Development Process – 4. Guidelines for PyQtGraph’s Feature Process Improvements – 5. Conclusions
  • 6. PyQtGraph: A graphic library Functionalities: – Basic 2D plotting – Image display with interactive lookup tables – 3D graphics system – Library of widgets and modules useful for science/engineering applications Source: www.pyqtgraph.orgFigure 2: Histogram drawn with PyQtGraph
  • 7. PyQtGraph: Components & Competitors Figure 3: PyQtGraph’s Dependencies and Other Graphics Libraries NOTE: Size of shapes is not an indicator of any metric
  • 8. Feature Development in Open-Soure Software – Iterative process with a public repository – Mailing list, Forum Boards – Small, frequent changes to code repository – Few key developers (that is, limited resources) – Atleast one maintainer
  • 9.
  • 10. Applying Pirate Metrics to PyQtGraph Project Figure 4: The AARRR! Metrics for PyQtGraph Source: Pirate Metrics: A new way to measure open source community success by Gaby Fachler
  • 11. To Accept or Not to Accept? – A dilemma often presenting itself to the maintainer: – One side: – Accepting (new) code appeases the feature contributor; (possibly also) other users – Other side: – New code becomes the responsibility of the maintainer
  • 12. PyQtGraph’s Code Development – Bug Reports and New Feature Proposals on GitHub Issues, GitHub Pull Request and PyQtGraph GoogleGroups pages – Maintainer of the GitHub (and also founder): Luke Campagnola – 8-10 user queries/feature proposals every month – 60 percent of user queries/feature proposals are answered – About 40 ‘listed’ contributors – All development is voluntary-based – FAQ for prospective contributors is available
  • 13. PyQtGraph Google Group Statistics Figure 5: Data Related to Number of Posts on PyQtGraph ’Google Group’ Forum site
  • 14. Analysing the Library Forum Posts – Only posts where the maintainer had commented were analysed – Corresponding changes in code in Github were studied – A list of observations was created – 3 cases of feature development were studied – The 3 cases represented different feature development outcomes
  • 15. A Successful Development Cycle aa Figure 6: Timeline of events for a typical successful feature-addition process.
  • 16. Case of Unsuccessful Feature Development Figure 7: Timeline of interactions for the “New Time Axis” proposed feature
  • 17. Suggested Improvements for Feature Development Process – Need for a Collaboration Tool. (Objective: focus the current development resources towards feature completion) – A new metric to assign collaboration level for new feature code posts – Visibility of across GithHub and Google Groups forum – While feature development in progress: correction list auto-tracking features
  • 18. Pirate Metrics + Interactions Component Figure 8: Extended Pirate Metrics with Interactions component
  • 19.
  • 21. Conclusions: Beneficiaries & Limitiations of Scope – This study could aid: • a developer wishing to contribute to the PyQtGraph project code • maintainer of the PyQtGraph project • User studying the open-source process - Limitations:  Research based only on one open-source library  Each open-source project may have its own dynamics
  • 22. References: – 1. Luke Campagnola. PyQtGraph Project Home page: http://www.pyqtgraph.org/ [Internet] [cited 24 April 2018] – 2. Luke Campagnola. PyQtGraph Project Official Documentation page: http://www.pyqtgraph.org/documentation/installation.html [Internet] [cited 24 April 2018] – 3. Pirate Metrics: A new way to measure open source community success. https://opensource.com/business/16/6/pirate-metrics [Internet] [cited 24 April 2018]
  • 23. Thank You! And now the exercise…
  • 24. Plotting a Graph –Imagine an Apple Tree that grows uniformly at the rate of 1 meter per year. It was planted in 2010. Can you show how it has grown?