Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Open Source Craft at Twitter

Open Source Craft at Twitter

Open source craft and culture at Twitter.

Presented at Monkigras 2013

Chris Aniszczyk

February 01, 2013
Tweet

More Decks by Chris Aniszczyk

Other Decks in Technology

Transcript

  1. Open Source Craft at Twitter
    Chris Aniszczyk (@cra)
    http://aniszczyk.org
    #monkigras

    View Slide

  2. Twistory
    Twitter History

    View Slide

  3. 2006: A simple idea...

    View Slide

  4. 2008: Growing Pains

    View Slide

  5. 2009... Crazy Growth

    View Slide

  6. 2010+: Shit, build a company!

    View Slide

  7. Employee Growth...

    View Slide

  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

    View Slide

  9. Engineers run the asylum...

    View Slide

  10. Code dumping happens...

    View Slide

  11. Code dumping happens...

    View Slide

  12. No Ownership = Problems
    Start with ownership.
    Created an Open Source Office in 2011

    View Slide

  13. Open Source
    Craft and Culture
    How we roll...

    View Slide

  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

    View Slide

  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)

    View Slide

  16. Twitter Runs on Open Source

    View Slide

  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.

    View Slide

  18. Secret Sauce, what is it?
    What’s yours?

    View Slide

  19. If you know your secret sauce...

    View Slide

  20. View Slide

  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)

    View Slide

  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.

    View Slide

  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.

    View Slide

  24. Default to Permissive

    View Slide

  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.

    View Slide

  26. See http://blogs.the451group.com/opensource/2011/12/19/the-future-of-commercial-open-source-business-strategies/
    Embrace the Trend

    View Slide

  27. See http://antirez.com/news/48
    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.”

    View Slide

  28. 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.”

    View Slide

  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.

    View Slide

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

    View Slide

  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

    View Slide

  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.

    View Slide

  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.

    View Slide

  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

    View Slide

  35. Scaling
    Scaling an open source program

    View Slide

  36. Light / Automated Process
    Automated Process via JIRA Workflow
    Inspiration from Eclipse.org’s IPZilla

    View Slide

  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

    View Slide

  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.

    View Slide

  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.

    View Slide

  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.

    View Slide

  41. Conclusion
    Define Your Principles
    Open Source Almost Everything
    Measure / Automate Everything

    View Slide

  42. Thanks for listening!
    (especially if you survived last night’s beer fest)
    @cra
    [email protected]

    View Slide