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

Open Source: What Works, What Doesn't

Open Source: What Works, What Doesn't

My talk from the #AWSCommunity event about my experiences maintaining various open source projects.

Michael Barrett

June 15, 2017
Tweet

More Decks by Michael Barrett

Other Decks in Programming

Transcript

  1. Open Source
    What Works and What Doesn’t

    View Slide

  2. Who am I?
    Michael Barrett
    Engineering People Lead, Operations Infrastructure Engineering @ Remind
    https://github.com/phobologic
    @phobologic on Twitter

    View Slide

  3. What is this talk about?

    View Slide

  4. The Projects

    View Slide

  5. troposphere
    A python library that allows for
    easier creation of AWS
    CloudFormation templates.
    https://github.com/cloudtools/troposphere

    View Slide

  6. nymms
    An independently scalable
    monitoring system that follows
    Nagios plugin standards.
    https://github.com/cloudtools/nymms

    View Slide

  7. Empire
    A control layer on top of Amazon
    EC2 Container Service (ECS) that
    provides a Heroku like workflow.
    https://github.com/remind101/empire

    View Slide

  8. stacker
    An AWS CloudFormation Stack
    orchestrator/manager.
    https://github.com/remind101/stacker

    View Slide

  9. Starting Your Project

    View Slide

  10. Motivation
    Why open source this?
    What will make this project feel “successful” to you?

    View Slide

  11. Engagement
    Is this a problem area you feel engaged with? Is it something you’ll likely be
    engaged in for the foreseeable future?

    View Slide

  12. What issue does it solve?
    What is the goal?
    How common is the issue?
    This will also help you focus, and make hard design decisions.

    View Slide

  13. Focus
    How focused is the problem area? Tighter focus usually means it’s an easier
    project to maintain, whereas broad focus can require more work.

    View Slide

  14. Choosing a License
    I Am Not A Lawyer!
    https://choosealicense.com/ is your friend
    What do you want to do with your project/who do you want to use it?

    View Slide

  15. Starting Documentation
    README.md
    Developer/Contributing Documentation

    View Slide

  16. Code of Conduct
    “When a project seems hostile or unwelcoming, even if it's just one person
    whose behavior is tolerated by others, you risk losing many more contributors,
    some of whom you may never even meet. It's not always easy to adopt or
    enforce a code of conduct, but fostering a welcoming environment will help your
    community grow.” -- https://opensource.guide/code-of-conduct/

    View Slide

  17. Most Important: Picking a Name

    View Slide

  18. More Documentation!
    Usage Documentation
    Tutorials/Demos

    View Slide

  19. Promotion
    If eyes/users/contributors are important to you, it may take active promotion to
    make your project a success.
    Twitter/HackerNews/Reddit/Medium
    Join relevant slack teams
    Offline - go to meetups/conferences/give a talk!

    View Slide

  20. Support
    How much effort/time are you willing to put into supporting your users?
    Start a Slack team or Gitter Community (and make it easy to find!)
    Be kind, be helpful
    Encourage feedback

    View Slide

  21. Handling contributions
    Be polite, be gracious, be responsive
    Sometimes you have to say no
    Rule #1 of open-source: no is temporary, yes is forever. -- @solomonstre

    View Slide

  22. It can take time
    Time to first PR:
    ● Empire: ~1day
    ● Troposphere: 3 months
    ● Stacker: 9 months

    View Slide

  23. The Team
    Having a team makes all of this a lot easier. Special thanks to @markpeek,
    @bobveznat, and @vesirin who I interact with on most of the open source
    projects I work on these days.

    View Slide

  24. Getting paid for software you give away

    View Slide

  25. View Slide

  26. Getting paid to work on stuff you give away
    Figure out your (potential?) employers outlook on Open Source
    Show that you engage in Open Source outside your work
    Talk about the benefits of Open Source
    Be up front about the costs of Open Source

    View Slide

  27. Other ways to get involved
    Code
    Documentation
    Tutorials
    Design
    Answer questions

    View Slide

  28. github/twitter: phobologic
    Great links:
    https://opensource.guide/
    https://choosealicense.com/

    View Slide

  29. Happy Hour!!

    View Slide