SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
Open Source Craft at Twitter
      Chris Aniszczyk (@cra)
       http://aniszczyk.org

           #monkigras
Twistory
Twitter History
2006: A simple idea...
2008: Growing Pains
2009... Crazy Growth
2010+: Shit, build a company!
Employee Growth...
Now: Growth Continues...

1400+ Employees Worldwide
50% Employees are Engineers
200M+ Active Users
400M+ Tweets per Day
33+ Languages Supported
60% Active Users are on Mobile
100+ Open Source Projects
Engineers run the asylum...
Code dumping happens...
Code dumping happens...
No Ownership = Problems
         Start with ownership.
 Created an Open Source Office in 2011
Open Source
Craft and Culture
   How we roll...
Open Source Craft
   (operating principles)


        Use Open
      Assume Open
   Define Secret Sauce
   Measure Everything
    Default to GitHub
   Default to Permissive
    Acquire and Open
      Pay it Forward
Use Open
Use and benchmark open source software by
  default. When starting a new initiative, always
   evaluate open source options before going to
 reinvent the wheel. (e.g., if redis doesn’t work for
        you, you better have solid evidence)
Twitter Runs on Open Source
Define Secret Sauce
 Don’t open source anything that represents a core
  business value. Define your secret sauce so
there’s a shared understanding that can guide
  decisions. Embed this secret sauce within your
         culture and company via training.
Secret Sauce, what is it?




     What’s yours?
If you know your secret sauce...
Assume Open
  Assume that what you are developing will be
opened in the future. Pretend the whole world
  will be watching. Use reasonable third party
dependencies to prevent pain down the road. (we
 mostly use Apache’s Third Party Guidelines as a
                 starting point)
Default to GitHub
 The GitHub community is the largest open source
community, with over three million users. You would
  be stupid to ignore that fact. Embrace social
      coding tools to lower the barrier to
        contribution and participation.
Foundations are Good*
   We just prefer not to default to them. We view
 them as a place for stable projects that grow
into maturity, not to incubate new projects. Our
goal is to gain traction first as fast as possible. If not,
                  fail fast and carry on.
Default to Permissive
Be Permissive
For outbound open source software, we default to
OSI permissive licenses (the ALv2 in the majority of
cases). We do this so we can maximize adoption
 and participation, which we favor instead of
                     control.
Embrace the Trend




  See http://blogs.the451group.com/opensource/2011/12/19/the-future-of-commercial-open-source-business-strategies/
Notes from Antirez (1)
 “First of all, open source for me is not a way to contribute to
  the free software movement, but to contribute to humanity.
  This means a lot of things, for instance I don't care about
what people do with my code, nor if they'll release back
   their modifications. I simply want people to use my
                  code in one way or the other.

 Especially I want people to have fun, learn new stuff, and
make money with my code. For me other people making
money out of something I wrote is not something that I
           lost, it is something that I gained.”

    See http://antirez.com/news/48
Notes from Antirez (2)
1) I'm having a bigger effect in the world if somebody
can pay the bills using my code.
2) If there are N subjects making money with my code,
maybe they will be happy to share some of this money
with me, or will be more willing to hire me.
3) I can be myself one of the subjects making money
with my code, and with other open source software
code.

For all this reasons my license of choice is the BSD
licensed, that is the perfect incarnation of do whatever you
want as a license.”
    See http://antirez.com/news/48
Acquire and Open*
   Include open sourcing software in M&A
discussions, especially if you’re mainly acquiring
talent or shelving the product. There’s no need for
              software to go to waste.
Acquire and Open: RedPhone




   See https://github.com/WhisperSystems/RedPhone
Acquire and Open: Clutch.IO




   See http://engineering.twitter.com/2012/10/open-sourcing-clutchio.html
   See http://www.prweb.com/releases/2012/10/prweb10067693.htm
Measure Everything
 If you can’t measure what you’re doing, you have
no idea what you’re doing. We measure everything
inside of Twitter (affectionately called birdbrain)
         and make it accessible to everyone.
Pay it Forward
   Support open source organizations and
  projects important to your business, it’s the
right and smart thing to do. This can be financially
or simply staffing projects that are strategic to you.
Open Source Craft*

                                  Use Open
                                Assume Open
                             Define Secret Sauce
                             Measure Everything
                              Default to GitHub
                             Default to Permissive
                              Acquire and Open
                                Pay it Forward

Note: This fits in a tweet
Scaling
Scaling an open source program
Light / Automated Process
  Automated Process via JIRA Workflow
   Inspiration from Eclipse.org’s IPZilla
Not all process is bad!
    “process is an embedded reaction to priority stupidity”
                            True.
              Remember the history of surgery?
              Ignaz Semmelweiz (hand washing)
    Surgery checklist: Glad your surgeon washes hands?
Even with surgery process, metal objects still are left in people :)




      See http://many.corante.com/archives/2003/09/17/process_is_an_embedded_reaction_to_prior_stupidity.php
      See http://en.wikipedia.org/wiki/Ignaz_Semmelweis
Automate Quality Checklist
  Tooling to check for baseline “quality” before we open

                      √ README
                      √ LICENSE
                 √ CONTRIBUTING.MD
                      √ .travis.yml
              √ Avoid KEYS / sensitive bits
              √ Avoid GPL License Family

       Attempts to build and posts results in JIRA.
          Enforces and teaches good practices.
Automate Sourcing for Hiring
                  Let’s scale hiring a bit!

 Run monthly queries on contributors to our open source
           projects and projects of interest.

          Hand it off the Recruiting and the ATS.

It’s hard enough to find good talent, why not hire from open
                source projects of interest.
Automate Reporting / Metrics
         Send out weekly reports based on:

       Open Sourced Projects (what opened)
      Top Committers (commits+issues closed)
           Releases (assumed via git-tag)
   Contentious Issues (issues with most comments)
          Top Watched Project (most stars)
           Top Forked Project (most forks)

                   Track trends.
               Motivates contribution.
Conclusion
    Define Your Principles
Open Source Almost Everything
Measure / Automate Everything
Thanks for listening!
 (especially if you survived last night’s beer fest)

             @cra
         zx@twitter.com

Contenu connexe

Tendances

Contributing to Open Source #Hacktoberfest
Contributing to Open Source #HacktoberfestContributing to Open Source #Hacktoberfest
Contributing to Open Source #HacktoberfestCheah Eng Soon
 
Git and the inQbation Experience
Git and the inQbation ExperienceGit and the inQbation Experience
Git and the inQbation ExperienceBlake Newman
 
In graph we trust: Microservices, GraphQL and security challenges
In graph we trust: Microservices, GraphQL and security challengesIn graph we trust: Microservices, GraphQL and security challenges
In graph we trust: Microservices, GraphQL and security challengesMohammed A. Imran
 
Rockstar Android Testing (Mobile TechCon Munich 2014)
Rockstar Android Testing (Mobile TechCon Munich 2014)Rockstar Android Testing (Mobile TechCon Munich 2014)
Rockstar Android Testing (Mobile TechCon Munich 2014)Danny Preussler
 
WordPress Under Control
WordPress Under ControlWordPress Under Control
WordPress Under ControlMatt Bernhardt
 
Let's Git Together! - Hacktoberfest 2020
Let's Git Together! - Hacktoberfest 2020Let's Git Together! - Hacktoberfest 2020
Let's Git Together! - Hacktoberfest 2020EqraKhattak
 
How to Contribute to Pinax
How to Contribute to PinaxHow to Contribute to Pinax
How to Contribute to Pinaxjtauber
 
How to contribute to open source
How to contribute to open sourceHow to contribute to open source
How to contribute to open sourceAlbert Wong
 
Mastering Android Development Tools
Mastering Android Development ToolsMastering Android Development Tools
Mastering Android Development ToolsTechWell
 
APIs in production - we built it, can we fix it?
APIs in production - we built it, can we fix it?APIs in production - we built it, can we fix it?
APIs in production - we built it, can we fix it?Martin Gutenbrunner
 
Github security bug bounty hunting
Github security   bug bounty huntingGithub security   bug bounty hunting
Github security bug bounty huntingvinoth kumar
 
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Matt Raible
 
LA Python #1: Intro, Events, Advocacy
LA Python #1: Intro, Events, AdvocacyLA Python #1: Intro, Events, Advocacy
LA Python #1: Intro, Events, AdvocacyAudrey Roy
 
How to contribute back to Open Source
How to contribute back to Open SourceHow to contribute back to Open Source
How to contribute back to Open SourceWojciech Koszek
 
SFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN project
SFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN projectSFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN project
SFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN projectSouth Tyrol Free Software Conference
 
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery AnalyticsDevoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery AnalyticsLuca Milanesio
 
Guide to open source
Guide to open source Guide to open source
Guide to open source Javier Perez
 
Hactoberfest presentation
Hactoberfest presentationHactoberfest presentation
Hactoberfest presentationAITIKDANDAPAT
 

Tendances (20)

Contributing to Open Source #Hacktoberfest
Contributing to Open Source #HacktoberfestContributing to Open Source #Hacktoberfest
Contributing to Open Source #Hacktoberfest
 
Git and the inQbation Experience
Git and the inQbation ExperienceGit and the inQbation Experience
Git and the inQbation Experience
 
In graph we trust: Microservices, GraphQL and security challenges
In graph we trust: Microservices, GraphQL and security challengesIn graph we trust: Microservices, GraphQL and security challenges
In graph we trust: Microservices, GraphQL and security challenges
 
Rockstar Android Testing (Mobile TechCon Munich 2014)
Rockstar Android Testing (Mobile TechCon Munich 2014)Rockstar Android Testing (Mobile TechCon Munich 2014)
Rockstar Android Testing (Mobile TechCon Munich 2014)
 
WordPress Under Control
WordPress Under ControlWordPress Under Control
WordPress Under Control
 
Let's Git Together! - Hacktoberfest 2020
Let's Git Together! - Hacktoberfest 2020Let's Git Together! - Hacktoberfest 2020
Let's Git Together! - Hacktoberfest 2020
 
How to Contribute to Pinax
How to Contribute to PinaxHow to Contribute to Pinax
How to Contribute to Pinax
 
How to contribute to open source
How to contribute to open sourceHow to contribute to open source
How to contribute to open source
 
Open Source and the Girl Geek (English)
Open Source and the Girl Geek (English)Open Source and the Girl Geek (English)
Open Source and the Girl Geek (English)
 
Mastering Android Development Tools
Mastering Android Development ToolsMastering Android Development Tools
Mastering Android Development Tools
 
APIs in production - we built it, can we fix it?
APIs in production - we built it, can we fix it?APIs in production - we built it, can we fix it?
APIs in production - we built it, can we fix it?
 
Github security bug bounty hunting
Github security   bug bounty huntingGithub security   bug bounty hunting
Github security bug bounty hunting
 
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
 
LA Python #1: Intro, Events, Advocacy
LA Python #1: Intro, Events, AdvocacyLA Python #1: Intro, Events, Advocacy
LA Python #1: Intro, Events, Advocacy
 
Hacktoberfest slides
Hacktoberfest slidesHacktoberfest slides
Hacktoberfest slides
 
How to contribute back to Open Source
How to contribute back to Open SourceHow to contribute back to Open Source
How to contribute back to Open Source
 
SFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN project
SFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN projectSFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN project
SFScon19 - Paolo Boldi - Software Ecosystems as Networks the FASTEN project
 
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery AnalyticsDevoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
 
Guide to open source
Guide to open source Guide to open source
Guide to open source
 
Hactoberfest presentation
Hactoberfest presentationHactoberfest presentation
Hactoberfest presentation
 

En vedette

Festival of light powerpoint presentation for grow your horizons group 14 oct...
Festival of light powerpoint presentation for grow your horizons group 14 oct...Festival of light powerpoint presentation for grow your horizons group 14 oct...
Festival of light powerpoint presentation for grow your horizons group 14 oct...Stewart Walker
 
canadian festivals
canadian festivalscanadian festivals
canadian festivalsanurajsingh
 
Colorism powerpoint [autosaved]
Colorism powerpoint [autosaved]Colorism powerpoint [autosaved]
Colorism powerpoint [autosaved]lnikkit02
 
Ethnic Marketing in Canada
Ethnic Marketing in CanadaEthnic Marketing in Canada
Ethnic Marketing in CanadaRobin Brown
 

En vedette (6)

Toronto visitor-guide-2015
Toronto visitor-guide-2015Toronto visitor-guide-2015
Toronto visitor-guide-2015
 
Festival of light powerpoint presentation for grow your horizons group 14 oct...
Festival of light powerpoint presentation for grow your horizons group 14 oct...Festival of light powerpoint presentation for grow your horizons group 14 oct...
Festival of light powerpoint presentation for grow your horizons group 14 oct...
 
Networking event Nov. 25 2015 - Presentation
Networking event Nov. 25  2015 - PresentationNetworking event Nov. 25  2015 - Presentation
Networking event Nov. 25 2015 - Presentation
 
canadian festivals
canadian festivalscanadian festivals
canadian festivals
 
Colorism powerpoint [autosaved]
Colorism powerpoint [autosaved]Colorism powerpoint [autosaved]
Colorism powerpoint [autosaved]
 
Ethnic Marketing in Canada
Ethnic Marketing in CanadaEthnic Marketing in Canada
Ethnic Marketing in Canada
 

Similaire à Open Source Craft at Twitter

Open Source Product Management
Open Source Product ManagementOpen Source Product Management
Open Source Product ManagementDanny Rosen
 
Open source and then some: An Introduction
Open source and then some: An IntroductionOpen source and then some: An Introduction
Open source and then some: An IntroductionAkash Tandon
 
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 EntrepreneurshipSouth Tyrol Free Software Conference
 
Michael Widenius
Michael WideniusMichael Widenius
Michael WideniusCodeFest
 
Open source software for startups
Open source software for startupsOpen source software for startups
Open source software for startupsvictorneo
 
AWS re:Invent 2016: Open-Source Resources (DCS201)
AWS re:Invent 2016: Open-Source Resources (DCS201)AWS re:Invent 2016: Open-Source Resources (DCS201)
AWS re:Invent 2016: Open-Source Resources (DCS201)Amazon Web Services
 
Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020OW2
 
Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020OW2
 
Beyond the Hack
Beyond the HackBeyond the Hack
Beyond the Hackplaurie
 
'Open source contribution policies that don’t suck!'
'Open source contribution policies that don’t suck!''Open source contribution policies that don’t suck!'
'Open source contribution policies that don’t suck!'Shane Coughlan
 
Ethical Consideration of Open Source Software
Ethical Consideration of Open Source SoftwareEthical Consideration of Open Source Software
Ethical Consideration of Open Source SoftwareLarry Jennings
 
InnerSource - Using open source best practices to help your company
InnerSource - Using open source best practices to help your companyInnerSource - Using open source best practices to help your company
InnerSource - Using open source best practices to help your companyEric Caron
 
Repertoire of contributions hacktoberfest
Repertoire of contributions hacktoberfestRepertoire of contributions hacktoberfest
Repertoire of contributions hacktoberfestDSCVSSUT
 
Open Source Contribution Policies That Don't Suck
Open Source Contribution Policies That Don't SuckOpen Source Contribution Policies That Don't Suck
Open Source Contribution Policies That Don't SuckTobie Langel
 
OSMC 2021 | Contributing to open source with the example of icinga (1)
OSMC 2021 | Contributing to open source with the example of icinga (1)OSMC 2021 | Contributing to open source with the example of icinga (1)
OSMC 2021 | Contributing to open source with the example of icinga (1)NETWAYS
 
IDCEE 2013: How to do a successful company around open source - Michael Widen...
IDCEE 2013: How to do a successful company around open source - Michael Widen...IDCEE 2013: How to do a successful company around open source - Michael Widen...
IDCEE 2013: How to do a successful company around open source - Michael Widen...IDCEE
 

Similaire à Open Source Craft at Twitter (20)

Succeeding with FOSS!
Succeeding with FOSS!Succeeding with FOSS!
Succeeding with FOSS!
 
Open Source Product Management
Open Source Product ManagementOpen Source Product Management
Open Source Product Management
 
Introduction To Open Source
Introduction To Open SourceIntroduction To Open Source
Introduction To Open Source
 
Open source and then some: An Introduction
Open source and then some: An IntroductionOpen source and then some: An Introduction
Open source and then some: An Introduction
 
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
 
Let's talk FOSS!
Let's talk FOSS!Let's talk FOSS!
Let's talk FOSS!
 
Michael Widenius
Michael WideniusMichael Widenius
Michael Widenius
 
Open source software for startups
Open source software for startupsOpen source software for startups
Open source software for startups
 
AWS re:Invent 2016: Open-Source Resources (DCS201)
AWS re:Invent 2016: Open-Source Resources (DCS201)AWS re:Invent 2016: Open-Source Resources (DCS201)
AWS re:Invent 2016: Open-Source Resources (DCS201)
 
Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020
 
Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020
 
Beyond the Hack
Beyond the HackBeyond the Hack
Beyond the Hack
 
'Open source contribution policies that don’t suck!'
'Open source contribution policies that don’t suck!''Open source contribution policies that don’t suck!'
'Open source contribution policies that don’t suck!'
 
Ethical Consideration of Open Source Software
Ethical Consideration of Open Source SoftwareEthical Consideration of Open Source Software
Ethical Consideration of Open Source Software
 
InnerSource - Using open source best practices to help your company
InnerSource - Using open source best practices to help your companyInnerSource - Using open source best practices to help your company
InnerSource - Using open source best practices to help your company
 
Repertoire of contributions hacktoberfest
Repertoire of contributions hacktoberfestRepertoire of contributions hacktoberfest
Repertoire of contributions hacktoberfest
 
Open Source Contribution Policies That Don't Suck
Open Source Contribution Policies That Don't SuckOpen Source Contribution Policies That Don't Suck
Open Source Contribution Policies That Don't Suck
 
OSMC 2021 | Contributing to open source with the example of icinga (1)
OSMC 2021 | Contributing to open source with the example of icinga (1)OSMC 2021 | Contributing to open source with the example of icinga (1)
OSMC 2021 | Contributing to open source with the example of icinga (1)
 
Open source
Open sourceOpen source
Open source
 
IDCEE 2013: How to do a successful company around open source - Michael Widen...
IDCEE 2013: How to do a successful company around open source - Michael Widen...IDCEE 2013: How to do a successful company around open source - Michael Widen...
IDCEE 2013: How to do a successful company around open source - Michael Widen...
 

Plus de Chris Aniszczyk

Bringing an open source project to the Linux Foundation
Bringing an open source project to the Linux FoundationBringing an open source project to the Linux Foundation
Bringing an open source project to the Linux FoundationChris Aniszczyk
 
Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)Chris Aniszczyk
 
Open Container Initiative Update
Open Container Initiative UpdateOpen Container Initiative Update
Open Container Initiative UpdateChris Aniszczyk
 
Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Chris Aniszczyk
 
Rise of Open Source Programs
Rise of Open Source ProgramsRise of Open Source Programs
Rise of Open Source ProgramsChris Aniszczyk
 
Getting Students Involved in Open Source
Getting Students Involved in Open SourceGetting Students Involved in Open Source
Getting Students Involved in Open SourceChris Aniszczyk
 
Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)Chris Aniszczyk
 
Evolution of The Twitter Stack
Evolution of The Twitter StackEvolution of The Twitter Stack
Evolution of The Twitter StackChris Aniszczyk
 
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and HudsonEffective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and HudsonChris Aniszczyk
 
Effective Git with Eclipse
Effective Git with EclipseEffective Git with Eclipse
Effective Git with EclipseChris Aniszczyk
 
Evolution of Version Control In Open Source
Evolution of Version Control In Open SourceEvolution of Version Control In Open Source
Evolution of Version Control In Open SourceChris Aniszczyk
 
ESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseChris Aniszczyk
 
Helios in Action: Git at Eclipse
Helios in Action: Git at EclipseHelios in Action: Git at Eclipse
Helios in Action: Git at EclipseChris Aniszczyk
 
Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)Chris Aniszczyk
 
EclipseRT, Equinox and OSGi
EclipseRT, Equinox and OSGiEclipseRT, Equinox and OSGi
EclipseRT, Equinox and OSGiChris Aniszczyk
 
Open Source From The Trenches: How to Get Involved with Open Source and be Su...
Open Source From The Trenches: How to Get Involved with Open Source and be Su...Open Source From The Trenches: How to Get Involved with Open Source and be Su...
Open Source From The Trenches: How to Get Involved with Open Source and be Su...Chris Aniszczyk
 
Understanding and Using Git at Eclipse
Understanding and Using Git at EclipseUnderstanding and Using Git at Eclipse
Understanding and Using Git at EclipseChris Aniszczyk
 
OSGi Best and Worst Practices
OSGi Best and Worst PracticesOSGi Best and Worst Practices
OSGi Best and Worst PracticesChris Aniszczyk
 
Crowdsourcing and Singlesourcing Documentation
Crowdsourcing and Singlesourcing DocumentationCrowdsourcing and Singlesourcing Documentation
Crowdsourcing and Singlesourcing DocumentationChris Aniszczyk
 

Plus de Chris Aniszczyk (20)

Bringing an open source project to the Linux Foundation
Bringing an open source project to the Linux FoundationBringing an open source project to the Linux Foundation
Bringing an open source project to the Linux Foundation
 
Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)
 
Open Container Initiative Update
Open Container Initiative UpdateOpen Container Initiative Update
Open Container Initiative Update
 
Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)
 
Rise of Open Source Programs
Rise of Open Source ProgramsRise of Open Source Programs
Rise of Open Source Programs
 
Getting Students Involved in Open Source
Getting Students Involved in Open SourceGetting Students Involved in Open Source
Getting Students Involved in Open Source
 
Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)
 
Evolution of The Twitter Stack
Evolution of The Twitter StackEvolution of The Twitter Stack
Evolution of The Twitter Stack
 
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and HudsonEffective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
 
Effective Git with Eclipse
Effective Git with EclipseEffective Git with Eclipse
Effective Git with Eclipse
 
Evolution of Version Control In Open Source
Evolution of Version Control In Open SourceEvolution of Version Control In Open Source
Evolution of Version Control In Open Source
 
ESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseESE 2010: Using Git in Eclipse
ESE 2010: Using Git in Eclipse
 
SWTBot Tutorial
SWTBot TutorialSWTBot Tutorial
SWTBot Tutorial
 
Helios in Action: Git at Eclipse
Helios in Action: Git at EclipseHelios in Action: Git at Eclipse
Helios in Action: Git at Eclipse
 
Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)
 
EclipseRT, Equinox and OSGi
EclipseRT, Equinox and OSGiEclipseRT, Equinox and OSGi
EclipseRT, Equinox and OSGi
 
Open Source From The Trenches: How to Get Involved with Open Source and be Su...
Open Source From The Trenches: How to Get Involved with Open Source and be Su...Open Source From The Trenches: How to Get Involved with Open Source and be Su...
Open Source From The Trenches: How to Get Involved with Open Source and be Su...
 
Understanding and Using Git at Eclipse
Understanding and Using Git at EclipseUnderstanding and Using Git at Eclipse
Understanding and Using Git at Eclipse
 
OSGi Best and Worst Practices
OSGi Best and Worst PracticesOSGi Best and Worst Practices
OSGi Best and Worst Practices
 
Crowdsourcing and Singlesourcing Documentation
Crowdsourcing and Singlesourcing DocumentationCrowdsourcing and Singlesourcing Documentation
Crowdsourcing and Singlesourcing Documentation
 

Dernier

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 

Dernier (20)

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 

Open Source Craft at Twitter

  • 1. Open Source Craft at Twitter Chris Aniszczyk (@cra) http://aniszczyk.org #monkigras
  • 3. 2006: A simple idea...
  • 6. 2010+: Shit, build a company!
  • 8. Now: Growth Continues... 1400+ Employees Worldwide 50% Employees are Engineers 200M+ Active Users 400M+ Tweets per Day 33+ Languages Supported 60% Active Users are on Mobile 100+ Open Source Projects
  • 9. Engineers run the asylum...
  • 12. No Ownership = Problems Start with ownership. Created an Open Source Office in 2011
  • 13. Open Source Craft and Culture How we roll...
  • 14. Open Source Craft (operating principles) Use Open Assume Open Define Secret Sauce Measure Everything Default to GitHub Default to Permissive Acquire and Open Pay it Forward
  • 15. Use Open Use and benchmark open source software by default. When starting a new initiative, always evaluate open source options before going to reinvent the wheel. (e.g., if redis doesn’t work for you, you better have solid evidence)
  • 16. Twitter Runs on Open Source
  • 17. Define Secret Sauce Don’t open source anything that represents a core business value. Define your secret sauce so there’s a shared understanding that can guide decisions. Embed this secret sauce within your culture and company via training.
  • 18. Secret Sauce, what is it? What’s yours?
  • 19. If you know your secret sauce...
  • 20.
  • 21. Assume Open Assume that what you are developing will be opened in the future. Pretend the whole world will be watching. Use reasonable third party dependencies to prevent pain down the road. (we mostly use Apache’s Third Party Guidelines as a starting point)
  • 22. Default to GitHub The GitHub community is the largest open source community, with over three million users. You would be stupid to ignore that fact. Embrace social coding tools to lower the barrier to contribution and participation.
  • 23. Foundations are Good* We just prefer not to default to them. We view them as a place for stable projects that grow into maturity, not to incubate new projects. Our goal is to gain traction first as fast as possible. If not, fail fast and carry on.
  • 25. Be Permissive For outbound open source software, we default to OSI permissive licenses (the ALv2 in the majority of cases). We do this so we can maximize adoption and participation, which we favor instead of control.
  • 26. Embrace the Trend See http://blogs.the451group.com/opensource/2011/12/19/the-future-of-commercial-open-source-business-strategies/
  • 27. Notes from Antirez (1) “First of all, open source for me is not a way to contribute to the free software movement, but to contribute to humanity. This means a lot of things, for instance I don't care about what people do with my code, nor if they'll release back their modifications. I simply want people to use my code in one way or the other. Especially I want people to have fun, learn new stuff, and make money with my code. For me other people making money out of something I wrote is not something that I lost, it is something that I gained.” See http://antirez.com/news/48
  • 28. Notes from Antirez (2) 1) I'm having a bigger effect in the world if somebody can pay the bills using my code. 2) If there are N subjects making money with my code, maybe they will be happy to share some of this money with me, or will be more willing to hire me. 3) I can be myself one of the subjects making money with my code, and with other open source software code. For all this reasons my license of choice is the BSD licensed, that is the perfect incarnation of do whatever you want as a license.” See http://antirez.com/news/48
  • 29. Acquire and Open* Include open sourcing software in M&A discussions, especially if you’re mainly acquiring talent or shelving the product. There’s no need for software to go to waste.
  • 30. Acquire and Open: RedPhone See https://github.com/WhisperSystems/RedPhone
  • 31. Acquire and Open: Clutch.IO See http://engineering.twitter.com/2012/10/open-sourcing-clutchio.html See http://www.prweb.com/releases/2012/10/prweb10067693.htm
  • 32. Measure Everything If you can’t measure what you’re doing, you have no idea what you’re doing. We measure everything inside of Twitter (affectionately called birdbrain) and make it accessible to everyone.
  • 33. Pay it Forward Support open source organizations and projects important to your business, it’s the right and smart thing to do. This can be financially or simply staffing projects that are strategic to you.
  • 34. Open Source Craft* Use Open Assume Open Define Secret Sauce Measure Everything Default to GitHub Default to Permissive Acquire and Open Pay it Forward Note: This fits in a tweet
  • 35. Scaling Scaling an open source program
  • 36. Light / Automated Process Automated Process via JIRA Workflow Inspiration from Eclipse.org’s IPZilla
  • 37. Not all process is bad! “process is an embedded reaction to priority stupidity” True. Remember the history of surgery? Ignaz Semmelweiz (hand washing) Surgery checklist: Glad your surgeon washes hands? Even with surgery process, metal objects still are left in people :) See http://many.corante.com/archives/2003/09/17/process_is_an_embedded_reaction_to_prior_stupidity.php See http://en.wikipedia.org/wiki/Ignaz_Semmelweis
  • 38. Automate Quality Checklist Tooling to check for baseline “quality” before we open √ README √ LICENSE √ CONTRIBUTING.MD √ .travis.yml √ Avoid KEYS / sensitive bits √ Avoid GPL License Family Attempts to build and posts results in JIRA. Enforces and teaches good practices.
  • 39. Automate Sourcing for Hiring Let’s scale hiring a bit! Run monthly queries on contributors to our open source projects and projects of interest. Hand it off the Recruiting and the ATS. It’s hard enough to find good talent, why not hire from open source projects of interest.
  • 40. Automate Reporting / Metrics Send out weekly reports based on: Open Sourced Projects (what opened) Top Committers (commits+issues closed) Releases (assumed via git-tag) Contentious Issues (issues with most comments) Top Watched Project (most stars) Top Forked Project (most forks) Track trends. Motivates contribution.
  • 41. Conclusion Define Your Principles Open Source Almost Everything Measure / Automate Everything
  • 42. Thanks for listening! (especially if you survived last night’s beer fest) @cra zx@twitter.com