~ソフトウェア品質の向上とそこに関わるすべての方へ~ Software Quality Profession

1.品質

「ソフトウェアレビューの基本スキルを3つ教えてください」と聞かれたら

静岡大学 情報学部
森崎 修司

ソフトウェアレビューは非常に浸透してきています。しかし、一方で形骸化してしまったり効果が上がらなかったりという声を聞くことが多いのも事実です。私もプロジェクトマネージャとして開発に携わっていた時期があり、レビューとは具体的に何をやればよいかという質問を開発メンバに聞いたことがあります。メンバからは「早めに(プログラムを動かさずに)不具合を発見すること」という答えが返ってくることが多かったことを記憶しています。

真の目的は別にあると認識していながらも、レビュー報告書の「実施日」を埋めるための儀式で、ざっとドキュメントやソースコードを見回して、目についた欠陥を指摘すると考えられていることも少なくありません。品質トラブルが起きた際に今後の対策として「レビューを強化する」という項目が挙げられることは多いのですが具体的にレビューをどのように強化するかを考えられていることはそれほど多くないでしょう。

では、新人や新しく組織やプロジェクトに加わったメンバに(つまりご自身が指導的立場に立たなければならないという前提で)、「レビューの基本スキルを教えてください」と質問されたら何を挙げますか?4つ以上挙がる場合には、そのうち大事なもの上位3つを挙げてほしいと言われたらどうされますか?

ご自身の組織やプロジェクトに合わせて正解は変わります。参考として私の回答を以下に記します。もちろん、回答の1パターンにすぎませんので、全ての方にとって正しいとは限りません。

1. レビューでどのような欠陥を発見することが望まれるかを理解・合意できるスキル

やみくもに誤りだけを検出、指摘するだけでは、いくら時間があっても足りない場合が多いでしょう。まず、どのような欠陥を検出、指摘することがレビューの効率化につながるのかがプロジェクトやレビューアの間で合意できているかに気づく必要があります。合意できている場合にはそれに沿って欠陥を検出するスキルが必要になります。同時に、知識不足等により十分な欠陥検出ができないときには、自身ができる範囲内ではどのような欠陥が検出できるかを想像できる必要があります。また、レビューの実施コストが得られる品質向上に見合うものであるかどうかを意識できると更に望ましいでしょう。

2. 欠陥を伝えるスキル

他の人ではなかなか指摘できない深刻で検出の価値が高い欠陥を見つけたとしても、その伝え方が適切でなければ修正されなかったり軋轢を生んでしまったりする場合があります。相手の事情を配慮し、上手に伝えるスキルも重要です。上述1のスキルにも関連しますが、プロジェクトメンバにとって最も有益な指摘から順番に伝える配慮も必要になります。プロジェクトにとって致命的なものは何で、そうでないものは何かを認識できていることが前提となります。組織の文化にもよりますが、これみよがしに徹底的に細かい指摘を並べ連ね、ドキュメントをつるし上げることは「そんなことをやる時間があったら・・」という他のメンバの思いを強くしてしまう可能性が高いでしょう。 このスキルは経験が少ない人に限定されるスキルのようにも思えますが、実は中堅やベテランにも異なった形で求められるスキルです。新人や新しく加わったメンバに対して、威嚇や圧力を与える目的で欠陥を指摘している場面に出会ったことはないでしょうか?新人、新メンバが何か直接的に言いづらい間違いや気にくわない態度を取っているときに、新人や新メンバが担当している部分を必要以上に細かくチェックして、たくさんの欠陥を指摘することで間違いや態度を変えさせようとすることは効果もそれほど望めませんし、時間の面からみても効率的ではありません。

3. 簡潔な説明ができ、必要がなければ黙っておくスキル

自身が発見した欠陥を端的に説明できるスキルは、特に会議形式のレビューの効率を高めます。きちんとまとめられていないときに限って、自身でも説明不足、物足りないと感じ,長々と冗長な発言をしてしまうことが多い傾向にあります。説明が複雑になる欠陥では、検出時にどのように説明すれば明確になるかを考えるスキルが必要になります。 「他の人が指摘をしているから、なんとなく自分も発言しておかないと」とか「自分も気づいていたことを知らせたい」と思ったとしても、その発言によって会議のスムーズな進行を妨げたり、検討にプラスにならないと考えたりすれば、黙っておくスキルも必要です。黙っておくスキルは中堅以上に特に求められるスキルといえます。

レビューにおいて普遍的なスキルを挙げました。プロジェクトレビュー、ドキュメントレビュー、コードレビュー等、実施形態やレビュー対象によっても求められるスキルはかわります。また、開発するソフトウェアや組織によっても変わりますのでただ1つの正解はないことを認識し、ご自身の状況(コンテキスト)に応じて、どのようなスキルが求められているかを考えなければなりません。本稿がそのようなご検討のヒントとなっていれば幸いです。

プロフィール

森崎 修司(もりさき しゅうじ)

静岡大学 情報学部 情報社会学科 助教、奈良先端科学技術大学院大学 情報科学研究科 非常勤講師、ソフトウェア品質シンポジウム2011副委員長
ソフトウェアレビュー、ソフトウェア計測、エンピリカルソフトウェア工学に興味を持つ。
ブログ: http://blogs.itmedia.co.jp/morisaki/

Vol.16 2011年 11月号へ2. 人材育成へ

ソフトウェア品質のホンネ
SQuBOKソフトウェア品質体系ガイド
セミナー
SQiPセミナー
SQiPセミナー開催レポート
研究会
ソフトウェア品質管理研究会
シンポジウム
ソフトウェア品質シンポジウム
資格試験
ソフトウェア品質技術者資格試験
JSTQB 認定テスト技術者資格
国際会議
世界ソフトウェア品質会議
ASQN
ニュース
SQiPニュース
webマガジン「QualityOne
コミュニティ
ソフトウェア品質確証部長の会(東京)
ソフトウェア品質保証責任者の会(大阪)
SQiPコミュニティ
SQuBOKユーザーの会
SQiP SIG
SQiPアーカイブ(研究成果や実践事例集
SQiPライブラリ
ソフトウェア品質管理の宝箱
調査・研究
ソフトウェア品質実態調査
調査・研究
ソフトウェア品質実態調査