96 4 , 6 第 4 章スプリントの実行 2. プロジェクトの管理者権限を持つチームメンバーは、新しいクエリや新しい データバインド Excel ワークシートまたはクエリを使って、すべてのダッシ ュポードをカスタマイズできます。 3. プロセステンプレートをカスタマイズして、すべてのプロジェクトで仕様に 沿った顧客向けのダッシュポードセットを用意することができます。 ダッシュポードは SharePoint に依存しているので、 TFS のフルインストール ( 基 本構成ではなく標準構成または、拡張構成 ) が必要です。また、チームメンバーが SharePointEnterprise クライアントアクセスライセンス (CAL) を持っていること も必要です ( 基本構成を選択して TFS をインストールすると、 SharePoint および SQL Server Reporting Services がスキップされ、ダッシュポードは使用できませ Microsoft OutIook によるスプリントの管理 Team Web Access 、 SharePoint 、 Excel 、および Visual Studio 統合開発環境で TFS によって直接提供されるツールに加え、 Ekobit 社が TeamCompanion という 製品を提供しています。これを使用すると、図 4-11 のように、 Microsoft Out100k からスプリントを管理できます。 TeamCompanion は、初めは電子メールと TFS の 作業項目を簡単に統合するためのものでしたが、その後、 TFS 用の高機能なクライ アントへと成長し、スプリントのステータスを確認するための便利な手段になって います。
( 21 ) はじめに VisuaI Studi0 2010 の基本情報 本書で Visual Studio について書いているときは、製品群全体を指していると考え てください。図 1 に示すように、 VisualStudi02010 製品ファミリーは 1 つのサーバー と、いくつかのクライアント側ツールから成ります。 VisualStudio UItimate では、 すべてのクライアント側ツールを利用できます。 StUdio Ultimate Test PrOfessional ~ 自レ ノ ロ Team Server Management △図 1 Visual StudiO 2010 のサーバーは TFS と Lab Management から成る。 Visual studio U は imate では各種クライアントコンポーネントをすべて利用できる。 Team Foundation Server (TFS) は ALM の基幹であり、ソース管理、ビルドの 自動化、作業項目の追跡、テストケース管理、レポート、ダッシュボードを提供し ます。 TFS の一部である Lab Management は、 TFS のビルド自動化を拡張して、 物理的および仮想的なテスト環境を開発プロセスに統合します。 TFS を持っていれば、「チームエクスプローラー」と呼ばれるクライアントを使 用できます。チームエクスプローラーはスタンドアロンで起動することも、 Visua1 Studi 。統合開発環境のプラグインとして起動することもできます。 Team Explorer Everywhere は、 Java で書かれた同等のクライアントであり、 Eclipse プラグインと して起動できます。また、 Web インターフェイスとして使用できる Team web Access や、 Microsoft ExceI または Project から接続するためのプラグインもありま す。また、 ShareP 。 int でホストされる各種ダッシュボードも利用できます。
第 10 章継続的フィードバック 。 P ・ "C X 272 (saas) として利用できるようにする取り組みを進めています。図 10-12 に例を示し います。 Microsoft は TFS を Windows Azure 上に実装し、 S0ftware as a Service です。 Microsoft は、クラウドプラットフォームとして Windows Azure を提供して 変革としてコンピューティング業界の注目を集めているのが「クラウド (cloud) 」 最も重要な話を最後まで残しておきました。インターネットの普及以来の大きな クラウドでの TFS ます。 第 W ( 取区 - 0 X S ( を 。 : , 物、ェ om 「を物しにツ : を 1 澱第 0 ・ ま【 0 物 0 'tems Sprint Backlog 製 oMy を学年飛第 0 資内ぉ物 1 ー ( ases △図 10-12 10 ・ユーザ - の量 ユーザー第性の測 . ・出′ ユ - ザーラープ見計 一当 d す 0 象を 10 を、第一 es い第に : 10 所 od し ( : は rn こユーザー ューザーの登録 第物“まミ em の登録 Windows Azure 上の Team Foundation Service は、 URL が異なる点を除き、オ ンプレミスの TFS と同様である。 URL が異なる点以外は、 Team Foundation service とオンプレミスの TFS に見 た目上の大きな違いはありませんが、クラウド版の最初のリリースには、機能上の 空白部分がいくつかあります。しかし、いずれは Azure のアーキテクチャが主流に なり、これまでのアーキテクチャに代わって使用されるようになるでしよう。最も 重要なのは、現在、ホストべースの TFS は 0.999 のサービスレベルアグリーメント (SLA) で稼動しているという点です。 0 これは、ホストべースの TFS がこれから も世界各地のチームのために恒久的に稼動し続けるであろうということを意味して います。 0 0.999 という数値は、 1 か月のうち 40 分間が保守のためのダウンタイムであることを表す。
2.33 2.3.4 2.3.5 2.3 プロセスサイクルと TFS トの最終日は、レピューとふりかえりにあてられます ) 。これにより、スプリント期 間の 90 % がスプリントバックログの作業にあてられます。 ポトムアップサイクル リリースとスプリントという 2 つのマクロサイクルに加え、 TFS では、チェック インとテストという 2 つのきめ細かなサイクルを使用して、データの収集および自 動化のトリガーを行います。この方法により、 TFS はユーザー側の負担を増やさす に、「完了」の定義を自動化し、プロジェクトメトリクスを透過的に収集できるメカ ニズムを実現しています。 個人的な開発準備 詳しくは「第 6 章開発」で説明しますが、 Visual Studi 。は開発者に対して、テ スト駆動開発や、 IntelliSense による正しい構文への支援、ローカルビルド、テスト およびチェックインポリシーによるレビューによるエラーチェックを実践し、継続 的にフィードバックを得られる仕組みを提供します。これらは個人的な活動であり、 開発者がチェックインすると決めないうちに、 Visual Studio がこれらの活動から生 じたデータを収集することはありません。 チェックイン TFS がデータの収集やワークフローの適用を行う際に、その最も小さい単位とな るのは、チェックインと呼ばれるコーディングサイクルです。チェックインとは、 要するに、開発者が個人的なワークスペースから共有の分岐にコードを引き渡すこ とです。このサイクルは、きちんと動作するコードの「完了」を測定する最初の機 会となります。チェックインサイクルに対する最も一般的なアジャイルプラクティ スは、継続的インテグレーションという処理であり、チェックインが行われるたびに TFS のビルド定義に基づいてチームビルドをトリガーします。チームビルドは、す べてのコントリビューターのすべてのチェックインソースのうちで最新のバージョ ンを取得し、ビルドサーバーをプロビジョニングし、定義されたビルドワークフロー を実行します ( これには、コード分析、テスト環境へのデブロイ、またはビルド内 で定義されているビルド検証テストが含まれます ) 。詳細については、「第 7 章ビ ルドとテスト環境」を参照してください。
236 第 9 章 Microsoft DeveIoper Division で得た教訓 私は 2003 年に Microsoft DeveI 叩 er Division (DevDiv) に加わり、世界で最も人 気がある「個人向け」開発環境である Visual Studio (VS) を、世界で最も人気があ る「チーム向け」開発環境に変えるというビジョンに関与することになりました。 それはもちろん、顧客のために最新のソフトウェア工ンジニアリングプラクティス を取り入れるということでした。 同時に、 DevDiv は自分たちのアジリティを改善するという重大な課題にも直面 していました。我々のチームに求められたのは自らの文化やプラクティスやツール を見直すということであり、 つきませんでした。そして、 この先どれほど長い道のりが続くのか、私には見当も この興味深い旅は今も続いています。 ます、この仕事の規模をおさらいしておきましよう。 DevDiv の担当は、 VS 製品 ラインと . NET Framework を提供することです。この章では、 . NET Framework 2.0 を使用する VS 2005 と、 . NET Framework 3.5 を使用する VS 2008 のリリース を比較します。・これらのメジャーリリースは、世界中で何百万人ものユーザーが 使用しています。サポート契約の期間は 10 年です。 9 つの言語でローカライズされ ています。 3 , 500 人を超えるエンジニアが、このスタックのリリースに取り組んでい ます。 DevDiv が利用している Team Foundation Server (TFS) では、 20 , 000 , 000 個を超えるソースファイル、 700 , 000 件を超える作業項目、 2 , 000 件を超えるマンス リービルド、および 15 テラバイトを超えるデータを管理しています。・ また、自社製品とプロセスの「ドッグフーディング」も継続的に行っています。 これはつまり、顧客にリリースする前に社内で使ってみるということです。たとえば、 階層的なプロダクトバックログが初めて正式にサポートされたのは TFS 2010 です が、我々は TFS 2005 の時点で階層的なプロダクトバックログを実装しており、社 内で使用した経験に基づいて TFS 製品に変更を加えました。次の章では、社内で一 足先に体験し、 VisuaI Studio 11 ( 開発コード名 ) でリリースされる予定のさまざま なプラクティスについて説明します。 弊社製品をご利用いただいている多くの顧客と同様、我々も、 TFS を利用するに Visual Studio 統合開発環境、 TFS 、および ALM コンポーネント ( 以前の Team System) の細かい区別 はしないものとする。また、これらのメジャーリリースの合間に公開された数多くの強力なツールや lnternet lnformation Services (IIS) 、 ASP. NET 、 Silverlight などのリリースについても触れないものと する。 ンスについて説明している。 ①便宜上、この章ではこれらを VS 2 開 5 と VS 2 開 8 と呼び、 . NET プラットフォームコンポーネント、 ② Microsoft にはその他に約 30 個のインスタンスがあるが、ここでは私が直接扱った DevDiv のインスタ
2.3 プロセスサイクルと TFS 35 ディリースクラムは、コミュニケーションを向上させ、他のミーティングをなくし、 開発の懸案事項になっているものを特定して取り除き、迅速な意思決定を促進し、 プロジェクトに対する全員の理解レベルを向上させるのに役立ちます。 TFS ではディリービルドを必須としておらず、プロセスルールでディリーサイク ルとテストサイクルの組み合わせが要求されることはありませんが、ディリーサイ クルとテストサイクルを同じ扱いにしておくと利便性が確実に向上します。 TFS は、 前述の 3 つの質問に対する備えとして大いに役立ちます。 ・図 2-7 および図 2-8 が示すとおり、「ビルドの詳細」ページの自動化されたリ リースノートと MTM の推奨テストは、 1 つ目の質問に関する前提の不一致 を解消するのに役立ちます。 ■「自分のアクテイプな項目 ()y Active ltems) 」クエリは、 2 つ目の質問に 致しなければなりません。 ・図 2-9 に示す「懸案事項を開く (Open lmpediments または Open lssues) 」 クエリは、 3 つ目の質問に一致しなければなりません。 これらのツールは、ディリースクラムの代わりにはなりませんが、記録データに ついての言い争いを避ける効果はあります。これにより、チームメンバーたちはミ ティングの場で誰のデータを信頼するかという問題よりも、大事な対人コミュニケー ションに集中できます。
はじめに Visual studio Premium を使用すると、「第 6 章開発」で説明するシナリオをコー ド作成作業に適用できます。 Visual Studio Test ProfessionaI は、 VisuaI Studio の名 前が付いていますが、統合開発環境に属さない独立したアプリケーションであり、 テスト担当者を念頭に置いて設計されています。第 8 章では Test Professional の例 を多数紹介します。 Visual studio UItimate は Test Professional を含み、第 5 章で 解説するアーキテクチャモデリングやアーキテクチャ探索の機能を追加します。 TFS の拡張性を活かし、 TFS の上層にさまざまなクライアント体験を追加する パートナー製品も数多く存在します。図 2 は、 MindManager 、 Microsoft Word 、 Microsoft Outlook を TFS のクライアントとして使用するサードバーティの機能拡 張の例です。 http: 〃 www.visualstudiowidgets.com には、さまざまな拡張機能の一 覧が掲載されています。 ( 22 ) Ekobit TeamCompanion により、 Microsoft Ou れ 00k を使用して TFS に接続 - ー 000 しを 0 社い 0 ( 引 - ト物 0 第材ー 0 20 を 内 0 “ 0 山 0 はを "h 5 【 h ・ 0 リ池 4 社皺れト物は New WO 市 ーれ知を動•nd k ド Add WO 3 」 003W0 市′ m ・ 、内。ドは H 。飛 飛ー ` 第一 Quew tO WOti ー′第物を m 行 om k を′ぐを 50b Ⅲゆむ 0 郎ー " ・ 000 ー心 5 第、れ ; 新 0 ′ いいに・朝 ! 0 ・加 ・ 0 ′ : ー・ OW を改ー A00 ・トれは市 0 面 ーリ 0 鼬 Wrong 0 ′ 0 ( 0 0 載ー・ 0 ー 0 第れ一 m 円 0 製′ m 、 0 ・を 0 一員 当」 0 れ d ; 第内 0 は u は日・ ( い 00 ' ”和 00 山 00 、言日・ 0 第内一Ⅲ : を 、 / ー 5 ′ ( h ド 0 にを ・一を一 m ( 0 第 p ー 20n : 第 0 社を 0 を m ー ツ」 5 を動【 hF 引 d 物、 ・一ー 3E0 をル 0 員 ( 0 を ( む On ー島ル 0 ~ mo 、、。」 00 ( um を 0 ( ′ 00 れ” Subjea 00K を 0 ル 朝第 0 ( を 00 ` ド“加′・ qu ・化 Prcxluct and lt “・。れ ( k 9 。。 m ー明 and P 。市レを Michael A 付ーⅲ、 mid材ー@せ5」00謝》 t 価 0 域・ 0 ー、′ 5 載 4 引加加ー .o 義 M ノ 0 リは望ー R 朝鱸 をは 20 朝 00 の新 010 MO ま叩 ~ 第 . ー加 4 A 、地 1 を・ mmen 山 e 3 3W0 ( ′レ b 地 u 場市聞 dd ′ 0P3 あ ー Ad 聞めれ w い 0 め曲出山 2 backlog using drag and 山叩・に 0 リいを齢 Qelet• A れ h ~ 0 第 50n n 、 OfhOw ーを n め n 物再ル u tOlO 破版を . れ第 ( h M 第は 0 WO nem ー 0 ル物′ m い ー 0 ~ POW き「 U 、を′ and n b ・改 ArtiSO Requirements Mapper により、 AIT WO 「 dtoTFS により、 Microsoft word を TFS のクライアントとして使用 Mindjet MindManager を TFS のクライアントとして使用 TFS を拡張するさまざまなバートナー製品が提供されている。この図では A 「 tiso Requirements Mapper 、 Ek0bit TeamCompanion 、 AIT Wordt0TFS という 3 つの 拡張機能を使用している。 0 12 を、′ツ ー「物れ要′ R に q を、い △図 2
第 2 章スクラム、アジャイルプラクティスと VisuaI Studi0 がいくつか用意されています ( 図 2-10 を参照 ) 。これらのタスクポードでは、 TFS の作業項目を視覚的に操作でき、またスプリントの状況を一目で把握することがで きます。自動化されたタスクポードは、チームやスクラムが地理的に離れた場所に 分散しているときは特に便利です。たとえば、複数のサイトのミーティングエリア に大きなタッチスクリーンを設置し、それと同じ内容を他のメンバーがノートパソ コンから見ることもできます。全員が同じ TFS データベースに接続するので、誰も が同じ最新の情報を見ることになります。 38 : : ・ⅵ St 面け期 0 れ第増目 第項目 : 0- にルド 0 0 To ・ 0 0 ☆を・物 TO の ~ ☆を一 0 多くの TFS アドインは、プロダクトバックログとスプリントバックログをタスク ポードとして表示する。このアドインは Urban Turtle と呼ばれるもので、 http:// urbanturtle.com から入手できる。 Microsoft でも、こうしたツールを使ってレドモンド、ローリー 、ノ、イテ・ラノヾード、 上海、および多数の小規模サイトの間でスクラムチームの調整を行っています。「第 10 章継続的フィードバック」では、我々が Microsoft 内部で使用しているタスク ポードを次期バージョンの TFS にどのように組み込んでいるかを紹介します。 タスクポードの歴史をひもとくと、アイデアの伝播という興味深い研究テーマが 見えてきます。アジャイルチームのためのタスクポードは、トヨタの大野耐ーがジャ ストインタイム生産方式で提唱した「かんばん」を模して作られました。大野は、 1950 年代に米国のスーパーマーケットで商品の棚入れがどのように行われているの かを観察し、そこから独自のモデルを生み出しました。・彼は、スーパーマーケッ トの商品の棚入れ作業が店員ではなく卸売業者によって行われていることと、たと えばスープ缶の奥に置かれたカードがその棚にスープを追加せよという合図になっ ・ Ohno, ん ) , 0 Pro イ〃 c 行 0 〃 S ) , 立夜〃 , 26. △図 2-10
20 第 2 章スクラム、アジャイルプラクティスと VisuaI Studio するために Visual Studio ( 主として Team Foundation Server : TFS) が提供する メカニズムを紹介します。「第 1 章アジャイルコンセンサス」では、チームの外側 の視点からチームにとって何が必要かを示しましたが、この章では、チームの内側 の視点から、実践に役立つツールを紹介します。 VisuaI Studio とプロセスの実践 定義されたソフトウェアプロセスに沿ってチームが作業を進行できるようにする ために、 VisuaIStudio は次の 3 種類のメカニズムを提供しています。 1. 第 1 章で説明したように、 TFS はバックログ、ワークフロー、ステータス、 およびメトリクスを記録します。これらによって、作業の透明性が確保され、 次に行うべき適切なアクションがユーザーに示されます。また、 TFS は作業 が確実に「完了 (done) 」するようにサポートし、警告や可視化によって、技 術的負債の蓄積を防ぎます。 2. TFS で追跡するチームプロジェクトの基本になるのは、プロセスの標準のワー レポート、ロール、および成果物を定義したプロセステンプレー クフロー トです。多くの場合、これらはチームプロジェクトの進行に伴い後から変更 されます。プロセスの理解が深まるにつれて、調整の必要が出てくるからです。 しかし初期段階では、選択したプロセステンプレートに従って既定の設定が 適用されます。 3. 統合開発環境クライアント (Visual Studio または Eclipse) では、ポリシー を確実に遵守し、ポリシー違反時に警告が明示されるようにするために、サー バーと対話的な作業を行います。 スの記録に使用するデータベーススキーマが決まるからです。チームメンバーがチー それによって、チームメンバーがバックログの管理、作業の選択、およびステータ タル、および成果物を定義します。この中で最も注目すべきは作業項目の種類です。 の作業項目の種類、レポート、クエリ、ロール ( セキュリティグループ ) 、チームボー プロセステンプレートでは、チームのワークフローをサポートするために、既定 プロセステンプレート
副作用の発見 6.5.2 6.5 実稼動環境で発生した問題の原因究明 155 IntelliTrace と同様の機能を実稼動環境でも使用できるようにするために、 TFS を運用環境に統合することができます 0System Center Operations Manager により、 「 Operational lssue ( 運用上の問題 ) 」という新しい種類の作業項目を TFS に通知で きます ( 図 6-29 を参照 ) 。 い k 、 . 、 ho 物、、 ~ 0 ー 0 ロ”可ーれ、リ討”市 0 ( 川、飛 0 つ んいⅸ新 E に 0 y 自 , ロ 0 ~ 厖第い 0 町ぎ当 - の 物ー w ・ 3 : 第」つみいにツはいコ - ( をⅸ・タおー物 : て p ; 区・ ts 庇をの - 、′宀れ F ルを← -. W 、 - ・、一 . E ′ , Ⅳをを . 0 0 ヨ w 、 : れ、あーー、朝を当・いを・斌 k な E00 秋 ねレー kam 日れ W ・ b. Ⅵ・ MOd ・ ls 上 0 ドを R ・ 0 第 0 れ・ wMOd ・ tC 町 物ル資 WC P ・ : 内 / Em メ 0 ” d 料同 : 1 0 EYI をを ョ ト宀ま物・あ物 を一コ蠶物 ~ 日 ヨご 0W0 をを第 4 国こ」に △図 6-29 Microsoft System Center Operations Manager 2007 R2 と TFS 2010 用に提供さ れているコネクタを通じて、 OperationaIIssue が自動で TFS に表示される。 Operational lssue として示される内容は、 IntelliTrace のログと似ています。 Operational lssue を開くと、イベントが発生した正確な状況、発生の繰り返し、類 似したイベント、関連したイベント、パフォーマンスカウンター、例外、パラメーター スタックトレース、該当するコードが表示されます ( 図 6-30 を参照 ) 。さらに、マ ウスのクリックでコードの実行コンテキストからソースビューに移動でき、適切な 分岐でエラーを修正して運用向けの新しいビルドを生成できます。