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
どうして手を動かすよりもチーム内のコードレビューを優先するべきなのか
Search
Shohei Okada
December 22, 2024
Programming
2
40
どうして手を動かすよりもチーム内のコードレビューを優先するべきなのか
Shohei Okada
December 22, 2024
Tweet
Share
More Decks by Shohei Okada
See All by Shohei Okada
パスワードのハッシュ、ソルトってなに? - What is hash and salt for password?
okashoi
3
110
設計の考え方 - インターフェースと腐敗防止層編 #phpconfuk / Interface and Anti Corruption Layer
okashoi
10
2.9k
"config" ってなんだ? / What is "config"?
okashoi
0
700
ファイル先頭の use の意味、説明できますか? 〜PHP の namespace と autoloading の関係を正しく理解しよう〜 / namespace and autoloading in php
okashoi
3
1.1k
MySQL のインデックスの種類をおさらいしよう! / overviewing indexes in MySQL
okashoi
0
690
PHP における静的解析(あるいはそもそも静的解析とは) / #phpcondo_yasai static analysis for PHP
okashoi
1
470
【PHPカンファレンス沖縄 2023】素朴で考慮漏れのある PHP コードをテストコードとともに補強していく(ライブコーディング補足資料) / #phpcon_okinawa 2023 livecoding supplementary material
okashoi
3
1.8k
その説明、コードコメントに書く?コミットメッセージに書く? プルリクエストに書く? - #phpconfuk 2023
okashoi
15
5k
いろいろなフレームワークの仕組みを index.php から読み解こう / index.php of each framework
okashoi
2
2.7k
Other Decks in Programming
See All in Programming
CSC305 Lecture 26
javiergs
PRO
0
140
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
6
970
テスト自動化失敗から再挑戦しチームにオーナーシップを委譲した話/STAC2024 macho
ma_cho29
1
1.3k
PHPで学ぶプログラミングの教訓 / Lessons in Programming Learned through PHP
nrslib
2
260
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
190
return文におけるstd::moveについて
onihusube
1
1.1k
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
290
KubeCon + CloudNativeCon NA 2024 Overviewat Kubernetes Meetup Tokyo #68 / amsy810_k8sjp68
masayaaoyama
0
250
SymfonyCon Vienna 2025: Twig, still relevant in 2025?
fabpot
3
1.2k
たのしいparse.y
ydah
3
120
暇に任せてProxmoxコンソール 作ってみました
karugamo
2
720
Beyond ORM
77web
7
810
Featured
See All Featured
Being A Developer After 40
akosma
87
590k
Documentation Writing (for coders)
carmenintech
66
4.5k
Bash Introduction
62gerente
608
210k
Making Projects Easy
brettharned
116
5.9k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Thoughts on Productivity
jonyablonski
67
4.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Building an army of robots
kneath
302
44k
Transcript
どうして手を動かすよりも チーム内のコードレビューを 優先するべきなのか 2024-12-22 PHP Conference Japan 2024
開発生産性改善のために 「コードレビュー最優先」 よく耳にするはなし ※コードレビューが必須な開発フローを前提とします
「コードレビュー最優先です!」
• 今の自分の作業を中断してまで? 「コードレビュー最優先です!」
• 今の自分の作業を中断してまで? • ちょっ、これ終わるまで待って 「コードレビュー最優先です!」
• 今の自分の作業を中断してまで? • ちょっ、これ終わるまで待って • コンテキストスイッチが...... 「コードレビュー最優先です!」
• 今の自分の作業を中断してまで? • ちょっ、これ終わるまで待って • コンテキストスイッチが...... 「コードレビュー最優先です!」 と いう疑問に答えたい
我々(開発者)の 仕事とは何か?
我々(開発者)の仕事とは?
• プルリクエスト(以下、PR)を出すこと? 我々(開発者)の仕事とは?
• プルリクエスト(以下、PR)を出すこと? • 開発した機能のテストをすること? 我々(開発者)の仕事とは?
• プルリクエスト(以下、PR)を出すこと? • 開発した機能のテストをすること? • チケットを DONE のレーンに持っていくこと? 我々(開発者)の仕事とは?
• プルリクエスト(以下、PR)を出すこと? • 開発した機能のテストをすること? • チケットを DONE のレーンに持っていくこと? 我々(開発者)の仕事とは? △
• プルリクエスト(以下、PR)を出すこと? • 開発した機能のテストをすること? • チケットを DONE のレーンに持っていくこと? これらは仕事の「過程」にすぎない 我々(開発者)の仕事とは?
△
突き詰めれば「(誰かにとっての)価値を出すこと」 開発者であれば「機能をリリースすること(※)」 我々(開発者)の仕事とは? ※1...「"リリース作業"をすること」ではない ※2... リリースしたものに価値があか、という別の論点はあるが今回は割愛
で、
https://pyama.fun/archives/4751 いい話
仕事は終わらせてはじめて価値になる
• 開発者は機能をリリースして はじめて価値(になる可能性が)がうまれる 仕事は終わらせてはじめて価値になる
• 開発者は機能をリリースして はじめて価値(になる可能性が)がうまれる • (結果にだけ着目すると) リリースするまでは仕事をしていないのと同じ状態 仕事は終わらせてはじめて価値になる
• マージされていない PR • 誰かの動作確認待ちの機能 • 投げたまま返信をもらえていない確認事項 • etc. ......
これまでどれだけ時間をかけたかに依らず まだ価値になっていない仕事(のようなもの)
で、本題
どうしてコードレビューを優先するべきなのか
「自分の実装の手が止まること」は個の観点 • 自分のタスクを DONE にすることが仕事ではない 他人が待っているものを優先的に終わらせた方がよい • 自分より他人の行動の方がコントロールしにくいから どうしてコードレビューを優先するべきなのか
「自分の実装の手が止まること」は個の観点 • 自分のタスクを DONE にすることが仕事ではない 他人が待っているものを優先的に終わらせた方がよい • 自分より他人の行動の方がコントロールしにくいから どうしてコードレビューを優先するべきなのか
• プルリクエスト(以下、PR)を出すこと? • 開発した機能のテストをすること? • チケットを DONE のレーンに持っていくこと? これらは仕事の「過程」にすぎない 再掲・我々(開発者)の仕事とは?
「自分の実装の手が止まること」は個の観点 • 自分のタスクを DONE にすることが仕事ではない 他人が待っているものを優先的に終わらせた方がよい • 自分より他人の行動の方がコントロールしにくいから どうしてコードレビューを優先するべきなのか
自分 同僚 レビュー依頼 作業中 ミーティング 作業中 このようなシチュエーション
自分 同僚 ミーティング 自分の作業を優先した場合 コードレビュー 作業中 次の作業
自分 同僚 ミーティング 作業再開 コードレビューを優先した場合 コードレビュー 次の作業
あなたの作業そのものが価値と期待されているとき • 組織内で充分に分業されている • コード等の成果物にお金が支払われる あなたの作業が価値を生むためのボトルネックのとき • 完了するまで他の人の手が止まってしまう作業 逆に、コードレビューを優先すべきでないとき
リリース優先で品質を犠牲にして良いという話ではない • 品質を犠牲にすると近い未来にスピードも犠牲になる • そもそも品質を犠牲にしてスピードを上げられるか? 余談 - リリースすることが仕事だとして
リリース優先で品質を犠牲にして良いという話ではない • 品質を犠牲にすると近い未来にスピードも犠牲になる • そもそも品質を犠牲にしてスピードを上げられるか? how は仕事の目的ではないが 職業倫理上 how に責任を持たなければならない
余談 - リリースすることが仕事だとして
登壇: 寄稿: 岡田 正平/おかしょい X: @okashoi GitHub: @okashoi