Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Healthy Code Collaboration
Search
Matthias Le Brun
March 30, 2022
Technology
390
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Healthy Code Collaboration
Matthias Le Brun
March 30, 2022
More Decks by Matthias Le Brun
See All by Matthias Le Brun
GraphQL, Pothos & SQLite: a perfect match
bloodyowl
0
140
(why the hell did I) build a GraphQL client for the browser
bloodyowl
0
170
Boxed: bringing algebraic types to TypeScript
bloodyowl
0
220
leveraging (algebraic data) types to make your UI rock @ jsheroes
bloodyowl
0
360
Leveraging (algebraic data) types to make your UI rock solid
bloodyowl
0
540
La drôle d'histoire de JavaScript
bloodyowl
0
430
Simplify your UI management with (algebraic data) types
bloodyowl
0
880
Simplify your UI management with (algebraic data) types
bloodyowl
1
600
Migrating a large Reason+React codebase to hooks
bloodyowl
0
650
Other Decks in Technology
See All in Technology
Draft AIエージェントの トークン消費を最小化する 8つの原則
kinopeee
6
1.9k
自律的なチームを作るためにTechPMがやらないこと
ny7760
0
140
2026-10-24 JAWS JAWS-UG 茨城 #18 IAM Policy Autopilotってなにさ。terraform planからIAM Policyつくれるの? / What's IAM Policy Autopilot
masasuzu
0
180
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
4
2.2k
Patterns in AI Driven Software Development
akosma
PRO
0
360
Agent 活用環境の構築・運用のための AWS サービスのご紹介/agentcore-for-building-and-operating-agents
ren8k
1
270
Content Mapper APIの応用例~CSS Modules、言語ファイル~
uhyo
2
240
AI駆動開発における開発環境のセキュリティの考え方
yamahiro
2
680
ポケモン対戦を自動で記録して振り返ろう
fufufukakaka
0
420
AIエージェントに 権限と鍵をどこまで渡すか
nrinetcom
PRO
2
150
ガチで放置できるClaude Code実行環境の作り方.pdf
lamaglama39
5
10k
Maestro MCPとClaude Code Skillsによる自律的なE2Eテスト支援
asmz
0
370
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
310
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Practical Orchestrator
shlominoach
192
12k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
440
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
230
Exploring anti-patterns in Rails
aemeredith
4
550
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Into the Great Unknown - MozCon
thekraken
41
2.8k
The SEO identity crisis: Don't let AI make you average
varn
0
620
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