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
23
どうして手を動かすよりもチーム内のコードレビューを優先するべきなのか
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
fs2-io を試してたらバグを見つけて直した話
chencmd
0
230
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
110
create_tableをしただけなのに〜囚われのuuid編〜
daisukeshinoku
0
240
Semantic Kernelのネイティブプラグインで知識拡張をしてみる
tomokusaba
0
180
今年一番支援させていただいたのは認証系サービスでした
satoshi256kbyte
1
250
The Efficiency Paradox and How to Save Yourself and the World
hollycummins
1
440
生成AIでGitHubソースコード取得して仕様書を作成
shukob
0
350
Beyond ORM
77web
5
630
StarlingMonkeyを触ってみた話 - 2024冬
syumai
3
270
Effective Signals in Angular 19+: Rules and Helpers @ngbe2024
manfredsteyer
PRO
0
130
これが俺の”自分戦略” プロセスを楽しんでいこう! - Developers CAREER Boost 2024
niftycorp
PRO
0
190
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
4
260
Featured
See All Featured
The Invisible Side of Design
smashingmag
298
50k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
Agile that works and the tools we love
rasmusluckow
328
21k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
Automating Front-end Workflow
addyosmani
1366
200k
KATA
mclloyd
29
14k
The Cost Of JavaScript in 2023
addyosmani
45
7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
What's in a price? How to price your products and services
michaelherold
243
12k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Site-Speed That Sticks
csswizardry
2
190
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