« データパターンの組み合わせからテストケースを自動生成するツール | トップページ | Redmineと連携するテスト管理ツールのリンク »

2010/08/12

ソフトウェア開発をサポートするツールの重要性

JaSST2010東京(ソフトウェアテストシンポジウム)で、「実践アジャイルテスト」を書かれたIBMの人が講演した資料が公開されていたのでメモ。

【元ネタ】
JaSSTソフトウェアテストシンポジウム-JaSST'10 Tokyo

要求管理から改修・テストまで、アプリケーションライフサイクルから考える. プロジェクトのあり方(PDF)

上記の講演資料では、ソフトウェア開発における三つの課題をあげて、その解決方法について論じている。
その課題とは、トレーサビリティの確保、テストの自動化、開発作業の効率化だ。

トレーサビリティの確保は要求管理、テストの自動化は品質管理、開発作業の効率化は構成管理や変更管理の強化につながる。
OSSツールは特に要求管理のツールが無いので、厳しい。
テストの自動化や構成管理、変更管理は、HudsonやGit/Mercurial、Trac/Redmineなどでカバーできると思う。

IBMが販売するツールをメインにしているので、ちょっと鵜呑みにできないけれど、興味を惹いたのは、プロジェクトが大規模化、分散化するほど、ツールの重要性が高まるという指摘。

小規模なチームの場合、一つの部屋に全員が集まって対面を意識して開発すればいい。
しかし、10人以上のチームになると、2個以上のサブチームに分かれるため、サブチームの情報を収集して集計する管理工数が別途必要になる。
50人以上のチームになれば、管理工数だけでなく、サブチームからあげられた進捗などの情報を元に、整合性をとりながら集計していかなければならない。
大規模なチームほど、管理工数やその他の作業工数の比率が高まり、現場からトップまでの報告の時間が長くなり、その分、決断も遅れる。

上記の資料では、大規模チームでは、管理作業やその他の作業に全体の10~20%の工数がとられると言う。
つまり、本来の開発作業と無関係の工数の比率が高まり、その分、コストも増えるだけでなく、プロジェクト内部の無駄なコミュニケーションロスが増える。

ツールが必要なのは、開発能力を高めて本来の開発作業の生産性を上げるだけでなく、管理工数やその他の作業を減らすことにある。
言われてみれば当たり前なのだが、大規模プロジェクトほど身動きが難しい。
その理由の一つは、ツールが高価で複雑であること、そして、ツールにメンバーが慣れるコストがかかることだろう。
だが、OSSのプロジェクト管理支援ツールを駆使すれば、それらの問題は解決できると思っている。

そのツールの中でも、一番欲しいのは要求管理のツール。
テスト管理はTestLink、進捗管理はRedmine、ビルド管理やリリース管理はHudson、構成管理はGitやMercurialなどを使ってみて、それらのツールの特徴や有用性はだいたい経験できた。
しかし、要求管理については、まだ未知の分野。
上記の資料にあるように、要件や仕様のトレーサビリティをツールでサポートしたら、どれだけ有用なのか、実験してみたいのだ。

IBMの要求管理ツールで面白い機能は、トレーサビリティで関係付けられた要求に変更が入った場合、追跡可能性を示すサスペンドリンクが表示されて、影響を受ける他の要求の一覧が表示されること。
つまり、要求の依存関係をトレースできることを意味している。

これができれば、仕様変更や機能追加が突然発生しても、上流工程で設計漏れを防ぐことができるし、精度の高い工数見積もりが可能になる。

ソフトウェア開発の作業を支援するツールそのものの開発は、まだ発展途上。
まだまだ実験して研究する余地が沢山ある。

|

« データパターンの組み合わせからテストケースを自動生成するツール | トップページ | Redmineと連携するテスト管理ツールのリンク »

プロジェクトマネジメント」カテゴリの記事

Redmine」カテゴリの記事

ソフトウェア工学」カテゴリの記事

TestLink」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: ソフトウェア開発をサポートするツールの重要性:

« データパターンの組み合わせからテストケースを自動生成するツール | トップページ | Redmineと連携するテスト管理ツールのリンク »