コードレビューは緩いペアプログラミング
記事は古いけど、気付いたことをメモ。
【元ネタ】
【ITpro Challenge!】「高い生産性を実現する『ハッカーのソフトウエアエンジニアリング』とは」---Google 鵜飼文敏氏:ITpro
(前略)
開発もなるべく小さな単位で行う。「設計しつつ実装,こまめにマイルストーンを設定する。小さい単位で動くものを作る。作る順序は後で使うものから。テストしやすさ,デバッグしやすさのために重要」(鵜飼氏)。
既にあるコードを利用して,新たに作らないことも重要だ。「何を作らなくていいか,利用できるか,把握する。持ち駒が多ければ多いほどいい」(鵜飼氏)。
Googleに入って感じたのはコードレビューの有用性だという。「コードレビューはとてもいい。ゆるいペアプログラミングのようなものでお互いのコードをチェックできる。ペアプログラミングは時間が拘束されるが,コードレビューならいつでもどこでもできる」(鵜飼氏)。
デバッグの際はバグが存在する範囲を狭めて絞り込んでいく。あるいは狭めるようなテクニックをあらかじめ仕込んでおく。
(後略)
生産性:知識ゼロから学ぶ ソフトウェアテスト:So-netブログ
(前略)
個人的にはなるべく優秀な人を優遇したgoogleなりmicrosoft方式が気にっている。ソフトウェアプロセスも重要だと思うけど、優秀な人はCMMIがなんだかんだ言う前に日々現実的な作業改善をしている。
なんかペアプロよりこコードレビューのほうがいいというのも共感する。
(後略)
XPのプラクティスの一つであるペアプロは、二人の目による品質チェックと設計情報や技術ノウハウの共有という二つの利点がある。
実際の現場では、ペアプロを意識して実施されることはないが、本番リリース作業やDBメンテ作業など失敗が絶対に許されない状況では、自然にペア作業を行っている。
また、要件定義プロセスで複数人の設計者がペアで設計したり、初めてのアーキテクチャを使ってプログラミングする時は自然にペアプロしている。
しかし、ペアプロは同じ場所に二人同時に在席する制約があるため、疲れやすい。
コードレビューならば、非同期にペアプロできるのでいつでも可能だし、緩やか。
チケット駆動開発では、ワークフローを徹底すると、自然にペア作業になる。
例えば、バグ修正(PG)とバグ検証(テスター)、作業(PG)と承認(PL)、質問(開発者)と回答(設計者)、のように。
このプロセスをチケット駆動開発やコードレビューWebシステムで補完できないか?
| 固定リンク
「チケット駆動開発」カテゴリの記事
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- チケットはデータでとプロセスの二面性を持つ #redmine(2023.12.24)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- プロジェクト管理の基本はテーラリング、Redmineはプロセスをテーラリングするツール(2022.04.21)
「Agile」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- 概念モデリングや設計原則は進化しているのか(2023.10.21)
コメント