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 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 Slide

  3. Collective intelligence

    View Slide

  4. Collaboration

    View Slide

  5. Anxiety
    Context switching
    Collaboration is hard

    View Slide

  6. Fatigue
    Anxiety
    Context switching
    Misunderstanding
    Anger
    Collaboration is hard

    View Slide

  7. How do


    we make it healthy?

    View Slide

  8. Make communication
    asynchronous
    → reduces stress

    View Slide

  9. Use Pull Request tooling

    View Slide

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

    View Slide

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

    View Slide

  12. Use Pull Request tooling
    Provide context

    View Slide

  13. Context
    Why?


    How?


    What?

    View Slide

  14. Use Pull Request tooling
    Provide details when complex

    View Slide

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

    View Slide

  16. Use Pull Request tooling

    Regularly check


    where you might be asked something

    View Slide

  17. Avoid bikeshedding
    → reduces fatigue

    View Slide

  18. «Spazi o tabulazioni»


    Oil painting (est. 2012)


    Leonardo Da Vinci

    View Slide

  19. Avoid bikeshedding
    Code aesthetics is not the point

    View Slide

  20. Avoid nitpicking

    View Slide

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

    View Slide

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


    Create a new issue or a PR

    View Slide

  23. Make everyone belong
    → reduces conflict

    View Slide

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

    View Slide

  25. Use passive tone
    and speak for yourself

    View Slide

  26. Use questions
    instead of directive sentences

    View 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 Slide

  28. Use emojis
    to convey a mood

    View Slide

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

    View Slide

  30. Don't use angry,


    agressive vocabulary


    and punctuation ?!!!

    View Slide

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

    View Slide

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


    → invites the reviewee to provide their idea

    View Slide

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

    View Slide

  34. Be constructive,


    don't be stubborn

    View Slide

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


    for their work!»

    View Slide

  36. Be empathetic

    View Slide

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

    View 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 Slide