インスペクションという言葉は、建設や製造など幅広いビジネスシーンで使われています。ソフトウェア開発における「インスペクション」は、重要な意味を持つIT用語です。
この記事では、ソフトウェア開発におけるインスペクションとは何か、進め方や他レビュータイプとの違いなど概要をわかりやすく解説します。
- もくじ
1.ITにおけるインスペクションとは?
ソフトウェア開発におけるインスペクションとは、開発成果物の品質を確かめるレビュー技法の一つです。「精査」「点検」などを意味する、英語の「inspection」に由来しています。
まずは、インスペクションの特徴や目的、他レビュータイプとの違いを見ていきましょう。
インスペクションの特徴
インスペクションの大きな特徴は、役割やプロセスが明確に決められている点です。一般的なレビューでは、参加者の役割や進行上のルールが不明確なケースが少なくありません。
一方、インスペクションは各参加者が明確な役割を持ち、決められたプロセスに沿って進行します。開発チームによらず適切な形式で実施できるため、開発成果物やプロセス品質の向上が期待できるレビュー技法といえるでしょう。
インスペクションの目的
インスペクションの目的は、一般的なレビューと同様、開発成果物の欠陥を検出し、ソフトウェア品質を向上することです。インスペクションは、チェックリストを用いることで効率的に欠陥を検出できます。
また、インスペクションで検出された欠陥は不具合表に記載し、正規のプロセスで分析・フィードバックを実施します。それによって、将来の類似欠陥の防止も図れるのです。
他レビュータイプとの違い
ソフトウェア開発のレビューには、さまざまなレビュータイプ(レビュー形式)があります。インスペクションをイメージしやすくするために、ポピュラーなレビュータイプである「ウォークスルー」との主な違いを確認しましょう。
インスペクション | ウォークスルー | |
---|---|---|
レビューの主導者 | モデレーター | 開発成果物の作成者 |
レビューアの事前準備 | 必須 | 任意 |
チェックリストの使用 | 必須 | 任意 |
ウォークスルーをはじめとする多くのレビューでは、開発成果物の作成者がレビューを主導することが一般的です。一方、インスペクションでは「モデレーター」と呼ばれる専門の人物がレビューを主導する点が大きく異なります。
また、インスペクションではレビューアの事前準備やチェックリストの使用が必須です。こうした形式上の制約が多いことも、ウォークスルーとの違いといえます。
2.インスペクション参加者の主な役割
前述のように、インスペクションには参加者の役割分担が明確であるという特徴があります。インスペクションにおける主な役割は、次の4つです。
- モデレーター(ファシリテーター)
- レビューア(レビュー者)
- 作成者(レビューイ)
- 書記(記録係)
各役割について、順番に解説します。
モデレーター(ファシリテーター)
モデレーター(ファシリテーター)はレビューを主導する役割で、インスペクションにおける特徴的な存在です。原則として、モデレーターは開発成果物の作成者以外の人が務めます。レビューの進行役となるのはもちろん、レビュー前後のプロセスも主導するため、経験豊富な人物が務めるのが理想です。
レビューア(レビュー者)
レビューア(レビュー者)は開発成果物をチェックし、欠陥や懸念事項などを指摘する役割です。インスペクションのレビューアは、特定分野の専門知識を持つ人物や、作成者の同僚などが務めます。また、後述する事前準備の段階で開発成果物をチェックします。
※表記ゆれとして「レビュアー」ともいいますが、システム開発においては「レビューア」が好まれる傾向にあります。
作成者(レビューイ)
開発成果物の作成者(レビューイ)は、レビューアから挙がった指摘事項への対応を行う役割です。原則として、インスペクションにおいて作成者はモデレーターや書記を務められません。ただし、ミーティングで質問があった場合などは、適宜回答が必要でしょう。
書記(記録係)
書記(記録係)は、インスペクションにおける欠陥や指摘事項の記録を行う役割です。ミーティング中に挙がった指摘事項はもちろん、指摘への対応方針なども記録します。書記は基本的に必須ですが、レビューツールにより記録作業を代替できる場合などは、この限りではありません。
3.IT開発におけるインスペクションのメリット・デメリット
IT開発におけるインスペクションの主なメリット・デメリットは下表のとおりです。
メリット | デメリット |
---|---|
|
|
インスペクションでは、チェックリストに沿ってレビューアがチェックを行います。開発成果物の説明などを作成者が主導しないため、チェックに主観性が入り込みません。
そのため、第三者目線で抜け漏れなく開発成果物をチェックでき、ソフトウェアの品質向上が可能です。また、不具合原因の分析やレポート作成なども行うため、プロセス改善にもつながるでしょう。
一方で、チェックリスト作成といった作業項目が多く、さまざまな関係者を巻き込むことになるため、実施に工数がかかりやすいというデメリットもあります。
4.インスペクションを進める際の大まかな流れ
インスペクションはプロセスが明確に決められており、正しい手順で進めることが重要です。ここでは、インスペクションを進める際の大まかな流れを紹介します。
①計画の策定・共有
まずはインスペクションの計画を策定し、基本事項を明確化します。役割ごとの担当者決めはもちろん、レビュー対象範囲や開始基準・終了基準なども決めなければなりません。決定した担当者への参加依頼や調整も必要です。
また、チェックすべき項目や基準を明確にして、チェックリストを作成します。計画やチェックリストは、インスペクションの参加者・関係者への周知が必要です。基本事項の情報共有にあたって、キックオフミーティングを開催することもあります。
②各自の事前準備
依頼を受けたレビューアは、チェックリストに沿って開発成果物をチェックします。この時点で開発成果物が完成している必要があるでしょう。
一般的なレビューだとミーティング内でチェックを実施しますが、インスペクションでは事前準備の段階で行うのが特徴です。欠陥と思われる箇所があれば、不具合表に記載していきます。
③ミーティング
ミーティングでは、各レビューアが不具合表に記載した内容をベースに、事実確認や対応方針の検討などを行います。ミーティング時に新たに挙がった欠陥や、決まった対応方針などを記録するのは書記の役割です。
④成果物の修正
開発成果物の作成者は、ミーティングで決まった対応方針をもとに欠陥を修正します。修正が完了した項目は、不具合表にも反映させなければなりません。
⑤フォローアップ
モデレーターは、作成者の修正内容と不具合表を比較して、適切に修正されたかをチェックします。作成者が修正の対応中であっても、随時チェックは必要です。ただし、この段階では修正内容が妥当かどうかまではチェックしません。なお、再レビューの要否もモデレーターが判断します。
⑥分析・レポート作成
ひと通りの修正が完了した後は、モデレーターが不具合原因などを分析します。インスペクションのプロセス自体も、過去の実績や計画時の目標と比べて問題なかったかどうかチェックが必要です。分析結果はレポートにして関係者へ周知し、今後のプロセス改善につなげていきます。
5.インスペクションをIT開発に取り入れるポイント
インスペクションは実施コストがかかりやすいため、確実に品質向上につなげることが重要です。
この章ではインスペクションをIT開発に取り入れるポイントについて解説していきます。
メトリクス(定量的な指標)を効果的に活用する
チェックリスト作成や目標設定では、メトリクスを効果的に活用しましょう。明確な数値を指標にすることで判断がブレにくくなる上に、確認作業の効率もアップします。
メトリクスを設定する際には、過去のプロジェクト実績などを参考にするとよいでしょう。
管理者はミーティングに参加させない
開発プロジェクトの管理者は、インスペクションのミーティングに参加させるべきではありません。
なぜなら、管理者を参加させると人事評価の側面が生じ、レビューとしての品質が下がりやすくなるからです。
インスペクションの主な目的である、欠陥の検出に参加者が専念しやすい環境をつくることが重要となります。
まとめ:インスペクションを効果的に取り入れ開発のプロセス改善を
ソフトウェア開発におけるインスペクションとは、レビュー技法の一つであり、役割やプロセスが明確に決められています。
選任のモデレーターがレビューを主導する点や、チェックリストの使用が必須となる点など、一般的なレビューとは多くの違いがあります。
抜け漏れのないチェックが可能なインスペクションは品質向上につながるものの、実施にコストがかかりやすいことも把握しておく必要があります。
今回紹介したインスペクションの流れやポイントを押さえて、高品質なレビューやIT開発のプロセス改善を実現しましょう。