SlideShare a Scribd company logo
1 of 43
Download to read offline
HOW TO AVOID
CREATING A
GITHUB
JUNKYARD
LAURI APPLE, ZALANDO
On the Menu
● Intro
● Asking Why Before Hitting Publish
● Building Junkyards: A Case Study
● Cleaning Up: The Big Dig
● Closing: Status report, learnings
About You
● Managing a GitHub org?
● GH manager at company?
● Do OSS b/c fun?
● Proud workaholic?
About Me
● Agile producer (coach+PM)
● OSS Evangelist for 1700+ techs
● Open Org Ambassador (Red Hat)
Primary Projects:
● LappleApple/Feedmereadmes: README
help, project advice, maturity model
● LappleApple/awesome-leading-and-managing
● 15 countries
● 20+ million active customers
● ~3.6 billion € net sales
● 200,000+ products
● 12,000+ employees
● 200+ million visits/month
About Zalando
http://zalando.github.io/
● Polyglot, poly-org (four)
● Big on infra, APIs
● Maturing: quality over quantity
Zalando.github.io
Why We Open Source
● Personal development
● Give back
● Improve quality
● Reputation
● Recruitment
But Why Do We OSS?
● Motivations?
● Why this way?
● Why make so much
ourselves?
● Is it sustainable?
— Kind?
— A burden?
https://www.flickr.com/photos/ksayer/5614813544/
Why I Ask Why
Print Journalism Online Blogging
Craftsmanship, relationships Speed, volume, anonymity
Limited space Unlimited space
Best editors were hardest Editor also time-crunched
Software Hamsters
● Busy = status symbol
○ Fun
○ Heroism
○ Pressure
● Burns us out
○ Multitasking -10 IQ points (Levitin)
● http://www.talenteconomy.io/2017/05/04/busy-now-status-symbol-needs-stop/
● https://www.flickr.com/photos/haundreis/2760350708
https://medium.com/@jboogie/everyone-is-too-busy-is-not-a-prioritization-strategy-45ac4d525ab5
Asked a Colleague
Q: Do you actually enjoy
maintaining all that stuff?
A: That’s a hard question
Should it be hard?
Asked Another Colleague
Q: What if GitHub charged per repo?
A: “LOL … we would change a bunch of things”
Why not change the things
now, voluntarily?
OSS Isn’t Really Free
● Cost: maintenance, goodwill, perspective
● Craftsmanship suffers
● “Throwaway” aspect
● If no one editing => GitHub junkyard
https://www.flickr.com/photos/hugo90/5116732240/
Building Junkyards: A Case Study
2008-2015: Command & Control
We Made a Little FOSS
Octocat: “I’m
still hungry”
Switch to Autonomy/Mastery/Purpose Model
● Autonomous teams
● Open Source First
● Choose your stack
● Share your code (and do other
stuff, but ...)
● Share we did
Our GitHub Release Cycle
Jan 2016: 400 projects
● Open sourcing all the things
● “Coding in the open”: Z-specific
● Didn’t know what we had
● Compulsive release cycle
● Not asking why/what value
Our GitHub Junkyard: Lots of Dogs
● Not friendly
● Quality varied
● Stability unclear
● Missing docs, tests, files
● Not responding to PRs
How We Were Building OSS
High Friction Was Our Aesthetic
● Works well, but ...
● Lots of moving parts/onboarding
● Value hidden
● Team realized it
eventually
● Now: deprecating
● GitHub charged?
● Asked community?
● More time?
● Thought about costs?
Would We Have Build It This Way If...
● Want new, novel
● Pressures
● “No time”
● “Might be useful”
● Nostalgia
● “True OSS = share
everything”
https://www.flickr.com/photos/daveseven/6044653558
We Don’t Plan Junkyards
Harsh OSS Ecosystems :(
Finding theCleaning up: The Big Dig
https://www.flickr.com/photos/inetflash/
Goals:
● Apply basic storytelling
● Craftsmanship focus
● Sustainability, less is more
Rare chance to shape culture at mega-scale
Takes a While, and Requires Care
What’s Fast:
○ Guidelines
○ Templates
○ New orgs
What’s Slow:
○ Craftsman mindset
○ Culture shift
○ Trust-building
https://www.flickr.com/photos/elephantom/391190
Guidelines: Minimum Viable Process
Supporting Resources
● Templates: README, product, .md files
● Guidance for asking why, what, how
● Recycled
https://github.com/zalando/zalando-howto-open-source
Organize Repos
Craftsmanship Coaching
● Discipline => freedom
● Avoid burnout
● Optimize
● Plan
● Customers
● Are we solving problems? For whom?
1.5 Years In ...
● 55 repos
● More “why”
● Community-oriented
● Project discovery
● Archiving to GHE
● Nike, Starbucks
● Tests, docs, files
● Incubator: from +8 pages to 1.5
Challenges
https://www.flickr.com/photos/kamshots/9692645837
Craftsmanship Habits Take Time
● “Put it on GitHub” = done
● MVP: No != Not Yet
● FOMO
● Complying != not intrinsic
Motivation
● Dreaming bigger
https://www.flickr.com/photos/26675187@N03/5466550549
Getting Friendlier Over Time
● READMEs help to ...
○ Managing expectations better
○ ETA for responses to PRs
○ Build status
○ Clarity about plans
○ If working software not the
goal, can say so
Getting Leads/Heads Buy-in
● Delivery pressure
● Don’t always analyze “busy”
● Product mindset not for all
● Delegation
● Technical debt: something to
complain about, not fix
Need Maturity Model Mindset
● OSS strategy
● Incubator cleanup
● Peer Review Group
● Mgmt support
● Community non-negotiable
● Training, coaching
Closing Tips
● 1. Clean up, don’t wait
● 2. New? Start now
● 3. Ask why
● 4. Don’t make cleanup your burden
○ Slack
○ Keep it simple
“The moment a new contributor posts a PR or a draft
patch, a timer starts. The longer maintainers take to
respond to their submission, the lower the chance that
person will ever contribute to the project again.” —
@fuzzychef
And then you might have a junkyard
https://community.redhat.com/blog/2017/04/
contributors-speed-matters/
Please Respond to People
Thanks!
● Zalando.github.io
● github.com/lappleapple/feedmereadmes
● @lauritaapplez
● lauri.apple@zalando.de

More Related Content

Similar to 2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHub Junkyard - Lauri Apple

We Need to Talk: How Communication Helps Code
We Need to Talk: How Communication Helps CodeWe Need to Talk: How Communication Helps Code
We Need to Talk: How Communication Helps CodeDocker, Inc.
 
Publishing your open source project
Publishing your open source projectPublishing your open source project
Publishing your open source projectRishi Pithadiya
 
Teach yourself Ruby on Rails
Teach yourself Ruby on RailsTeach yourself Ruby on Rails
Teach yourself Ruby on Railspatrikbona
 
ADDO 2019: Looking back at over 10 years of Devops
ADDO 2019:    Looking back at over 10 years of DevopsADDO 2019:    Looking back at over 10 years of Devops
ADDO 2019: Looking back at over 10 years of DevopsKris Buytaert
 
Journey to Google
Journey to GoogleJourney to Google
Journey to GoogleGDSC PJATK
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceAll Things Open
 
Заняття #1. Intro to Product Management
Заняття #1. Intro to Product ManagementЗаняття #1. Intro to Product Management
Заняття #1. Intro to Product ManagementLviv Startup Club
 
Kickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfKickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfShreyaDhurde
 
Techhub Riga - tm 27.07
Techhub Riga - tm  27.07Techhub Riga - tm  27.07
Techhub Riga - tm 27.07Toms Bauģis
 
Patroklos Papapetrou: How to Boost Development Team’s Speed at I T.A.K.E. Unc...
Patroklos Papapetrou: How to Boost Development Team’s Speed at I T.A.K.E. Unc...Patroklos Papapetrou: How to Boost Development Team’s Speed at I T.A.K.E. Unc...
Patroklos Papapetrou: How to Boost Development Team’s Speed at I T.A.K.E. Unc...Mozaic Works
 
Before you graduate. Things to learn for every computer science student
Before you graduate. Things to learn for every computer science studentBefore you graduate. Things to learn for every computer science student
Before you graduate. Things to learn for every computer science studentAshish Gaikwad
 
Confluence + jira together
Confluence + jira togetherConfluence + jira together
Confluence + jira togetherOm Vikram Thapa
 
From Open-Source, to Open-Core, to Cloud - Open Core Summit 2023 - Pierre Burgy
From Open-Source, to Open-Core, to Cloud - Open Core Summit 2023 - Pierre BurgyFrom Open-Source, to Open-Core, to Cloud - Open Core Summit 2023 - Pierre Burgy
From Open-Source, to Open-Core, to Cloud - Open Core Summit 2023 - Pierre BurgyJim Laurie
 
Being Productive at Work
Being Productive at WorkBeing Productive at Work
Being Productive at WorkHitesh Patel
 
GitLab webcast - Release 8.4
GitLab webcast - Release 8.4GitLab webcast - Release 8.4
GitLab webcast - Release 8.4GitLab, Inc
 
How to make your own WordPress website
How to make your own WordPress websiteHow to make your own WordPress website
How to make your own WordPress websitelindyfly
 
Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)rc2209
 
Joomla World Conference 2016 GSoC and Joomla
Joomla World Conference 2016 GSoC and JoomlaJoomla World Conference 2016 GSoC and Joomla
Joomla World Conference 2016 GSoC and JoomlaPuneet Kala
 

Similar to 2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHub Junkyard - Lauri Apple (20)

We Need to Talk: How Communication Helps Code
We Need to Talk: How Communication Helps CodeWe Need to Talk: How Communication Helps Code
We Need to Talk: How Communication Helps Code
 
Publishing your open source project
Publishing your open source projectPublishing your open source project
Publishing your open source project
 
Teach yourself Ruby on Rails
Teach yourself Ruby on RailsTeach yourself Ruby on Rails
Teach yourself Ruby on Rails
 
ADDO 2019: Looking back at over 10 years of Devops
ADDO 2019:    Looking back at over 10 years of DevopsADDO 2019:    Looking back at over 10 years of Devops
ADDO 2019: Looking back at over 10 years of Devops
 
Journey to Google
Journey to GoogleJourney to Google
Journey to Google
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open Source
 
Заняття #1. Intro to Product Management
Заняття #1. Intro to Product ManagementЗаняття #1. Intro to Product Management
Заняття #1. Intro to Product Management
 
Kickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfKickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdf
 
Techhub Riga - tm 27.07
Techhub Riga - tm  27.07Techhub Riga - tm  27.07
Techhub Riga - tm 27.07
 
Patroklos Papapetrou: How to Boost Development Team’s Speed at I T.A.K.E. Unc...
Patroklos Papapetrou: How to Boost Development Team’s Speed at I T.A.K.E. Unc...Patroklos Papapetrou: How to Boost Development Team’s Speed at I T.A.K.E. Unc...
Patroklos Papapetrou: How to Boost Development Team’s Speed at I T.A.K.E. Unc...
 
Before you graduate. Things to learn for every computer science student
Before you graduate. Things to learn for every computer science studentBefore you graduate. Things to learn for every computer science student
Before you graduate. Things to learn for every computer science student
 
Confluence + jira together
Confluence + jira togetherConfluence + jira together
Confluence + jira together
 
From Open-Source, to Open-Core, to Cloud - Open Core Summit 2023 - Pierre Burgy
From Open-Source, to Open-Core, to Cloud - Open Core Summit 2023 - Pierre BurgyFrom Open-Source, to Open-Core, to Cloud - Open Core Summit 2023 - Pierre Burgy
From Open-Source, to Open-Core, to Cloud - Open Core Summit 2023 - Pierre Burgy
 
Being Productive at Work
Being Productive at WorkBeing Productive at Work
Being Productive at Work
 
GitLab webcast - Release 8.4
GitLab webcast - Release 8.4GitLab webcast - Release 8.4
GitLab webcast - Release 8.4
 
How to make your own WordPress website
How to make your own WordPress websiteHow to make your own WordPress website
How to make your own WordPress website
 
Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)Tools and libraries for common problems (Early Draft)
Tools and libraries for common problems (Early Draft)
 
Joomla World Conference 2016 GSoC and Joomla
Joomla World Conference 2016 GSoC and JoomlaJoomla World Conference 2016 GSoC and Joomla
Joomla World Conference 2016 GSoC and Joomla
 
Scaling humans
Scaling humansScaling humans
Scaling humans
 
LET'S TALK ANDROID Dev
LET'S TALK ANDROID DevLET'S TALK ANDROID Dev
LET'S TALK ANDROID Dev
 

More from Ambassador Labs

Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...Ambassador Labs
 
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...Ambassador Labs
 
Cloud native development without the toil
Cloud native development without the toilCloud native development without the toil
Cloud native development without the toilAmbassador Labs
 
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services Ambassador Labs
 
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...Ambassador Labs
 
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex GervaisAmbassador Labs
 
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard LiAmbassador Labs
 
What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0? What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0? Ambassador Labs
 
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes Ambassador Labs
 
Ambassador: Building a Control Plane for Envoy
Ambassador: Building a Control Plane for Envoy Ambassador: Building a Control Plane for Envoy
Ambassador: Building a Control Plane for Envoy Ambassador Labs
 
Telepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for KubernetesTelepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for KubernetesAmbassador Labs
 
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...Ambassador Labs
 
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...Ambassador Labs
 
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...Ambassador Labs
 
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYCThe Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYCAmbassador Labs
 
Ambassador Kubernetes-Native API Gateway
Ambassador Kubernetes-Native API GatewayAmbassador Kubernetes-Native API Gateway
Ambassador Kubernetes-Native API GatewayAmbassador Labs
 
Micro xchg 2018 - What is a Service Mesh?
Micro xchg 2018 - What is a Service Mesh? Micro xchg 2018 - What is a Service Mesh?
Micro xchg 2018 - What is a Service Mesh? Ambassador Labs
 
KubeCon NA 2017: Ambassador and Envoy (Envoy Salon)
KubeCon NA 2017: Ambassador and Envoy (Envoy Salon)KubeCon NA 2017: Ambassador and Envoy (Envoy Salon)
KubeCon NA 2017: Ambassador and Envoy (Envoy Salon)Ambassador Labs
 
Webinar: Code Faster on Kubernetes
Webinar: Code Faster on KubernetesWebinar: Code Faster on Kubernetes
Webinar: Code Faster on KubernetesAmbassador Labs
 
QCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented DevelopmentQCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented DevelopmentAmbassador Labs
 

More from Ambassador Labs (20)

Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
 
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...
 
Cloud native development without the toil
Cloud native development without the toilCloud native development without the toil
Cloud native development without the toil
 
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
 
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
 
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
 
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
 
What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0? What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0?
 
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes
 
Ambassador: Building a Control Plane for Envoy
Ambassador: Building a Control Plane for Envoy Ambassador: Building a Control Plane for Envoy
Ambassador: Building a Control Plane for Envoy
 
Telepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for KubernetesTelepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for Kubernetes
 
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
 
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
 
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
 
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYCThe Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
 
Ambassador Kubernetes-Native API Gateway
Ambassador Kubernetes-Native API GatewayAmbassador Kubernetes-Native API Gateway
Ambassador Kubernetes-Native API Gateway
 
Micro xchg 2018 - What is a Service Mesh?
Micro xchg 2018 - What is a Service Mesh? Micro xchg 2018 - What is a Service Mesh?
Micro xchg 2018 - What is a Service Mesh?
 
KubeCon NA 2017: Ambassador and Envoy (Envoy Salon)
KubeCon NA 2017: Ambassador and Envoy (Envoy Salon)KubeCon NA 2017: Ambassador and Envoy (Envoy Salon)
KubeCon NA 2017: Ambassador and Envoy (Envoy Salon)
 
Webinar: Code Faster on Kubernetes
Webinar: Code Faster on KubernetesWebinar: Code Faster on Kubernetes
Webinar: Code Faster on Kubernetes
 
QCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented DevelopmentQCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented Development
 

Recently uploaded

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 

Recently uploaded (20)

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 

2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHub Junkyard - Lauri Apple

  • 1. HOW TO AVOID CREATING A GITHUB JUNKYARD LAURI APPLE, ZALANDO
  • 2. On the Menu ● Intro ● Asking Why Before Hitting Publish ● Building Junkyards: A Case Study ● Cleaning Up: The Big Dig ● Closing: Status report, learnings
  • 3. About You ● Managing a GitHub org? ● GH manager at company? ● Do OSS b/c fun? ● Proud workaholic?
  • 4. About Me ● Agile producer (coach+PM) ● OSS Evangelist for 1700+ techs ● Open Org Ambassador (Red Hat) Primary Projects: ● LappleApple/Feedmereadmes: README help, project advice, maturity model ● LappleApple/awesome-leading-and-managing
  • 5. ● 15 countries ● 20+ million active customers ● ~3.6 billion € net sales ● 200,000+ products ● 12,000+ employees ● 200+ million visits/month About Zalando
  • 7. ● Polyglot, poly-org (four) ● Big on infra, APIs ● Maturing: quality over quantity Zalando.github.io
  • 8. Why We Open Source ● Personal development ● Give back ● Improve quality ● Reputation ● Recruitment
  • 9. But Why Do We OSS? ● Motivations? ● Why this way? ● Why make so much ourselves? ● Is it sustainable? — Kind? — A burden? https://www.flickr.com/photos/ksayer/5614813544/
  • 10. Why I Ask Why Print Journalism Online Blogging Craftsmanship, relationships Speed, volume, anonymity Limited space Unlimited space Best editors were hardest Editor also time-crunched
  • 11. Software Hamsters ● Busy = status symbol ○ Fun ○ Heroism ○ Pressure ● Burns us out ○ Multitasking -10 IQ points (Levitin) ● http://www.talenteconomy.io/2017/05/04/busy-now-status-symbol-needs-stop/ ● https://www.flickr.com/photos/haundreis/2760350708
  • 13. Asked a Colleague Q: Do you actually enjoy maintaining all that stuff? A: That’s a hard question Should it be hard?
  • 14. Asked Another Colleague Q: What if GitHub charged per repo? A: “LOL … we would change a bunch of things” Why not change the things now, voluntarily?
  • 15. OSS Isn’t Really Free ● Cost: maintenance, goodwill, perspective ● Craftsmanship suffers ● “Throwaway” aspect ● If no one editing => GitHub junkyard
  • 16.
  • 19. We Made a Little FOSS Octocat: “I’m still hungry”
  • 20. Switch to Autonomy/Mastery/Purpose Model ● Autonomous teams ● Open Source First ● Choose your stack ● Share your code (and do other stuff, but ...) ● Share we did
  • 22. Jan 2016: 400 projects ● Open sourcing all the things ● “Coding in the open”: Z-specific ● Didn’t know what we had ● Compulsive release cycle ● Not asking why/what value
  • 23. Our GitHub Junkyard: Lots of Dogs ● Not friendly ● Quality varied ● Stability unclear ● Missing docs, tests, files ● Not responding to PRs
  • 24. How We Were Building OSS
  • 25. High Friction Was Our Aesthetic ● Works well, but ... ● Lots of moving parts/onboarding ● Value hidden ● Team realized it eventually ● Now: deprecating
  • 26. ● GitHub charged? ● Asked community? ● More time? ● Thought about costs? Would We Have Build It This Way If...
  • 27. ● Want new, novel ● Pressures ● “No time” ● “Might be useful” ● Nostalgia ● “True OSS = share everything” https://www.flickr.com/photos/daveseven/6044653558 We Don’t Plan Junkyards
  • 29. Finding theCleaning up: The Big Dig https://www.flickr.com/photos/inetflash/ Goals: ● Apply basic storytelling ● Craftsmanship focus ● Sustainability, less is more Rare chance to shape culture at mega-scale
  • 30. Takes a While, and Requires Care What’s Fast: ○ Guidelines ○ Templates ○ New orgs What’s Slow: ○ Craftsman mindset ○ Culture shift ○ Trust-building https://www.flickr.com/photos/elephantom/391190
  • 32. Supporting Resources ● Templates: README, product, .md files ● Guidance for asking why, what, how ● Recycled https://github.com/zalando/zalando-howto-open-source
  • 34. Craftsmanship Coaching ● Discipline => freedom ● Avoid burnout ● Optimize ● Plan ● Customers ● Are we solving problems? For whom?
  • 35. 1.5 Years In ... ● 55 repos ● More “why” ● Community-oriented ● Project discovery ● Archiving to GHE ● Nike, Starbucks ● Tests, docs, files ● Incubator: from +8 pages to 1.5
  • 37. Craftsmanship Habits Take Time ● “Put it on GitHub” = done ● MVP: No != Not Yet ● FOMO ● Complying != not intrinsic Motivation ● Dreaming bigger https://www.flickr.com/photos/26675187@N03/5466550549
  • 38. Getting Friendlier Over Time ● READMEs help to ... ○ Managing expectations better ○ ETA for responses to PRs ○ Build status ○ Clarity about plans ○ If working software not the goal, can say so
  • 39. Getting Leads/Heads Buy-in ● Delivery pressure ● Don’t always analyze “busy” ● Product mindset not for all ● Delegation ● Technical debt: something to complain about, not fix
  • 40. Need Maturity Model Mindset ● OSS strategy ● Incubator cleanup ● Peer Review Group ● Mgmt support ● Community non-negotiable ● Training, coaching
  • 41. Closing Tips ● 1. Clean up, don’t wait ● 2. New? Start now ● 3. Ask why ● 4. Don’t make cleanup your burden ○ Slack ○ Keep it simple
  • 42. “The moment a new contributor posts a PR or a draft patch, a timer starts. The longer maintainers take to respond to their submission, the lower the chance that person will ever contribute to the project again.” — @fuzzychef And then you might have a junkyard https://community.redhat.com/blog/2017/04/ contributors-speed-matters/ Please Respond to People