SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Scaling Open Source Operations
Arnaud
Porterie
Sr. Engineering Manager, Docker
The people
Three groups
One culture
Agenda
The processes
Maintainership
Code & design
The tooling
Measure
Automate
The people
Who are the people in open source?
The people
Users
Contributors Maintainers
Who are the people in open source?
The people
Users
Contributors Maintainers
● Influence the roadmap and priorities
● Report usability issues and bugs (+1!)
● Want to learn about what is coming next
Who are the people in open source?
The people
Users
Contributors Maintainers
● Contribute something (code, docs, tests, …)
● Come to improve a project they use (hobbyist)
● Come to influence the project (professional)
Who are the people in open source?
The people
Users
Contributors Maintainers
● Organize the project
● Filter and review contributors input
● Influence by defining the roadmap
Contributors
(~800+ / 6M)
Who are the people in open source?
The people Users
(~6000+ / 6M)
● These groups aren’t mutually exclusive
● These groups aren’t mapped to employers
● These groups are very different in size!
Mtnr.
(~60)
Props to (some of!) the Docker maintainers
The people
The secret sauce for a healthy project
● Culture defines your open source community
● Of all things, culture is the one that scales best
○ Old habits die hard
○ Newcomers tend to follow community’s codes
○ It takes very few people to show the example to many
● Behave like you want your community to behave
Open source culture
The processes
The role of maintainers
● A maintainer is not a super contributor
○ Typically know the project best and happen to also be top contributors
● To the contrary, the maintainers role is to reach 0 open contributions
○ By interacting with community: coaching contributors, reviewing code
○ By improving the project infrastructure: guides, testing infra, tooling
● To maintainers, unreviewed contributions are a liability
Becoming a maintainer
How to identify those key community members?
● Golden rule: anybody should be able to become maintainer
○ The hobbyist dedicating a few hours every week
○ The professional paid by their employer to participate
● Docker’s approach: reward regular activity over extended period of time
○ Decision is vote-based (⅔ of maintainers + BDFL to approve)
○ But how to measure activity?
Becoming a maintainer
How to identify those key community members?
● Number of contributions is not the right metric to identify maintainers
● Our solution: number of issues & pull requests interacted with
○ Opening a pull request and commenting 10 times on it counts as 1
○ Commenting on someone else’s pull request also counts as 1
● Promotes people showing broader interest than their own contributions
Becoming a maintainer
● Different groups
● Different expectations
● Conflicting priorities
What and who are you optimizing for?
Defining the process
Features Quality
Users
Contributors
Maintainers
Project pace
● Quality first
● Review fast
● Minimize feature creep
Docker project tradeoffs
Defining the process
Features Quality
Project pace
What and who are you optimizing for?
● Docker open source processes mostly favor contributors
○ We don’t delay merges during code freeze
○ We carry patches that can’t be merged as is
○ We work hard to “reach a yes” (80% of contributions are merged)
● A happy contributor may eventually become a helpful maintainers
Defining the process
The goals of the process
● Minimizing frustration for the contributor...
○ By processing contributions in a timely manner
○ By “failing early” for contributions which won’t get merged
● … While preserving quality
○ Good automated testing and coverage
○ Two maintainers are required to merge
Example: code review process
Our approach: 4 steps workflow using GitHub labels
● Easy to tell what’s expected next
○ Is it a contribution we want?
○ Is it properly written, tested, and safe?
○ Is it documented?
○ Profit!
● Plus a few special labels for problematic contributions
○ Tests aren’t passing
○ Not progressing
Example: code review process
The pitfalls of “design by committee”
● Design decisions don’t scale (“too many cooks in the kitchen”)
● Golden rule: “No is temporary, yes is forever”
○ The default is “no” unless consensus can be reached
○ Reaching consensus gets harder as the group grows
● Divide and conquer: smaller groups on better delimited problems
Scaling design
Manage your processes as code
● Processes are just another tool
○ Document them as text files in the repository
○ Adjust the processes through pull requests
● For examples, see project/ subdirectory in github.com/docker/docker
Processes best practices
The tooling
Measure, automate, repeat
Metrics, metrics, metrics!
Measuring open source activity
● Many new questions will arise as a project scales
○ Who are the active members of the community?
○ Who is contributing to the project?
○ How fast do maintainers process contributions?
○ What are the most active repositories?
● We failed to find our ideal tool for that, so we built it
icecrime/vossibility-stack
Metrics, metrics, metrics!
Measuring open source activity
Automation
● GitHub webhooks are essential for open source automation
○ Docker uses NSQ to persist and fan-out messages
○ Allows for multiple listeners (queues) for a single repository (topic)
docker/leeroy Automate actions on GitHub events
docker/gordon-bot IRC bot to interact with Jenkins CI server
icecrime/poule Mass interact with pull requests
What’s next?
● Come learn how to contribute, or meet the maintainers!
Day 1
2:00pm Contribute 101: Engine / Swarm / Containerd
2.55pm Meet the maintainers: Engine / Swarm / Containerd
Day 2
1:30pm Contribute 101: Compose / Kitematic / Machine
2:25pm Meet the maintainers: Compose / Kitematic / Machine
Thank you!
@icecrime

Más contenido relacionado

La actualidad más candente

DSpace 7 - Creating High-Quality Software: Update to Development Practices
DSpace 7 - Creating High-Quality Software: Update to Development PracticesDSpace 7 - Creating High-Quality Software: Update to Development Practices
DSpace 7 - Creating High-Quality Software: Update to Development Practices
4Science
 
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
JAXLondon2014
 

La actualidad más candente (20)

Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven Infrastructure
 
Apple IT Managing Containers
Apple IT Managing Containers Apple IT Managing Containers
Apple IT Managing Containers
 
Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster
 
Devopsguys DevOps 101 for recruiters
Devopsguys   DevOps 101 for recruitersDevopsguys   DevOps 101 for recruiters
Devopsguys DevOps 101 for recruiters
 
Icebreaker with DevOps
Icebreaker with DevOpsIcebreaker with DevOps
Icebreaker with DevOps
 
DSpace 7 - Creating High-Quality Software: Update to Development Practices
DSpace 7 - Creating High-Quality Software: Update to Development PracticesDSpace 7 - Creating High-Quality Software: Update to Development Practices
DSpace 7 - Creating High-Quality Software: Update to Development Practices
 
10 years of #devopsdays, but what have we really learned ?
10 years of #devopsdays, but what have we really learned ? 10 years of #devopsdays, but what have we really learned ?
10 years of #devopsdays, but what have we really learned ?
 
Run stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 Edition
 
LCE12: Intro Training: Upstreaming 101
LCE12: Intro Training: Upstreaming 101LCE12: Intro Training: Upstreaming 101
LCE12: Intro Training: Upstreaming 101
 
Gitting better
Gitting betterGitting better
Gitting better
 
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
 
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
 
50 Shades of DevOps
50 Shades of DevOps50 Shades of DevOps
50 Shades of DevOps
 
DevOps for Defenders in the Enterprise
DevOps for Defenders in the EnterpriseDevOps for Defenders in the Enterprise
DevOps for Defenders in the Enterprise
 
The Journey of devops and continuous delivery in a Large Financial Institution
The Journey of devops and continuous delivery in a Large Financial InstitutionThe Journey of devops and continuous delivery in a Large Financial Institution
The Journey of devops and continuous delivery in a Large Financial Institution
 
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation SlidesDSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
 
Unlocking the Power of Iteration
Unlocking the Power of IterationUnlocking the Power of Iteration
Unlocking the Power of Iteration
 
Everyone Is Part of Continuous Delivery (Agile Portugal)
Everyone Is Part of Continuous Delivery (Agile Portugal)Everyone Is Part of Continuous Delivery (Agile Portugal)
Everyone Is Part of Continuous Delivery (Agile Portugal)
 
Devops is (not ) a buzzword
Devops is (not ) a buzzwordDevops is (not ) a buzzword
Devops is (not ) a buzzword
 

Destacado

Decentralized cloud an industrial reality with higher resilience by jean-pa...
Decentralized cloud   an industrial reality with higher resilience by jean-pa...Decentralized cloud   an industrial reality with higher resilience by jean-pa...
Decentralized cloud an industrial reality with higher resilience by jean-pa...
Khazret Sapenov
 
NewSQL Database Overview
NewSQL Database OverviewNewSQL Database Overview
NewSQL Database Overview
Steve Min
 

Destacado (20)

Arnaud Porterie - The Truth About C++
Arnaud Porterie - The Truth About C++Arnaud Porterie - The Truth About C++
Arnaud Porterie - The Truth About C++
 
The rise of Docker, and the future of computing
The rise of Docker, and the future of computingThe rise of Docker, and the future of computing
The rise of Docker, and the future of computing
 
Arnaud Porterie - Using Machine & Docker to develop & build Docker
Arnaud Porterie - Using Machine & Docker to develop & build DockerArnaud Porterie - Using Machine & Docker to develop & build Docker
Arnaud Porterie - Using Machine & Docker to develop & build Docker
 
How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)
 
DockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
DockerCon US 2016 - Extending Docker With APIs, Drivers, and PluginsDockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
DockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
 
The Real Time Cloud
The Real Time CloudThe Real Time Cloud
The Real Time Cloud
 
Decentralized cloud an industrial reality with higher resilience by jean-pa...
Decentralized cloud   an industrial reality with higher resilience by jean-pa...Decentralized cloud   an industrial reality with higher resilience by jean-pa...
Decentralized cloud an industrial reality with higher resilience by jean-pa...
 
Docker presentation
Docker presentationDocker presentation
Docker presentation
 
Hilscher netIOT - Industrial Cloud Communication
Hilscher netIOT - Industrial Cloud CommunicationHilscher netIOT - Industrial Cloud Communication
Hilscher netIOT - Industrial Cloud Communication
 
WSO2 Cloud Platform: Vision and Roadmap
WSO2 Cloud Platform: Vision and RoadmapWSO2 Cloud Platform: Vision and Roadmap
WSO2 Cloud Platform: Vision and Roadmap
 
NewSQL Database Overview
NewSQL Database OverviewNewSQL Database Overview
NewSQL Database Overview
 
Try Cloud Spanner
Try Cloud SpannerTry Cloud Spanner
Try Cloud Spanner
 
An Overview of Spanner: Google's Globally Distributed Database
An Overview of Spanner: Google's Globally Distributed DatabaseAn Overview of Spanner: Google's Globally Distributed Database
An Overview of Spanner: Google's Globally Distributed Database
 
NewSQL overview, Feb 2015
NewSQL overview, Feb 2015NewSQL overview, Feb 2015
NewSQL overview, Feb 2015
 
Big data landscape map collection by aibdp
Big data landscape map collection by aibdpBig data landscape map collection by aibdp
Big data landscape map collection by aibdp
 
MySQL vs. NoSQL and NewSQL - survey results
MySQL vs. NoSQL and NewSQL - survey resultsMySQL vs. NoSQL and NewSQL - survey results
MySQL vs. NoSQL and NewSQL - survey results
 
D6: Cloud Directions ( Predix Transform 2016)
D6: Cloud Directions ( Predix Transform 2016)D6: Cloud Directions ( Predix Transform 2016)
D6: Cloud Directions ( Predix Transform 2016)
 
Docker: the road ahead
Docker: the road aheadDocker: the road ahead
Docker: the road ahead
 
DockerCon 16 General Session Day 1
DockerCon 16 General Session Day 1DockerCon 16 General Session Day 1
DockerCon 16 General Session Day 1
 
DockerCon 16 General Session Day 2
DockerCon 16 General Session Day 2 DockerCon 16 General Session Day 2
DockerCon 16 General Session Day 2
 

Similar a DockerCon US 2016 - Scaling Open Source operations

Digital Project Management UCC Nov 2013
Digital Project Management UCC Nov 2013Digital Project Management UCC Nov 2013
Digital Project Management UCC Nov 2013
Shawn Day
 
Micheal Monty Widenius - Free Open Source Software Entrepreneurship
Micheal Monty Widenius -  Free Open Source Software EntrepreneurshipMicheal Monty Widenius -  Free Open Source Software Entrepreneurship
Micheal Monty Widenius - Free Open Source Software Entrepreneurship
South Tyrol Free Software Conference
 

Similar a DockerCon US 2016 - Scaling Open Source operations (20)

Large drupal site builds a workshop for sxsw interactive - march 17, 2015
Large drupal site builds   a workshop for sxsw interactive - march 17, 2015Large drupal site builds   a workshop for sxsw interactive - march 17, 2015
Large drupal site builds a workshop for sxsw interactive - march 17, 2015
 
Drupal's Credit System and Evidence-Based Open-Source Sustainability
Drupal's Credit System and Evidence-Based Open-Source SustainabilityDrupal's Credit System and Evidence-Based Open-Source Sustainability
Drupal's Credit System and Evidence-Based Open-Source Sustainability
 
Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4
 
Software Engineering Primer
Software Engineering PrimerSoftware Engineering Primer
Software Engineering Primer
 
Open agile is free and open source community agile-
Open agile  is free and open source community agile-Open agile  is free and open source community agile-
Open agile is free and open source community agile-
 
Let's talk FOSS!
Let's talk FOSS!Let's talk FOSS!
Let's talk FOSS!
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO Group
 
Philosophy of Open Source - SFO17-TR01
Philosophy of Open Source - SFO17-TR01Philosophy of Open Source - SFO17-TR01
Philosophy of Open Source - SFO17-TR01
 
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
 
BUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open SourceBUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open Source
 
How kubernetes works community, velocity, and contribution - osls 2017 (1)
How kubernetes works  community, velocity, and contribution - osls 2017 (1)How kubernetes works  community, velocity, and contribution - osls 2017 (1)
How kubernetes works community, velocity, and contribution - osls 2017 (1)
 
Open Source in Real Life
Open Source in Real LifeOpen Source in Real Life
Open Source in Real Life
 
Building software: the lessons from open source
Building software: the lessons from open sourceBuilding software: the lessons from open source
Building software: the lessons from open source
 
Digital Project Management UCC Nov 2013
Digital Project Management UCC Nov 2013Digital Project Management UCC Nov 2013
Digital Project Management UCC Nov 2013
 
Oscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo groupOscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo group
 
Gsoc2012 checklist
Gsoc2012 checklistGsoc2012 checklist
Gsoc2012 checklist
 
Micheal Monty Widenius - Free Open Source Software Entrepreneurship
Micheal Monty Widenius -  Free Open Source Software EntrepreneurshipMicheal Monty Widenius -  Free Open Source Software Entrepreneurship
Micheal Monty Widenius - Free Open Source Software Entrepreneurship
 
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...
 
How to work with virtual volunteers
How to work with virtual volunteersHow to work with virtual volunteers
How to work with virtual volunteers
 
Project management.docx communictionLecture notes Training for Trainers in Ge...
Project management.docx communictionLecture notes Training for Trainers in Ge...Project management.docx communictionLecture notes Training for Trainers in Ge...
Project management.docx communictionLecture notes Training for Trainers in Ge...
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Último (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

DockerCon US 2016 - Scaling Open Source operations

  • 1. Scaling Open Source Operations Arnaud Porterie Sr. Engineering Manager, Docker
  • 2. The people Three groups One culture Agenda The processes Maintainership Code & design The tooling Measure Automate
  • 4. Who are the people in open source? The people Users Contributors Maintainers
  • 5. Who are the people in open source? The people Users Contributors Maintainers ● Influence the roadmap and priorities ● Report usability issues and bugs (+1!) ● Want to learn about what is coming next
  • 6. Who are the people in open source? The people Users Contributors Maintainers ● Contribute something (code, docs, tests, …) ● Come to improve a project they use (hobbyist) ● Come to influence the project (professional)
  • 7. Who are the people in open source? The people Users Contributors Maintainers ● Organize the project ● Filter and review contributors input ● Influence by defining the roadmap
  • 8. Contributors (~800+ / 6M) Who are the people in open source? The people Users (~6000+ / 6M) ● These groups aren’t mutually exclusive ● These groups aren’t mapped to employers ● These groups are very different in size! Mtnr. (~60)
  • 9. Props to (some of!) the Docker maintainers The people
  • 10. The secret sauce for a healthy project ● Culture defines your open source community ● Of all things, culture is the one that scales best ○ Old habits die hard ○ Newcomers tend to follow community’s codes ○ It takes very few people to show the example to many ● Behave like you want your community to behave Open source culture
  • 12. The role of maintainers ● A maintainer is not a super contributor ○ Typically know the project best and happen to also be top contributors ● To the contrary, the maintainers role is to reach 0 open contributions ○ By interacting with community: coaching contributors, reviewing code ○ By improving the project infrastructure: guides, testing infra, tooling ● To maintainers, unreviewed contributions are a liability Becoming a maintainer
  • 13. How to identify those key community members? ● Golden rule: anybody should be able to become maintainer ○ The hobbyist dedicating a few hours every week ○ The professional paid by their employer to participate ● Docker’s approach: reward regular activity over extended period of time ○ Decision is vote-based (⅔ of maintainers + BDFL to approve) ○ But how to measure activity? Becoming a maintainer
  • 14. How to identify those key community members? ● Number of contributions is not the right metric to identify maintainers ● Our solution: number of issues & pull requests interacted with ○ Opening a pull request and commenting 10 times on it counts as 1 ○ Commenting on someone else’s pull request also counts as 1 ● Promotes people showing broader interest than their own contributions Becoming a maintainer
  • 15. ● Different groups ● Different expectations ● Conflicting priorities What and who are you optimizing for? Defining the process Features Quality Users Contributors Maintainers Project pace
  • 16. ● Quality first ● Review fast ● Minimize feature creep Docker project tradeoffs Defining the process Features Quality Project pace
  • 17. What and who are you optimizing for? ● Docker open source processes mostly favor contributors ○ We don’t delay merges during code freeze ○ We carry patches that can’t be merged as is ○ We work hard to “reach a yes” (80% of contributions are merged) ● A happy contributor may eventually become a helpful maintainers Defining the process
  • 18. The goals of the process ● Minimizing frustration for the contributor... ○ By processing contributions in a timely manner ○ By “failing early” for contributions which won’t get merged ● … While preserving quality ○ Good automated testing and coverage ○ Two maintainers are required to merge Example: code review process
  • 19. Our approach: 4 steps workflow using GitHub labels ● Easy to tell what’s expected next ○ Is it a contribution we want? ○ Is it properly written, tested, and safe? ○ Is it documented? ○ Profit! ● Plus a few special labels for problematic contributions ○ Tests aren’t passing ○ Not progressing Example: code review process
  • 20. The pitfalls of “design by committee” ● Design decisions don’t scale (“too many cooks in the kitchen”) ● Golden rule: “No is temporary, yes is forever” ○ The default is “no” unless consensus can be reached ○ Reaching consensus gets harder as the group grows ● Divide and conquer: smaller groups on better delimited problems Scaling design
  • 21. Manage your processes as code ● Processes are just another tool ○ Document them as text files in the repository ○ Adjust the processes through pull requests ● For examples, see project/ subdirectory in github.com/docker/docker Processes best practices
  • 23. Metrics, metrics, metrics! Measuring open source activity ● Many new questions will arise as a project scales ○ Who are the active members of the community? ○ Who is contributing to the project? ○ How fast do maintainers process contributions? ○ What are the most active repositories? ● We failed to find our ideal tool for that, so we built it
  • 25. Automation ● GitHub webhooks are essential for open source automation ○ Docker uses NSQ to persist and fan-out messages ○ Allows for multiple listeners (queues) for a single repository (topic) docker/leeroy Automate actions on GitHub events docker/gordon-bot IRC bot to interact with Jenkins CI server icecrime/poule Mass interact with pull requests
  • 26. What’s next? ● Come learn how to contribute, or meet the maintainers! Day 1 2:00pm Contribute 101: Engine / Swarm / Containerd 2.55pm Meet the maintainers: Engine / Swarm / Containerd Day 2 1:30pm Contribute 101: Compose / Kitematic / Machine 2:25pm Meet the maintainers: Compose / Kitematic / Machine