ソフトウェア開発をサポートするツールの重要性
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の要求管理ツールで面白い機能は、トレーサビリティで関係付けられた要求に変更が入った場合、追跡可能性を示すサスペンドリンクが表示されて、影響を受ける他の要求の一覧が表示されること。
つまり、要求の依存関係をトレースできることを意味している。
これができれば、仕様変更や機能追加が突然発生しても、上流工程で設計漏れを防ぐことができるし、精度の高い工数見積もりが可能になる。
ソフトウェア開発の作業を支援するツールそのものの開発は、まだ発展途上。
まだまだ実験して研究する余地が沢山ある。
| 固定リンク
「プロジェクトマネジメント」カテゴリの記事
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える(2023.02.14)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
「Redmine」カテゴリの記事
- Redmineのバージョン設定でプロジェクトの設定方法が違う(2024.06.23)
- ウクライナのRedmine開発者が作ったRedmineテーマやプラグイン(2024.06.18)
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- Redmineで持ち株管理する事例(2024.04.21)
- チケットはデータでとプロセスの二面性を持つ #redmine(2023.12.24)
「ソフトウェア工学」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- マイクロサービス設計は従来のアーキテクチャ設計と何が違うのか(2024.01.02)
- 「ソフトウェアアーキテクチャ・ハードパーツ」の情報リンク~マイクロサービスの設計技法の課題は何なのか(2023.11.12)
「TestLink」カテゴリの記事
- JSTQBのテストプロセスの概念モデルを描いてみた(2023.05.26)
- TestLinkの要件管理にUSDMを適用する方法(2023.01.22)
- TestLinkのテストケースはクラスとインスタンスの考え方で区別する(2023.01.22)
- テスト管理ツールCAT、TestRail、QualityForwardのオンラインのマニュアルのリンク(2022.09.24)
- テスト管理ツールTestRail、CAT、QualityForwardの感想(2022.07.30)
コメント