【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
 

Insider's Eye

ソフトウェア開発における“見える化”の活用方法とは?

――アジャイル開発プロセスとTeam Foundation Serverの関係――

デジタルアドバンテージ 一色 政彦
2006/10/07


 先々月の8月末、ITプロ&開発者向けカンファレンス「Microsoft Tech・Ed 2006 Yokohama」が開催された。その中で、主に.NET分野のアジャイル・コミュニティに所属するMVPを対象にした、アジャイル開発およびMSF(Microsoft Solution Framework)の開発プロセスに関する意見交換会(ラウンド・テーブル)が開かれた。

 ゲストとして招かれたのは、米国マイクロソフトでMSFのプロセス・アーキテクトを務めるDavid J. Anderson氏だ。氏は書籍『アジャイルソフトウェアマネジメント』の著者でもある。本稿では、そこで交わされた質疑応答のいくつかをピックアップし、その内容を要約してご紹介しよう。

●アジャイル開発プロセスをマネジメントしていくうえで大切なことは?

 プロセス管理を行ううえで、見える化(=Visual Control)、つまりプロジェクトの進行状況をビジュアルにチェックするための仕組みは重要である。

 その見える化を実践するのに、ホワイトボードを使うことはもちろん悪くはない。しかしチームが大人数になってくると、チームのみんながホワイトボードを見られるような大部屋を用意することは難しくなってくる。そこで電子化が必要になる。電子化された見える化の仕組みを自ら作り上げることも不可能ではないが、コスト面からいってマイクロソフトにライセンスを支払ってでもTeam Foundation Server(以降、TFS)を活用した方がお得であると私は思う。

●アジャイル開発においては、Visual Studio Team System(以降、VSTS)+TFSよりも、NUnit+CruiseControl.NETなどのオープンソース・ツールの方が使い勝手が良いように感じるが……?

 アジャイル開発であっても、VSTSとTFSを組み合わせて利用することはとてもメリットが大きい。

 例えばTFSならば、ビルド・システム、バージョン管理システム、自動テスト・システム、バグ・トラッキング・システムなど、さまざまな個所からの情報を網羅して1つのグラフに統合できる。コード・カバレッジのグラフ、アクティブなバグ数のグラフ、残存作業のグラフなどなど、TFSが提供する見える化の仕組みは、アジャイル開発プロセスのマネジメントで欠かせないものだ。

●それでは、実際にどのようにグラフを活用すればよいのか? 何か具体的な例を教えてほしい。

 例えば、次のようなグラフを利用することでリード・タイム(Lead Time。詳細後述)の予測ができるようになる(グラフの意味はグラフの下の説明を参照すること)。

リード・タイムを予測するためのグラフの例
縦軸は作業項目数の累積で、横軸が作業開始日から経過した週数である。「要求」はプロジェクトの全作業項目、「作業中」は現在、開発およびテスト中の項目、「完了」は単体テストとコード・レビューまでが終わった項目を示している。「リード・タイム」とは、「作業中」と同じ数の「完了」が達成さるまでの間隔を表す。TFSでは「残存作業」(Remaining Works)のレポートを活用することで、リード・タイムを測ることができるだろう。

 このリード・タイムという考え方は、品質を確保するためには非常に重要である。

 「リード・タイムが2週間を超えてしまうと、そのプロジェクトの製品には品質に問題があることが多い」ということを、わたしは発見した。例えば実際に、わたしは2004年ごろ、2つの開発プロジェクトにかかわったが(両者とも同じような開発規模と開発内容とチーム構成で、フィーチャ駆動型開発を採用したプロジェクト)、一方のチームはリード・タイムが1〜2週間、もう一方は3カ月だった。この2つのプロジェクトの成果物の品質(バグ率)を比べてみると、何と30倍もの差があったのだ(当然ながら後者の方が30倍品質が悪かった。具体的には、前者が100個のフィーチャ当たり3つのバグであったが、後者は100個のフィーチャ当たり100個以上のバグが発見されたのである)。

 このこと(リード・タイムが1〜2週間であること)は、XP(Extreme Programming)の創始者であるKent Beck氏が提案している「イテレーションは2週間がいい」という内容(つまり、たくさんの作業項目を同時進行で開始してそのほとんどが長期間完了しないような状態にはせずに、2週間程度で開発が完了するような分量で徐々に開発を進めていく方がよいということ)と合致しているのではないだろうか(=2週間のイテレーションで作業項目をちゃんと完了させられれば、リード・タイムは2週間ということになる)。なお現時点ではわたしは、「最良の品質を得るにはリード・タイムは1週間が望ましい」と考えている。

 TFSなどの見える化の仕組み(グラフなど)を活用して適切な対応を取ることで(例えばリード・タイムを認識してそれを縮める努力をすることで)、プロジェクトを成功させ、成果物の品質を高められるようになるだろう。

 今回のラウンドテーブルは通訳を介したため時間がかかり、残念ながらあまり多くの質疑応答が行われなかった。しかし、TFSが生成するグラフをどうやって活用すればよいのかが少し分かってきたことは、筆者にとって収穫だった。開発プロジェクトをマネジメントしてソフトウェア開発を成功に導くために、読者諸氏もTFSなどが生成するグラフを活用することを考えてみてはいかがだろうか。End of Article

 Insider's Eye

ホワイトペーパーTechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?