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

Dispelling the 'Genius Programmer' Myth

Dispelling the 'Genius Programmer' Myth

We often hear people lament how hard it is to get a patch accepted to large Python open source libraries. Through a series of (often amusing) real-life anecdotes from Twisted, RPython, Cryptography, and examples from many other Python libraries, come learn about code reviews, getting your patches accepted, and tools/processes to encourage quality contributions.

Ashwini Oruganti

July 18, 2016
Tweet

More Decks by Ashwini Oruganti

Other Decks in Programming

Transcript

  1. Dispelling The ‘Genius
    Programmer’ Myth 

    (Through Code Review)
    Ashwini Oruganti
    twitter.com/@_ashfall_
    DjangoCon US 2016

    View full-size slide

  2. ✦ Software Engineer, Eventbrite
    ✦ (ex) Director, Python Software Foundation
    ✦ PyCA/TLS
    ✦ Twisted, HippyVM

    View full-size slide

  3. Open Source
    Contributions!

    View full-size slide

  4. Fears of a new
    programmer

    View full-size slide

  5. Clever people
    don’t make
    mistakes, right?

    View full-size slide

  6. Leaders exist.
    Heroes don’t.

    View full-size slide

  7. Why won’t you
    “just merge it”?

    View full-size slide

  8. “I hope that’s not
    my project”
    -Every maintainer
    in the room

    View full-size slide

  9. Contributing
    Basics

    View full-size slide

  10. contributing.txt

    View full-size slide

  11. Respect the process

    View full-size slide

  12. Split reviews
    into smaller diffs.

    View full-size slide

  13. Work with your
    reviewer.

    View full-size slide

  14. Criticism is not
    evil.

    View full-size slide

  15. Iterate failures
    quickly.

    View full-size slide

  16. Document every
    effort.

    View full-size slide

  17. Hi Maintainers!

    View full-size slide

  18. Social problems
    cannot be solved with
    technical solutions.

    View full-size slide

  19. If you care deeply
    about a style,
    document it *visibly*.

    View full-size slide

  20. It’s OK to not like things,
    be nice about it.

    View full-size slide

  21. “Nope. Nope. Nope.
    Nope. Nope. Never.”

    View full-size slide

  22. 1. Mention the change.
    2. Provide a self-contained example.
    3. Describe the effects of the
    change.

    View full-size slide

  23. Respect the volunteer’s time.
    “Thanks! This looks really good. IPv6 has a
    number of subtleties, so I have quite a few review
    comments, but I want to emphasize that the code
    does look good and you’re definitely going in the
    right direction. :)”

    View full-size slide

  24. Contributor Maintainer

    View full-size slide

  25. There’s no such thing as
    “not qualified enough”.

    View full-size slide

  26. It’s alright to miss
    things.

    View full-size slide

  27. twitter.com/@_ashfall_
    Thank You!

    View full-size slide