Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Healthy Code Collaboration
Search
Matthias Le Brun
March 30, 2022
Technology
0
160
Healthy Code Collaboration
Matthias Le Brun
March 30, 2022
Tweet
Share
More Decks by Matthias Le Brun
See All by Matthias Le Brun
leveraging (algebraic data) types to make your UI rock @ jsheroes
bloodyowl
0
220
Leveraging (algebraic data) types to make your UI rock solid
bloodyowl
0
310
La drôle d'histoire de JavaScript
bloodyowl
0
240
Simplify your UI management with (algebraic data) types
bloodyowl
0
690
Simplify your UI management with (algebraic data) types
bloodyowl
1
430
Migrating a large Reason+React codebase to hooks
bloodyowl
0
440
Third Party Hell (BestOfWeb)
bloodyowl
0
390
Best practices
bloodyowl
0
320
A good Reason for typing
bloodyowl
1
570
Other Decks in Technology
See All in Technology
Além do else! Categorizando Pokemóns com Pattern Matching no JavaScript
wmsbill
0
620
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
0
250
JSON攻略法.pdf
miyakemito
8
5k
アクセシビリティを考慮したUI/CSSフレームワーク・ライブラリ選定
yajihum
2
1k
Google Cloud の AI を支える裏側のインフラを垣間見る!
maroon1st
0
350
長期間TiDBを使ってきた話 @ 私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT / Experiences with TiDB Over Time
chibiegg
2
900
GraphQL 成熟度モデルの紹介と、プロダクトに当てはめた事例 / GraphQL maturity model
mh4gf
7
1.3k
Hands-on Gemini, the Google DeepMind LLM
meteatamel
1
110
現代CSSフレームワークの内部実装とその仕組み
poteboy
7
3.6k
Postman v10リリース後を振り返る / Looking back at Postman v10 after release
yokawasa
1
160
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
0
140
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
120
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
14
1.6k
The Art of Programming - Codeland 2020
erikaheidi
42
12k
BBQ
matthewcrist
80
8.8k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
121
39k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
How to train your dragon (web standard)
notwaldorf
73
5.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
274
13k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
125
32k
A better future with KSS
kneath
231
16k
Rails Girls Zürich Keynote
gr2m
91
13k
Transcript
Healthy code collaboration
Matthias Le Brun @bloodyowl → Co-lead front end developer at
swan.io → Paris.JS organizer → Putain de Code co-founder & host We're hiring!
Collective intelligence
Collaboration
Anxiety Context switching Collaboration is hard
Fatigue Anxiety Context switching Misunderstanding Anger Collaboration is hard
How do we make it healthy?
Make communication asynchronous → reduces stress
Use Pull Request tooling
Use Pull Request tooling Draft Open Don't bother reviewers if
not ready Notify when done
Use Pull Request tooling ! " Request All good Be
asynchronous When everything is good, let's go
Use Pull Request tooling Provide context
Context Why? How? What?
Use Pull Request tooling Provide details when complex
Provide context By commenting yourself on code that might raise
questions
Use Pull Request tooling Regularly check where you might
be asked something
Avoid bikeshedding → reduces fatigue
«Spazi o tabulazioni» Oil painting (est. 2012) Leonardo Da Vinci
Avoid bikeshedding Code aesthetics is not the point
Avoid nitpicking
nit: typo here If you want to: Don't 👏 block
👏 approval 👏 on 👏 nit
Scope your review Notice something about unrelated existing code ?
Create a new issue or a PR
Make everyone belong → reduces conflict
Use "we" pronouns Antagonizing doesn't lead anywhere
Use passive tone and speak for yourself
Use questions instead of directive sentences
"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"
Use emojis to convey a mood
Use emojis (but please ban 🙃 & 😉)
Don't use angry, agressive vocabulary and punctuation ?!!!
Use jokes only if not detrimental (when in doubt, don't)
Look for agreement «____, what do you think?» → better
collective understanding → invites the reviewee to provide their idea
Show appreciation «Wow, nice job! 😍»
Be constructive, don't be stubborn
Credit «Thanks to @a, @b & @c for their work!»
Be empathetic
github.com/bloodyowl/review-guidelines REVIEW_GUIDELINES.md It that sounds good to you: don't hesitate
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