このページの本文へ

意外とハードルは低かった!Visual Studioで始めるALM 第1回

Visual Studioが実現する「次のチーム開発」の姿

ビジネスに追いつくソフトウェア開発を実現する「ALM」

2011年11月16日 09時00分更新

文● 大谷イビサ/TECH.ASCII.jp 写真●曽根田元

  • この記事をはてなブックマークに追加
  • 本文印刷

「ALM(Application Lifecycle Management)」という言葉をご存じだろうか? ALMとはビジネス価値の創造、アジリティ、生産性の向上といった昨今特に重視されてきたソフトウェア開発の要件を満たすため、導入されたチーム開発の概念である。開発現場でなにが起こってきたのか? なぜライフサイクル管理なのか? 日本マイクロソフトのエバンジェリスト 長沢智治氏に聞いた。

ビジネスの価値を継続的に引き上げるソフトウェア開発とは?

 ALMが登場した背景には、ビジネスとソフトウェアの関わりがこの20年間で大きく変化したという点が挙げられる。長沢氏は、「ビジネスとソフトウェア」「技術とプラットフォーム」という観点で、この20年間でなにが起こったかを以下のように説明する。

マイクロソフト デベロッパー&プラットフォーム統括本部 エバンジェリスト 長沢智治氏

 1990年代のクライアント/サーバー型ソフトウェアは、あくまで人間が手作業で行なう処理をコンピュータで代替してくれるという便利なツールという位置づけで、業務に必須のものではなかった。そのため、必要な機能と要件をきっちり固め、時間をかけて開発することが可能だった。「いったんソフトウェアが完成したら、そのソフトウェアのビジネス価値への貢献度は、変わることはありません。成果物を納品すれば、そのプロジェクトは終了という流れだったんです」(長沢氏)。

 こうした「ソフトウェア=便利」という時代においては、開発体制はあくまで単能工で分業するという形態がメインになる。プロジェクト全体を複数の行程に分解し、各工程での成果物を定義。その成果物ができた段階で、その後の作業を進めていくいわゆるウォーターフォールモデルだ。ここでは単能工での生産効率向上がメインであるため、ソフトウェアコードの生成は手作業で行なわれ、開発ツールもIDEというエディタやデバッガなど統合したツールが中心だった。

ビジネスとソフトウェアの進化

 しかし、21世紀に入り、ソフトウェアがビジネスの課題を解決するためのツールに成長すると、「ソフトウェア=便利」から「ソフトウェア=有効」に変化した。ビジネスとソフトウェアが同期するようになり、比重が大きくなったのだ。Eコマースをはじめとするインターネットビジネスの事業者のように、ソフトウェアこそがまさにビジネスの根幹という会社すら現れてきた。こうなると、ソフトウェアはビジネスの変化に追従しなければならないため、要件が刻々と変化することになる。また、当然ながらQCD(Quality:品質、Cost:コスト、Delivery:納期)の要件が重視されるようになった。

 2010年代になり、この傾向は加速している。ソフトウェアはもはや「便利」や「有効」ではなく「不可欠」な存在になっている。インターネットビジネスの事業者だけではなく、レガシーで保守的な企業向けソフトウェアの分野においても、この傾向は顕著になってきた。

 今やソフトウェアはビジネスの課題解決だけではなく、加速させる存在だ。そのため、ソフトウェア開発は刻々と変化するビジネスの要件にますます迅速に追従し、継続的にビジネス価値を向上させる必要があるのだ。「もはや納品という概念すらなく、ソフトウェア開発をサービスとして提供している会社も増えています」(長沢氏)。

完成したソフトウェアとビジネスにマッチしたソフトウェア

プログラマーからチーム:プログラマーズへ?

 ALM導入のもう1つの背景は、ソフトウェア開発の非効率性だ。長沢氏は「ソフトウェア開発プロジェクトの成功率はたった3割」、「バグ発生や要件違いによる手戻りは全体の4割」、「使われていない機能は全体の約半分」といった各所の調査報告を例に挙げ、現場では無駄の多いソフトウェア開発が今も続いていると指摘した。

 ビジネス要件にいち早く対応し、継続的にビジネス価値を向上させていくソフトウェア開発。全体最適化を実現しながら、QCDを担保していくソフトウェア開発。問題の芽を早めに摘み、効率的で手戻りの少ないソフトウェア開発。前置きが長くなったが、これらを実現するための柱となる概念が、ALMになる。

 こうしたALMの鍵は、ウォーターフォール的な単能工の生産性向上だけではなく、チームでの開発をいかに効率的に行なうかだ。たとえば、 昨今の「アジャイル開発」と呼ばれるチーム開発体制は、個別最適にとどまる単能工の分業ではなく、複数のプログラマーが全体最適を目指して、継続的にフィードバックを続けていく。これこそ、前述した最新のソフトウェア開発への近道のひとつだ。顧客のニーズを吸い上げ、要件を定義し、チームで必要な機能を実装。テストとバグ出しを効率的に進め、QCDを満たしていく。

 ALMは納期(Delivery)という観点でも重要だが、特に品質(Quality)との両立は大きなテーマだ。ソフトウェアを使うユーザーとそれを作る開発者がお互い不幸にならないよう、プロジェクトの担当者は「スピードと品質を両立できる開発環境」を用意することが求められているわけだ。

既存のウォーターフォール型の開発(左)、マイクロソフトが提唱するValue Upの発想のイメージ(右)

 マイクロソフトのVisual Studioの場合、こうしたALMを実現するために「チーム開発」の機能を充実させてきた。ソフトウェアのコードをリポジトリを使ってチームで共有する機能を手始めに、バージョンやバグの共同管理を行なえる機能も早くから提供してきた。そして、最新のVisual Studio 2010ではあらゆるソフトウェア開発でALMのメリットを受けられるよう、テスターやプロジェクト管理者まで共有の幅を大きく拡げた。今まで個別のリポジトリに登録されていた情報をTeam Foundation Serverの共通リポジトリに集約する。そして「Team Foundation Serverを用意してもらうだけで、自分の慣れたツールから必要な情報を得ることができます」(長沢氏)。ソフトウェアが誕生し、育つ姿を逐一記録し、関係者一同で共有するコラボレーションが実現するようになったのだ。

 特に強化されたのが、プログラマーだけではなく、テスターやプロジェクト管理者向けの機能拡張だ。「テスター向けに最適なツールを提供します。計画や実行、結果、追跡、バグの起票など、今まで手作業でやっていたところをカバーします。一方で、高度なテストは開発ツールに組み込んでいます。とにかく早め早めに問題をつぶしていって、短いサイクルでフィードバックを回していけるようにします」(長沢氏)とのことで、手戻りのリスクを最小限抑える。また、プロジェクト管理者は使い慣れたExcelやProjectなどをそのまま使えるよう、連携機能を提供している。

手戻りによるコストとリスク

 ALMというと大規模な開発プロジェクト向けというイメージがあるが、長沢氏は「効率を上げるために数十人から数百人で使うというパターンも多いですが、そもそもチーム開発は人数だけでなく、開発効率を上げコストを下げることが重要です。Visual Studioは、規模のプロジェクトごとに十分な効果を発揮し、それでいて導入や習熟のコストも低く抑えられるので、ALM導入には最適です」と説明する。

 次回は、実際にALMを用いて、開発を効率化した事例を紹介していこう。

■関連サイト

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード