ソフトウェア品質知識体系ガイド-SQuBOK® Guideについて 第4回(最終回)
SQuBOK® 編集チーム
富士通株式会社 辰巳 敬三
株式会社NTTデータ 町田 欣史
日立情報通信エンジニアリング株式会社 池田 暁
■はじめに
前々回(第2回)と前回(第3回)で、SQuBOK®ガイドの第1章「ソフトウェア品質の基本概念」と第3章「ソフトウェア品質技術」について解説しました。最終回となる今回は第2章の「ソフトウェア品質マネジメント」について解説します。
このコーナーは新人を含めた初心者の方々を対象にしていますので、「マネジメント」と聞いてもピンとこない方も多いかもしれません。それもそのはずで、マネジメントは一般的にはマネージャ、つまり管理者が行うものです。今はマネジメントされる立場にある読者の方が多いと思いますが、今の自分の作業がどのような目的で、どのようにマネジメントされているのかを知るために、そしていずれ自分自身がマネジメントするべき立場となったときのために、その全体像と概略を理解しておきましょう。
■「ソフトウェア品質マネジメント」カテゴリの概要
この「ソフトウェア品質マネジメント」カテゴリは、他の2つのカテゴリと構成が異なっており、カテゴリの下に副カテゴリがあります。これは、一口に「ソフトウェア品質マネジメント」と言ってもいくつかのレベルがあるためです。ソフトウェア品質マネジメントは、まず「組織」と「プロジェクト」という視点で分類され、さらにプロジェクトの中でも工程に依存するかしないかという視点で分類されます。ソフトウェア品質マネジメントというのは、それだけ多岐にわたるものだということがこれだけでもお分かりいただけるでしょう。SQuBOK®ガイドでは、この分類(レベル)に沿って以下の3つの副カテゴリを設けています。
(1) | 組織レベルのソフトウェア品質マネジメント |
組織内で共通、あるいは組織全体を対象としたアクティビティ | |
(2) | プロジェクトレベル(共通)のソフトウェア品質マネジメント |
プロジェクトで遂行されるアクティビティのうち、工程に依存せずライフサイクルを通して遂行されるアクティビティ | |
(3) | プロジェクトレベル(個別)のソフトウェア品質マネジメント |
プロジェクトで遂行されるアクティビティのうち、工程に応じて遂行されるアクティビティ |
以降では副カテゴリ別に、それぞれのポイントを見ていくことにしましょう。
■組織レベルのソフトウェア品質マネジメント
「マネジメント」と聞くと、プロジェクトの中で行われるものという印象を持たれる方が多いかもしれませんが、企業全体や企業の中のある部門といった組織のレベルでの品質マネジメントというものがあります。
企業に勤務されている皆さんの中には「QCサークル活動」に取り組んだことのある方も多いのではないでしょうか。「QCサークル活動」自体はソフトウェア開発に特化したものではなく、製造業などで先に始められて成果を挙げていたため、ソフトウェア開発にも取り入れられたものです。SQuBOK®ガイドでは「ソフトウェア品質推進活動」副知識領域の「QCサークル」というトピックスでその活動方法に関する説明があります。組織のトップマネジメントにより方向付けされた品質活動やこの「QCサークル」のような現場中心の活動によって、組織として品質をマネジメントする仕組みを「品質マネジメントシステム」と呼びます。
品質マネジメントシステムは国際規格であるISO 9000ファミリーとして標準化されています。その審査に通れば、品質マネジメントシステムが正しく構築されていると認められるのですが、これはプロセスを定義してその通りに実行しているかどうかを確認するという欧米流の考え方です。一方、日本的な品質マネジメントシステムの考え方では、「顧客満足の達成」という目的を全員が共有し、QCサークルのような活動に組織内の全員が参加して今より高いところを目指してプロセスそのものを改善しながら進めるというところが特徴的です。
■プロジェクトレベル(共通)のソフトウェア品質マネジメント
この副カテゴリには、工程に依存せずに開発全体にわたって共通して行われる活動が含まれます。これらの活動は、プロジェクトマネージャが行うプロジェクトマネジメント(プロジェクト管理)と重なる部分もありますが、SQuBOK®ガイドでは、その中でもソフトウェア品質と関連の深いものを取り上げています。
プロジェクトマネジメントには、SQuBOK®の先輩とも言える「PMBOK®」という知識体系があります。SQuBOK®ガイドのこの副カテゴリにある「調達マネジメント」と「リスクマネジメント」の2つの知識領域はPMBOK®の知識領域にも含まれているものです。つまりこれら2つの知識領域は、プロジェクトを遂行する上で必要な活動というだけでなく、品質の高いソフトウェアを開発するためにも重要な活動であることが分かるでしょう。
また、PMBOK®にはない知識領域として「構成管理」があります。これはソフトウェア開発をしているSEやプログラマの方にはおなじみの作業でしょう。構成管理には、ソースコードなどの成果物の変更履歴やバージョン・リビジョンを管理する「バージョン管理」、テスト中やリリース後に見つかった不具合と、それに対する対応状況を管理する「不具合管理」などがあります。これらは構成管理(バージョン管理)ツールやバグトラッキング(バグ追跡)ツールなどを使って管理するのが一般的ですが、単にツールを使えば勝手に管理してくれるというものではありません。バージョンの付与ルールや不具合の解析フローといった管理方針や手順とセットで使うことで正しい管理ができるようになります。
■プロジェクトレベル(個別)のソフトウェア品質マネジメント
最後の3つ目の副カテゴリは、工程に依存した品質マネジメント活動です。これは、前回(第3回)説明した「ソフトウェア品質技術」カテゴリの知識領域に対応しています。
例えば、「レビューの技法」知識領域に対応して「レビューのマネジメント」知識領域があります。「レビューの技法」知識領域では「インスペクション」や「ウォークスルー」といったレビューの技法を取り上げていましたが、その技法を理解すれば実際のプロジェクトの中でレビューができるというわけではありません。複数ある技法のうち、どれをどういう順番で用いるか、どのようなメンバーがどのタイミングで行うか、レビューした結果をどう扱うか、などについてしっかりと計画を立て、遂行しなければなりません。
同様に、「テストの技法」知識領域に対しては「テストのマネジメント」知識領域があります。「テストの技法」知識領域では、テストケースを作るための様々な技法について主に取り上げていました。しかし、その技法をマスターしただけでテストが完璧にこなせるかと言うと、そんなことはありません。実際のテストを進めていく上では、「単体テスト」「結合テスト」「システムテスト」といった「テストレベル」を段階的に進めていかなければなりませんし、さらに各テストレベルの中でも、テストの計画を立て、その計画通りに作業が進んでいるかを監視・統制する必要があります。
■終わりに
今回は「ソフトウェア品質マネジメント」カテゴリについて紹介しました。品質マネジメント活動は組織レベルからプロジェクトレベルまで多岐にわたるものですから、すべてを一度に実現させようとするのは難しいと思います。トピックスも数多くありますので、まずは自分にとって身近なものから理解し、徐々に幅を広げていくようにするのがよいでしょう。
4回にわたって解説してきたSQuBOK®ガイドの連載は今回で最後となります。最後までお付き合いいただきありがとうございました。紙面の都合上、重要な部分や特徴的な部分に絞った解説となりましたが、SQuBOK®ガイドの全体像は掴んでいただけたでしょうか。初めてSQuBOK®ガイドを見た時は、そのボリュームの多さと難しそうな内容に圧倒されてしまったかもしれませんが、この連載記事を読んで、ガイドがどのように構成され、どのようなトピックスについて書かれているかを理解し、活用いただけたら幸いです。
第1回でもお話しましたが、SQuBOK®ガイドは「品質技術のカタログ」のようなものです。従って、まずはどこにどのようなことが書かれているかを知っていただければよいと思います。そして、自分の必要な情報についてSQuBOK®ガイドの解説文を読み、さらに理解を深めたい方は参考文献を調べて、より詳細に学んでみてください。
また、このSQuBOK®ガイドをベースにした資格試験「ソフトウェア品質技術者資格認定」ができました。SQuBOK®ガイドを読み込んで、どのぐらい理解したかを確認したい方は力試しに是非チャレンジしてみてはいかがでしょうか。
2007年11月に第1版が発刊されたSQuBOK®ガイドは、2008年10月に一部改訂(アメンドメント)され、改訂箇所がWeb公開されました。今後は第1版では扱わなかった設計や実装に関する記述の追加や、既存の記述内容の見直し、拡充などを行って、改版する予定です。Quality OneでもSQuBOK®に関する最新情報を引き続きお知らせしますので、楽しみにしていてください。