レビューの質をモデル化する!
レビューのゴールはあいまい
「ソフトウエア開発において、レビューは大切ですか?」
「もちろん」と答える人が多いことでしょう。さらに「大切なのにサボるのはなぜですか?」と質問すると、「時間がなくて」「短納期だから」と一生懸命に理由を説明してくれます。ならば、さらに問うてみましょう。「サボれるなら必要ないのですか?」みなさんなら、何と答えるでしょうか。
レビューが大切であり必要なことは、古くからの共通認識です。また、「作り込み工程重視」の方針をかかげ、レビュー強化に取り組んだ経験も何度かあるかと思います。レビューの大切さがこれほど十分に認識されているのに、「忙しくてレビューを省略した」「ベテランによる設計のためレビューはしない」という場面に遭遇します。また、「やることになっているから」「やらないと怒られるから」といった具合に形式的な「アリバイ作り」「儀式的な活動」に陥ってしまうこともあります。
一方で時間に余裕がある時には「やり過ぎ」と思えるくらい何度も何度も「終わり無き」レビューを繰り返すこともあります。「レビューが大切といってサボる、サボるかと思えばやり過ぎる」。不思議ですね、どういうことなのでしょうか。
これは「ゴールがあいまい」というレビューの特質によるものではないでしょうか。よくよく考えてみれば、コーディングや設計と異なり、レビューには、具体的に作るものがありません。したがって、どこまでやればOKなのかというゴールがあいまいとなり、サボれるし、やり過ぎることもできるのです。
ルール化・手順化のわなにはまらないためのモデル化技法
あいまいなゴールを明確にする方法として、工学的/定量的アプローチがよく知られています。具体的には「レビュー指摘件数」や「レビュー時間」を計測し、ゴールとなる「目標値」と「実績値」を比較して評価するという方法です。そして、その方法はルール/手順として定められ、徹底/順守を求められます。
このルール化/手順化は、導入当初は大きな効果が得られますが、次第にマンネリ化し、「目標値」の魔力に縛られ、形式的/表面的なレビューに陥る場合があります。
例えば「指摘件数」を目標値とした場合、以下のような状況が考えられます。
・指摘件数が目標値に達していればOK
・目標値に達するように、誤記や体裁などの細かい軽微な指摘をたくさん挙げる
・指摘件数が目標値に達していなくても大丈夫な理由(言い訳)を並べる
つまり、目標値を意識するあまり、件数を目標値に合わせるという「数合わせ」「データ操作」が無意識に始まるのです。「レビュー時間」でも同じことです。本来は「効果的な質の高いレビューをしたい」という目的だったはずですが、時間経過と共に「目標値を達成する」という目的にすり替わっていってしまうのです(図1左)。
また、ルールは順守するものという観念が強いため、開発現場からの抵抗感を生みやすく、「守れば文句ないでしょう」といった反発を招きやすい懸念があります。このように、ルール化/手順化には、危険性がつきものなのです。
もちろん、「目標値」を定め評価すること自体を否定しているわけではありません。しかし、ソフトウエア開発では、業務の特徴、工程、担当者、規模など、さまざまな要因により、最適なゴールが異なります。したがって、画一的に「目標値」を決めて評価する、という「方法論」だけでは限界があります。うまく当てはまらないケースがたくさんあるのです。
そこで、無理に方法を固定するのではなく、「こういう状態になりたい」「こういうレビューがしたい」というなりたい姿をモデルとして表現し、「方向性」を示すというアプローチ(図1右)を紹介します。その時々の状況に合わせ考える業務スタイルに導くモデルであり、最適な方法を選択させるものです。
次のページでモデルの中身について紹介します。