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

Healthy Code Collaboration

Healthy Code Collaboration

Matthias Le Brun

March 30, 2022
Tweet

More Decks by Matthias Le Brun

Other Decks in Technology

Transcript

  1. Healthy


    code collaboration

    View full-size slide

  2. Matthias Le Brun


    @bloodyowl
    → Co-lead front end developer at swan.io


    → Paris.JS organizer


    → Putain de Code co-founder & host
    We're hiring!

    View full-size slide

  3. Collective intelligence

    View full-size slide

  4. Collaboration

    View full-size slide

  5. Anxiety
    Context switching
    Collaboration is hard

    View full-size slide

  6. Fatigue
    Anxiety
    Context switching
    Misunderstanding
    Anger
    Collaboration is hard

    View full-size slide

  7. How do


    we make it healthy?

    View full-size slide

  8. Make communication
    asynchronous
    → reduces stress

    View full-size slide

  9. Use Pull Request tooling

    View full-size slide

  10. Use Pull Request tooling
    Draft Open
    Don't bother reviewers if not ready Notify when done

    View full-size slide

  11. Use Pull Request tooling
    ! "
    Request All good
    Be asynchronous When everything is good, let's go

    View full-size slide

  12. Use Pull Request tooling
    Provide context

    View full-size slide

  13. Context
    Why?


    How?


    What?

    View full-size slide

  14. Use Pull Request tooling
    Provide details when complex

    View full-size slide

  15. Provide context
    By commenting yourself on code that
    might raise questions

    View full-size slide

  16. Use Pull Request tooling

    Regularly check


    where you might be asked something

    View full-size slide

  17. Avoid bikeshedding
    → reduces fatigue

    View full-size slide

  18. «Spazi o tabulazioni»


    Oil painting (est. 2012)


    Leonardo Da Vinci

    View full-size slide

  19. Avoid bikeshedding
    Code aesthetics is not the point

    View full-size slide

  20. Avoid nitpicking

    View full-size slide

  21. nit: typo here
    If you want to:
    Don't 👏 block 👏 approval 👏 on 👏 nit

    View full-size slide

  22. Scope your review
    Notice something about unrelated existing code ?


    Create a new issue or a PR

    View full-size slide

  23. Make everyone belong
    → reduces conflict

    View full-size slide

  24. Use "we" pronouns
    Antagonizing doesn't lead anywhere

    View full-size slide

  25. Use passive tone
    and speak for yourself

    View full-size slide

  26. Use questions
    instead of directive sentences

    View full-size slide

  27. "Change X please"


    → "Can we change X?"


    "You should change this call"


    → "I think we should change this call"


    "Rename X to Y for readability"


    → "How about renaming X to Y?


    I feel that might be clearer"


    "Why did you use X?"


    → "Why is X used here? I thought it wasn't necessary"

    View full-size slide

  28. Use emojis
    to convey a mood

    View full-size slide

  29. Use emojis
    (but please ban 🙃 & 😉)

    View full-size slide

  30. Don't use angry,


    agressive vocabulary


    and punctuation ?!!!

    View full-size slide

  31. Use jokes only if not
    detrimental
    (when in doubt, don't)

    View full-size slide

  32. Look for agreement
    «____, what do you think?»
    → better collective understanding


    → invites the reviewee to provide their idea

    View full-size slide

  33. Show appreciation
    «Wow, nice job! 😍»

    View full-size slide

  34. Be constructive,


    don't be stubborn

    View full-size slide

  35. Credit
    «Thanks to @a, @b & @c


    for their work!»

    View full-size slide

  36. Be empathetic

    View full-size slide

  37. github.com/bloodyowl/review-guidelines
    REVIEW_GUIDELINES.md
    It that sounds good to you: don't hesitate

    View full-size slide

  38. Thank you 🙏
    Inspirations


    https://mtlynch.io/human-code-reviews-1/


    https://mtlynch.io/human-code-reviews-2/
    Matthias Le Brun


    @bloodyowl
    → github.com/bloodyowl/review-guidelines

    View full-size slide