2月8日の本欄で「開発支援ツールを使っていますか?」と題する記事を執筆した。その際に,日経SYSTEMSによる「開発支援ツールに関する利用実態調査」についてお知らせしたが,寄せられた回答を集計したところ意外な結果や興味深い結果がいくつか得られたのでご紹介したい(詳細は日経SYSTEMS4月号の特集記事としてまとめた)。

 本調査は,ITproのWebサイト上で2006年2月8日から22日にかけて実施した。その結果,407人の方からの有効回答を得た。アンケートにご協力いただいた皆様に,改めて御礼申し上げます。

 調査で明らかにしたかった点は大きく4つある。すなわち,(1)開発プロセスのフェーズごとのツール利用状況,(2)プラットフォーム/言語別のシェア,(3)各種管理ツールの利用状況,そして(4)開発支援ツールの充実を期待する技術分野---である。これらを明らかにすることで,システム開発に携わるITエンジニアが今後,開発支援ツールを選択したり活用したりする際の1つの指針になると考えたのだ。

プログラミング以外の利用率は意外に低い

 まず図1を見ていただきたい。開発プロセスの各フェーズ(要件定義,設計,プログラミング,単体テスト,結合テスト,システムテスト)において,開発支援ツールを使っている回答者の比率を示したものだ。

図1●フェーズ別の開発支援ツール利用状況(有効回答者数:407人)

 これを見ると分かるように,プログラミング・フェーズの利用率は79.1%と極めて高い。ところが,それ以外のフェーズでは,いずれも利用率が3分の1以下にとどまった。

 中でも利用率が低かったのは,要件定義フェーズ(11.8%)と結合テスト・フェーズ(14.3%)で,いずれも1割台だった。設計,単体テスト,システムテストの各フェーズも,利用率は20~30%台前半だった(順に32.4%,31.9%,20.1%)。

 プログラミング以外のフェーズでの利用率が総じて低いのはなぜだろうか。その理由も,アンケートから明らかになった。

 フェーズごとに「開発支援ツールを利用していない理由」を聞いたところ,要件定義と結合テストを支援するツールについては,「価格の高さ」を挙げた回答者が3割弱を占めた。これが利用率の低さの大きな要因となっているようだ。

 要件定義については「ツールがあることを知らない」を挙げた回答者も多く,「価格の高さ」とほぼ同数だった。一方,結合テストでは「そもそも必要ない」という答えも多く,回答者からは「結合テストでツールを導入すると,別途,ツール用のテスト・ケースを作成しなければならない」という手間の問題を指摘する声が寄せられた。

 回答者が現在利用しているツールの種類についても興味深い結果が得られた。設計フェーズでは,国産ツールの「JUDE」(チェンジビジョン)の利用者の多さが目を引く。24人が挙げた「Visio」(マイクロソフト)には及ばなかったものの,JUDEは18人で2位と健闘し,「IBM Rational Rose」(日本IBM)や「ERwin」(コンピュータ・アソシエイツ)を押さえた。単体テスト・フェーズでは,無償ツールの「xUnit」が78人でダントツのトップだった。

.NET向けツールがJava向けツールに肉薄

 次に,回答者が主に利用しているプラットフォーム/言語を聞いた(図2)。その結果,最も回答が多かったのは「Java」(24.2%)で,「.NET」(21.1%),「C/C++」(16.6%)が続いた。Javaと.NETとの差はわずか3.1ポイントであり,ここにきて.NETがシステム開発の現場に着実に浸透していることがうかがえる。

図2●プラットフォーム/言語別シェア(有効回答者数:357人)

 Java環境では予想通り,無償ツールである「Eclipse Platform」を挙げた回答者が突出して多く,約7割を占めた。.NET環境では,「Visual Basic .NET」と「Visual C# .NET」が人気を二分した。

 本調査ではプロジェクトマネジメント(PM)やテスト管理などを支援するツールの利用状況も聞いた(図3)。注目したい点は大きく分けて2つある。

図3●各種管理ツールの利用/検討状況(有効回答者数:407人)

 1つは「PMツール」の利用率が29.0%と意外に高かったことだ。導入を検討している回答者も21.9%に上った。「Microsoft Project」など低価格なPMツールが普及したことに加え,PM自体への関心の高まりが背景にあると考えられる。

 もう1つは,バグの状況やテストの進行などを管理するテスト管理ツールの検討状況だ。利用率は2.7%と少ないが,導入を検討している回答者は18.9%と,PMツールに匹敵する。

 システム開発への品質要求がより高まり,テストに対する意識が確実に変化している表れと見るべきだろう。その意味では,今後,最も導入が進んでいく管理ツールの1つになる可能性は高い。

図4●開発支援ツールの充実を期待する技術分野(複数回答,有効回答者数:297人)

 最後に,今後どんな技術分野において開発支援ツールの充実を望むかについて聞いた(図4)。最も多かったのは,JavaScriptやXMLの技術を使ったWebアプリケーションの実装形態である「Ajax」で,全体の約4割強を占めた。2番目に多かったのは「MDA(Model Driven Architecture)」だった。

“ツールありき”では根付かない

 記者が本調査を手がけてみて,改めて実感できたことは大きく2つある。

 1つは,設計やテストを支援するツールが意外に使われていないことだ。昔からモデリング・ツールやテスト・ツールはいくつもある。そのため記者は,多くの開発の現場でこうしたツールが使われていると思っていた。しかし,実際には「価格が高い」,「そもそも必要ない」などの理由から,利用率は記者の想像以上に低かった。

 その背景には,設計やテストの作業が“エンジニアリングできていない”という点があるだろう。作業そのものの手順(プロセス)が明確であり,再現性がなければ,ツールを導入してもなかなか本来の効果は引き出せない。

 厳しい言い方かもしれないが,ソフトウエア・エンジニアリングの文化がある程度根付いている米国から生まれたツールは,エンジニアリングの手法が浸透していない国内の多くの現場では“猫に小判”の状態にあるようだ。“ツールありき”で導入しても「価格が高い」「そもそも必要ない」という理屈になるのは必然である。

 その一方で,開発の現場においてマネジメント・ツールへの関心はますます高まっている。それが実感したことのもう1つだ。

 システム開発に短納期,低コストが求められ,製品・技術は高度化・専門化している。そうした中でプロジェクトを成功に導くのは至難の業と言っていい。

 本来,“ものづくり”を指す「エンジニアリング」の観点と,ものづくりにおいて生産性,コスト,品質を管理する「マネジメント」の観点は,車の両輪に相当する。しかし,マネジメントを厚くすればするほど,オーバーヘッドがかかり生産性は下がるという問題がある。そのオーバーヘッドを下げる切り札として,開発の現場ではPMツールやテスト管理ツールに期待を寄せているようだ。

 しかし,言うまでもないことだが,マネジメント・ツールについても“ツールありき”では意味がない。このことは開発支援ツールと全く同じであろう。

 なお,今回のアンケートでは,要件定義フェーズを筆頭に,設計フェーズ,テスト・フェーズにおいても,「ツールがあることを知らない」という声が意外と多かった。ベンダーに対しては「ツールの特徴や利点,費用対効果の材料となる情報を提示してほしい」という要望があった。こうした点が,開発支援ツール全体の利用率を下げている一因であることは否めないだろう。