Loading
|
@IT > .NETエンタープライズ新時代 インタビュー編 |
|
「Visual Studio Team System(以下Team System)」は、エンタープライズ環境でのアプリケーション開発の効率化を目的として、マイクロソフトが開発した開発支援ツールである。マイクロソフトの説明によれば、MSDNサブスクライバ(開発者向け有料情報提供サービス。会員数は全世界で100万人以上)の60〜70%の人がダウンロードし、試用を含めて評価を行ったという。開発者の注目度が非常に高い製品だといってよいだろう。
このTeam System開発の背景、特徴、今後のロードマップなどについて、Team Systemの開発をリードするAndrew氏とIan氏のお二人にうかがった。 ――Team Systemの現状、そして実際に活用している顧客企業の声は? Andrew氏 :Team Systemの開発にあたって顧客要望を調査したところ、エンタープライズ・クラスの大規模なアプリケーション開発では、個々の開発者の生産性向上を追求するだけでなく、開発チーム内/チーム間でのコミュニケーションやコラボレーションのあり方や、アプリケーションの品質を効率的かつ効果的に高める管理手法の確立などが必要だと分かりました。Team Systemのゴールは、こうした大規模アプリケーション開発が抱える諸問題を解決することです。 アプリケーション開発環境であるVisual Studioの.NET対応を進めるにあたり、わたしたちは開発者個々人の開発生産性向上をゴールとしていました。しかし大規模アプリケーション開発では、コードを作成するデベロッパーだけでなく、テスターやアーキテクト、システム・エンジニア、ビジネス分析者、プロセス決定者など、さまざまな役割を持ったプロジェクト・メンバーが互いに協調して作業を進めます。メンバー同士が円滑に協調できなければ、全体としての開発生産性を向上させることはできません。これには、プロジェクト・メンバー全員が、できるだけ自然な形で、情報を共有できるツールが必要だという結論に達しました。 もちろんこの当時から、プロジェクト・チームの協調に焦点を当てた製品は世の中に存在していました。しかし、往々にしてそれらの製品は、個々のデベロッパーにとっては使い勝手がよいものではありませんでした。そこでTeam Systemでは、設計〜開発〜テスト〜展開・運用という開発ライフサイクル全体を支援してチーム開発を円滑化する基盤であると同時に、個々のデベロッパーにとっても使い勝手がよいというバランスの取れた製品を目指しました。 Team System はデベロッパーやアーキテクト向けの製品を 2005年11月にリリースし、その数カ月後にはTeam SystemのコアとなるTeam Foundation Server(=プロジェクト管理用のツール)をリリースしました。市場投入からすでに1年半が経過しており、Team Systemを利用した顧客から反響が寄せられています。前述したゴールへの第一歩となる初版の成果としては、大変満足できる反響をいただいています。 Ian氏 :Team Systemの導入によって、チーム間の協調が円滑化し、ソフトウェアの品質改善と開発生産性向上が達成されたという声が、世界各国の顧客企業から届いています。 顧客企業へのヒアリングで分かった興味深い事実は、Team Systemが単なる開発ツールとして捉えられているのではないということです。Team Systemは、開発プロセスやガイダンスなどのソフトウェア開発手法を利用者にガイドするだけでなく、改善を継続的に実行する習慣や文化をチームに定着させてくれる原動力として認識されていました。 顧客の一人はこういいました。
日本は、効率的な生産管理手法として、いまや世界のスタンダードとなった「カイゼン」を自動車産業で産みだし、「カイゼン」の手法をさまざまな事業領域、業務領域に広げて、コスト削減や生産性向上を達成しています。このようなバックグランドがある日本では、Team Systemがもたらすソフトウェア開発領域の「カイゼン」についても、比較的すんなりと受け入れてもらえると思います。 ――Team Systemの導入前と後で、企業における開発の文化がどう変わるのか? Andrew氏 :多くの企業では、開発プロセスの適用や品質改善への取り組みをトップ・ダウンで強制します。デベロッパーは「この手順で、こうすべし」という指示・指令に従うように求められるわけですが、これを守ってきちんと実行していくのは意外に難しいものです。行き過ぎれば、押し付けがましく感じられてしまい、デベロッパーはやる気を失ってしまうこともあります。しかしながらTeam Systemを導入すれば、単体テストやコード・レビュー、開発プロセスなどの実施を常態化させることが非常に容易になります。というのも、Team Systemでは、開発ツールの中に開発プロセスを取り込めるからです。これにより、デベロッパーは無意識かつ自然に開発プロセスを実行できるようになります。 またTeam Systemを導入することで、チーム間のコミュニケーションやコラボレーションが促進され、「開発作業全体の流れの中でどこに問題があり、どこが非効率化なのか」という、いわゆる「気づき」が生まれやすい。それを基に継続的な改善を行っていくことで、企業での開発の文化が大きく変容する結果につながるわけです。 実際にマイクロソフトでも、全社的にTeam Systemを活用していますが、それによって「見える化」や「オープン化」に関する改善がなされました。以前は、プロジェクト・マネージャー、アーキテクト、デベロッパー、テスターというように、役割単位でチームが分断された状況がありましたが、Team System導入後は、さまざまな役割の人々がチームとして密に連携できるようになりました。これ以来マイクロソフトでは、ソフトウェアのフィーチャ(機能)に対して小規模なチームを組み、そのチームがフィーチャの開発に設計から開発・テストまで、つまり最初から最後まで、主導権と責任を持って開発に従事するという文化が生まれました。このようなチームを、わたしたちは「フィーチャ・チーム」と呼んでいます。 このような変化は、マイクロソフトだけでなく、Team Systemを新たに導入した顧客先でも起こっています。従来は、工場の製造ラインのような開発モデルで、「いま行っている自分のタスクが、ほかの人の作業や開発作業全体にどのような影響を及ぼすのか」ということが分かりにくく、最終的にどのような結果になるのかという全体像をつかみにくい状況でした。しかし、チームという概念が導入されることによって、設計〜開発〜テストと、エンド・トゥ・エンドで開発にかかわれるようになり、全体像がつかみやすくなります。その結果、製品開発における個々人の責任が明確化するとともに、開発者のモチベーションも向上するという大きな変化がもたらされます。 ――文化が変化すると、これまでとのギャップに困ったりしないか? Ian氏 :会社によっては、すでにアジャイル開発手法を用いていたり、CMMI(Capability Maturity Model Integration)に基づく緻密な開発手法を採用したりしている場合もあります。しかしTeam Systemは、そのようなさまざまな開発プロセスや企業の開発文化に柔軟に対応できるように設計されています。Team Systemは、自身が持つ文化を強要するばかりではなく、既存の開発プロセスを取り込み、既存のプロセスとも親和性を持った新しい開発プロセスを独自に構築できる拡張性を備えています。 例えば、マイクロソフトのパートナー企業である富士通やアバナード(Avanade)、日本ユニシスといった企業は、洗練された独自の開発プロセスや開発方法論を持っています。これらの独自開発プロセスをテンプレートとしてTeam Systemの中に取り込み、開発に適用することが可能です。それによって開発プロセスのさらなる自動化を進め、既存の開発プロセスの生産性向上を促します。このようにユーザーは、既存の開発プロセスに合わせてTeam Systemをカスタマイズできるのです。 ――Team Systemの次期バージョンでは、どのような機能が追加されるのか? Ian氏 :現行製品であるVisual Studio 2005(VS 2005)の次バージョンとして、“Orcas”(開発コード名)を開発中です。この“Orcas”でも、現在のVS 2005同様、Standard/ProfessionalとTeam Systemという製品構成になる予定です。“Orcas”リリースにおいては Team System はよりチーム全体の開発生産性を向上させるための機能を提供する予定です。また、テスト分野に関しても注力しています。さらに “Orcas” の次のバージョンとなる“Rosario”(開発コード名)では、ビジネスとITの融合をさらに強化できるような数々の新機能を搭載する予定です。 わたしたちは「既存のどの問題を、どのように解決していくのか」ということを常に考えながら、製品の新バージョンで導入するフィーチャ(機能)のロードマップを決めています。“Rosario”で考えているのは、「チームの協力関係(コラボレーション)」で、チーム内部だけではなく、チームとビジネス・ユーザーとの関係、ITマネージャー/運用チーム/ヘルプデスクなどとの協調の関係を、どのようにすれば、より良くできるのかということです。2番目に考えているのが「ソフトウェアの品質を向上させるための拡張」です。特にテストの分野はこれまで以上に重要度が増していくと認識していますので、そこを引き続き強化するつもりです。3番目は「チーム全体としてのさらなる生産性向上」です。これらの考えに基づき、“Rosario”では、ソフトウェアの要求管理、変更管理、手動および自動のテスティング機能、プロジェクト管理機能、ビジネス分析などの新しいフィーチャの導入・拡張を検討しています。 ■ 開発作業を改善して開発生産性と品質を高める。プロジェクト・マネージャやチーム・リーダーならだれもが直面する問題である。しかしこれを実践するのは容易ではない。改善には自己否定が伴うものだが、長年に渡り築いてきた習慣や文化は、企業や組織に深く根をおろしており、さまざまな局面で自己否定を拒むからだ。一部のかけ声や自助努力だけでこうしたハードルを超えることは難しいかもしれない。しかし開発環境と一体化しており、デベロッパーが違和感なく導入できること、既存の開発プロセスに対応可能な柔軟性を備えることから、Team Systemが解決の糸口を与えてくれる可能性はある。大規模なアプリケーション開発において、無理や無駄があまりに多いと感じるなら、Team Systemがその突破口とならないかどうか、評価してみる価値があるだろう。
提供:マイクロソフト株式会社
企画:アイティメディア 営業局 制作:デジタル・アドバンテージ 掲載内容有効期限:2007年6月30日 |
|