小泉内閣の総合科学技術会議に端を発する情報処理推進機構、ソフトウェア・エンジニアリング・センター(IPA/SEC)は、この4月から第3期中期計画に突入した。中期計画の期間は5年だから、この組織は準備期間を含めて10年目の区切りを経て、11年目をスタートしたことになる。筆者はSEC開設以来6年間その研究員を勤め、退職後もSEC専門委員として、SEC成果普及のためのセミナー講師などをしてきた。そこでこの機会にこうした国費による10年プロジェクトでいったい何が実現され、そのエッセンスは何なのか俯瞰してみたい。
1.10年間の活動が創出した稀有のソフトウェア・エンジニアリング実証ノウハウ集積体
IPA/SEC過去10 年間の活動を俯瞰して、その一番の意義は何処にあるのだろうか、ちょっと考えてみたい。
IPA/SECは新設機関で、かつ一般企業のように恒常的な要員では構成されていない。実績のある専門家を集めて、一定期間テーマに添った調査・研究をする場を提供した、というのが実態である。引き継いだ先行資産はなく、活動テーマごとの短期タスクフォースの連続体を構成している。
そのアウトプットは猛烈である。SEC BOOKSと呼ばれる夥しい書籍、これを含むWebサイトで公開される大量の文書、高水準の季刊学術誌SEC journal、専門企業を稼働した調査資料群、いくつかの極めて強力なソフトウェアツール(たとえば定量的プロジェクト管理ツール:EPM-X)とこれによるサービス、数は多くはないが実証を背景とした国際会議での学術論文、そのほか高頻度で実施されるセミナーとそのプレゼン資料、メールマガジン、ニュースリリースなど、絶えることなく生み出されている。最近実施されるセミナーはそのままU-tubeで配信されている。Webサイトでの情報提供の他、文献類の検索システムも使いやすい形で完備している(SWE iPedia、J-STAGE)。これらは、他では得られない情報と言うだけでなく、産業界での実用性の高さ、専門家群による高い視点からのレビューを受けた文書、として概ね高い評価を得て来た。
その活動成果を一言で表現すれば、ソフトウェア・エンジニアリングに関して「稀有な情報の、再利用のために工夫された形態でのオープンな大量集積」ということになる。
積み上げられたノウハウ満載の知的生産物にはどんなものがあるか、いくつかの例を紹介するが、それはまさに空前絶後といえるアウトプットである。
(1)「見える化本」
例えば筆者が参加した「見える化本」の例をあげる。正確には「ITプロジェクトの「見える化」」(上流工程編、中流工程編、下流工程編、総集編)となっている。4分冊、全780ページの書籍。執筆者は毎年一部入れ替えながら20人程度。5年余を有して書き上げられた。執筆メンバは産業界からプロジェクト・マネージャ系、あるいは品質保証部系のベテラン、若いときプロジェクト・マネージャ、現在品質保証部という人もいた。そして大手企業のソフトウェア品質保証部長を経てソフトウェア企業の代表取締役、いまはコンサルタントというような人もいる。それに社会的に重要なシステムのユーザ企業のシステム部門の専門家、さらにエンピリカル・ソフトウェア工学領域の大学教授が作成に加わった。その作業は単なる分担執筆とか、持ち込んだ素材のマージというようなことではない。多くの企業から一般には門外不出の素材を持ち寄り、議論を重ね、レビューに次ぐレビューを経て出版されている。
全体の40%が読み通す形の文章で、残りはチェックシート、失敗事例集、計測データ項目一覧表のような細かいデータ類で構成され、書籍全体で「見える化」手法という一種のツールとなっている。収録した詳細説明つきの失敗事例は190例にも及ぶ。
(2)「機能要件の合意形成ガイド」
ソフトウェア開発を希望するところ、いわゆる発注元、あるいは利用するところ、ユーザと、ソフトウェア開発を実行するところ、ソフトウェア・ベンダとの間の溝を埋めるという容易でない課題に取り組んだガイドである。
Web公開されている7分冊からなる文書で、驚くほど大量にダウンロードされている。他のドキュメントとあわせてDVD-ROMでも配布されている。概要編、システム振舞い編、画面編、データモデル編、外部インターフェース編、バッチ編、帳票編、で構成され合計600ページを越す。ほぼ全体が「こつ」とよぶTIPS集から成る。
(3)「非機能グレード表」
今日ソフトウェアの開発に於いて、性能、リスク対応、そして使いやすさなど非機能と呼ばれる要件の重要性は極めて高い。本資料はソフトウェア開発に於いてその検討漏れをなくすための網羅的なチェック表である。
100ページ弱の解説文書に続いて、A3横の非常に細かい表が35枚ほどあり、さらに樹形図というドキュメントが9ページある。活用シートと呼ぶ大型のスプレッドシートがあり、その行数は230行を超えている。
こちらも大量にダウンロードされている。
(4)データ型書籍
このほかに、いわゆる読み通し型でないデータ型の書籍として、ソフトウェア開発標準の土台となる「共通フレーム2013」、そして3,000プロジェクト以上の開発データを収集・分析し、版を重ねてきた「ソフトウェア開発データ白書」がある。
(5)事例集積型書籍
「見える化本」以外にも事例集積・事例解説型のドキュメントが沢山ある。
たとえば、「実務に活かすIT化の原理原則17ヵ条〜プロジェクトを成功に導く超上流の勘どころ〜」では24の事例を詳しく説明している。
「プロセス改善ナビゲーションガイド〜ベストプラクティス編〜」では10件のプロセス改善事例が詳しく解説されている。
「超上流から攻めるIT化の事例集」では、6社の実例から所謂ソフトウェア開発の成果物文書の実例9件が説明つきで掲載されている。掲載されているサンプル・ドキュメントの種類は多く、その分量は合計500ページにおよぶ。Web掲載では検索機能が工夫されている。
「ソフトウェア開発見積りガイドブック〜ITユーザとベンダにおける定量的見積りの実現〜」では、事例をベースとした10例の手法が紹介されている。
「続 定量的品質予測のススメ― 定量的品質管理実践ガイド −〜ITシステム開発における定量的品質管理の導入ノウハウと上流工程へのアプローチ〜」では前半で定量的な品質管理に関して平易な体系的な説明を試みたあと、後半をQ&Aのような構成で極めて実務的に記述している。ここでは、「定量的品質管理に一歩を踏み出すためのアドバイス」、として、「定量データが上手く収集できない」、といった4つの設問を、「どんなデータ(指標)を集めればよいか分からない」といった11個の基本的な(素朴な)疑問に分解して、これに詳しく答えようとしている。
「高信頼化ソフトウェアのための開発手法ガイドブック、〜予防と検証の事例を中心に〜」では、273ページの大著の中に、障害・再発防止事例39件の説明が分析とともに収録され、さらに高信頼ソフトウェアの開発に向けた取り組みとして7社の事例を詳しく紹介している。
一つの事例紹介だけで1冊の書籍を構成しているものがある。実証プロジェクトの一つの記録を紹介したもので、「ソフトウェアエンジニアリングの実践〜先進ソフトウェア開発プロジェクトの記録〜」である。これには参考文献としてこの実証プロジェクトから発表された学術論文等のリストが20件以上掲載されている。
(6)組込みソフトウェア向け書籍体系
組込みソフトウェア向けには、組込みソフト・リファレンス・シリーズとして体系化された一連の書籍群が提供されて来た。「組込みソフトウェア向け開発プロセスガイド」、「組込みソフトウェア向け品質作り込みガイド」、「組込みソフトウェア向けプロジェクトマネジメントガイド[計画書編]」、「組込みスキル標準ETSS概説書」の4分冊だけでも700ページを優に超えている。「組込ソフトウェア向けプロジェクト計画立案トレーニングガイド」は大判で278ページの大著である。
「組込みソフトウェア開発における品質向上の勧め[バグ管理手法編]」は90ページの小型書籍だが、類書がありそうで意外にないバグ管理について、基本的事項から説き起こして最先端手法までじっくり紹介されている。最新のチケット駆動開発や進行中の開発プロセスの自動計測と可視化手法の背景が有り、組込みソフトに限らず幅広く活用できる。
(7)アジャイル開発関連資料
このテーマに関して、他では決して得られない膨大な高水準の調査・検討資料、契約書案が提供されている。調査資料には大量の事例集も含まれている。