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
340
Healthy Code Collaboration
Matthias Le Brun
March 30, 2022
Tweet
Share
More Decks by Matthias Le Brun
See All by Matthias Le Brun
GraphQL, Pothos & SQLite: a perfect match
bloodyowl
0
80
(why the hell did I) build a GraphQL client for the browser
bloodyowl
0
130
Boxed: bringing algebraic types to TypeScript
bloodyowl
0
160
leveraging (algebraic data) types to make your UI rock @ jsheroes
bloodyowl
0
310
Leveraging (algebraic data) types to make your UI rock solid
bloodyowl
0
460
La drôle d'histoire de JavaScript
bloodyowl
0
390
Simplify your UI management with (algebraic data) types
bloodyowl
0
840
Simplify your UI management with (algebraic data) types
bloodyowl
1
560
Migrating a large Reason+React codebase to hooks
bloodyowl
0
580
Other Decks in Technology
See All in Technology
バクラク最古参プロダクトで重ねた技術投資を振り返る
ypresto
0
200
OpenClaw を Amazon Lightsail で動かす理由
uechishingo
0
250
スピンアウト講座02_ファイル管理
overflowinc
0
450
生成AIで速度と品質を両立する、QAエンジニア・開発者連携のAI協調型テストプロセス
shota_kusaba
0
330
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
13k
新規事業×QAの挑戦:不確実性を乗りこなす!フェーズごとに求められるQAの役割変革
hacomono
PRO
0
150
Phase11_戦略的AI経営
overflowinc
0
540
Visional 28新卒プロダクト職(エンジニア/デザイナー)向け 会社説明資料 / Visional Company Briefing for Newgrads 28
visional_engineering_and_design
1
110
LINEヤフーにおけるAIOpsの現在地
lycorptech_jp
PRO
4
1.8k
Laravelで学ぶOAuthとOpenID Connectの基礎と実装
kyoshidaxx
4
1.6k
A Casual Introduction to RISC-V
omasanori
0
520
AI時代のオンプレ-クラウドキャリアチェンジ考
yuu0w0yuu
0
160
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
698
190k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
490
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
We Are The Robots
honzajavorek
0
200
Testing 201, or: Great Expectations
jmmastey
46
8.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Technical Leadership for Architectural Decision Making
baasie
3
300
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
86
sira's awesome portfolio website redesign presentation
elsirapls
0
200
Product Roadmaps are Hard
iamctodd
PRO
55
12k
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