どうして手を動かすよりもチーム内のコードレビューを優先するべきなのか
by
Shohei Okada
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
どうして手を動かすよりも チーム内のコードレビューを 優先するべきなのか 2024-12-22 PHP Conference Japan 2024
Slide 2
Slide 2 text
開発生産性改善のために 「コードレビュー最優先」 よく耳にするはなし ※コードレビューが必須な開発フローを前提とします
Slide 3
Slide 3 text
「コードレビュー最優先です!」
Slide 4
Slide 4 text
• 今の自分の作業を中断してまで? 「コードレビュー最優先です!」
Slide 5
Slide 5 text
• 今の自分の作業を中断してまで? • ちょっ、これ終わるまで待って 「コードレビュー最優先です!」
Slide 6
Slide 6 text
• 今の自分の作業を中断してまで? • ちょっ、これ終わるまで待って • コンテキストスイッチが...... 「コードレビュー最優先です!」
Slide 7
Slide 7 text
• 今の自分の作業を中断してまで? • ちょっ、これ終わるまで待って • コンテキストスイッチが...... 「コードレビュー最優先です!」 と いう疑問に答えたい
Slide 8
Slide 8 text
我々(開発者)の 仕事とは何か?
Slide 9
Slide 9 text
我々(開発者)の仕事とは?
Slide 10
Slide 10 text
• プルリクエスト(以下、PR)を出すこと? 我々(開発者)の仕事とは?
Slide 11
Slide 11 text
• プルリクエスト(以下、PR)を出すこと? • 開発した機能のテストをすること? 我々(開発者)の仕事とは?
Slide 12
Slide 12 text
• プルリクエスト(以下、PR)を出すこと? • 開発した機能のテストをすること? • チケットを DONE のレーンに持っていくこと? 我々(開発者)の仕事とは?
Slide 13
Slide 13 text
• プルリクエスト(以下、PR)を出すこと? • 開発した機能のテストをすること? • チケットを DONE のレーンに持っていくこと? 我々(開発者)の仕事とは? △
Slide 14
Slide 14 text
• プルリクエスト(以下、PR)を出すこと? • 開発した機能のテストをすること? • チケットを DONE のレーンに持っていくこと? これらは仕事の「過程」にすぎない 我々(開発者)の仕事とは? △
Slide 15
Slide 15 text
突き詰めれば「(誰かにとっての)価値を出すこと」 開発者であれば「機能をリリースすること(※)」 我々(開発者)の仕事とは? ※1...「"リリース作業"をすること」ではない ※2... リリースしたものに価値があか、という別の論点はあるが今回は割愛
Slide 16
Slide 16 text
で、
Slide 17
Slide 17 text
https://pyama.fun/archives/4751 いい話
Slide 18
Slide 18 text
仕事は終わらせてはじめて価値になる
Slide 19
Slide 19 text
• 開発者は機能をリリースして はじめて価値(になる可能性が)がうまれる 仕事は終わらせてはじめて価値になる
Slide 20
Slide 20 text
• 開発者は機能をリリースして はじめて価値(になる可能性が)がうまれる • (結果にだけ着目すると) リリースするまでは仕事をしていないのと同じ状態 仕事は終わらせてはじめて価値になる
Slide 21
Slide 21 text
• マージされていない PR • 誰かの動作確認待ちの機能 • 投げたまま返信をもらえていない確認事項 • etc. ...... これまでどれだけ時間をかけたかに依らず まだ価値になっていない仕事(のようなもの)
Slide 22
Slide 22 text
で、本題
Slide 23
Slide 23 text
どうしてコードレビューを優先するべきなのか
Slide 24
Slide 24 text
「自分の実装の手が止まること」は個の観点 • 自分のタスクを DONE にすることが仕事ではない 他人が待っているものを優先的に終わらせた方がよい • 自分より他人の行動の方がコントロールしにくいから どうしてコードレビューを優先するべきなのか
Slide 25
Slide 25 text
「自分の実装の手が止まること」は個の観点 • 自分のタスクを DONE にすることが仕事ではない 他人が待っているものを優先的に終わらせた方がよい • 自分より他人の行動の方がコントロールしにくいから どうしてコードレビューを優先するべきなのか
Slide 26
Slide 26 text
• プルリクエスト(以下、PR)を出すこと? • 開発した機能のテストをすること? • チケットを DONE のレーンに持っていくこと? これらは仕事の「過程」にすぎない 再掲・我々(開発者)の仕事とは?
Slide 27
Slide 27 text
「自分の実装の手が止まること」は個の観点 • 自分のタスクを DONE にすることが仕事ではない 他人が待っているものを優先的に終わらせた方がよい • 自分より他人の行動の方がコントロールしにくいから どうしてコードレビューを優先するべきなのか
Slide 28
Slide 28 text
自分 同僚 レビュー依頼 作業中 ミーティング 作業中 このようなシチュエーション
Slide 29
Slide 29 text
自分 同僚 ミーティング 自分の作業を優先した場合 コードレビュー 作業中 次の作業
Slide 30
Slide 30 text
自分 同僚 ミーティング 作業再開 コードレビューを優先した場合 コードレビュー 次の作業
Slide 31
Slide 31 text
あなたの作業そのものが価値と期待されているとき • 組織内で充分に分業されている • コード等の成果物にお金が支払われる あなたの作業が価値を生むためのボトルネックのとき • 完了するまで他の人の手が止まってしまう作業 逆に、コードレビューを優先すべきでないとき
Slide 32
Slide 32 text
リリース優先で品質を犠牲にして良いという話ではない • 品質を犠牲にすると近い未来にスピードも犠牲になる • そもそも品質を犠牲にしてスピードを上げられるか? 余談 - リリースすることが仕事だとして
Slide 33
Slide 33 text
リリース優先で品質を犠牲にして良いという話ではない • 品質を犠牲にすると近い未来にスピードも犠牲になる • そもそも品質を犠牲にしてスピードを上げられるか? how は仕事の目的ではないが 職業倫理上 how に責任を持たなければならない 余談 - リリースすることが仕事だとして
Slide 34
Slide 34 text
登壇: 寄稿: 岡田 正平/おかしょい X: @okashoi GitHub: @okashoi