第1回:システムの構築プロセス(開発と運用)を定義する#4

・ワークフローのどの部分をソース管理ツールに任せるか

社員が上流設計フェーズに参加できる能力としては、ALMを目的としているTFSでPLMを一緒に行うわけではないことを理解し、PLMの成果物やイテレーションを理解して、参加者としてPLMのタスクのステータスを推進していく必要がありました。PLMがTFS + MS Projectで管理されていようが、Git + Redmineで管理されていようが、PLMで定義された成果物に対するタスクのステータスを推進させていけば良いということになります。PLMのタスク化や成果物の定義などは、その組織や会社における製品戦略とのかかわりが強く、製品戦略における汎用的な手法(マーケティングなど)は、ALMのプロセス推進とは全く別物だからです。

一方、構築フェーズや運用フェーズでは、社員はALMの成果物とイテレーション、成果物に対するタスクのステータスを定義し、管理者として社外協力者やアライアンス、ベンダーなどをコントロールしていく必要があります。

必要な作業はロールの洗い出しと責務の定義、イテレーションの計画とイテレーション内のワークフローを構成するロールを策定することです。それらはTFSの運用設計であり、TFSにそのような機能があるわけではないからです。

前述(「プロセスを社内のワークフローに落とし込む」)のとおり、ロールには「プログラマー(コーダーを想定)」と「SE(コーダーとペアプログラミングを組む相手を想定)」および「ビルド管理者(開発責任者を想定)」を設定しました。このロールがワークフロー内でステートを推進していきます。イテレーションはワークフローのステートが完了まで行くことと換言できます。ステートが完了まで行くことで振り返りができ、次のイテレーションにフィードバックできるからです。CMMIの場合、確立されたプロセスに則った実践が、メンバーの習熟度を向上させるのに対して、Agileではイテレーションを繰り返すことでプロセスを完成させていく(または時代に合わせて変化させていく)というアプローチが採られることに注意が必要です。それが、Agile Unified ProcessではUnified Processを組織に合った形に合致させていくことを目的としているため、必ず次のイテレーションにフィードバックさせる必要があるということです。

このイテレーション内で、TFSの機能をどのように使い、運用としてどのようにプロセスを推進させていくかをブランチ機能や作業項目、ワークアイテム等のTFSの機能を使って解説していきます。

まず、Main、Dev、Releaseのブランチを作成します。この手順はVersion Control Guide (ex-Branching & Merging)[英語](http://vsarbranchingguide.codeplex.com/releases/view/117523)を元にしています。このサイトでは、サンプルコードおよび手順がダウンロードでき、ステップバイステップで構築を練習することができます。また、日本語の解説が必要な方はVisual Studio 2010版(http://vsarbranchingguide.codeplex.com/releases/view/90253)のものがあります。TFSを使ったプロセス推進自体は、Visual Studio 2013と大きく変わるものではありませんので、併せて参照してください。

・チームプロジェクトの作成

Microsoft Visual Studio Team Foundation Server Express 2013 with Update 3(http://www.visualstudio.com/downloads/download-visual-studio-vs)をインストールします(2014.9.8現在)。

サーバーは単一構成として、クライアントPCにすべて(SQL Expressなど)インストールします(詳細は後述「TFS ExpressとVisual Studio Onlineで提案書の画面写真を撮った」参照)。

標準インストールを行った状態でインストールに使用したアカウント(ローカルの管理者権限を持つもの)ですべての作業を行います。Expressエディションでは、単一サーバーで構成することのみが許されていますので、複数サーバーにおけるアカウントの設定やActive Directoryの設定、SharePointサーバーやMS SQL Serverアカウントとの関連、およびビルドサーバー、バックアップサーバーなどのアカウント連携について、後述「Visual Studio Onlineを提案してみた」で詳細を解説しています。

インストール後、DefaultCollectionというチームプロジェクトコレクションが作成されています。ここにチームプロジェクトを作ります。

Visual Studioを起動し、チームエクスプローラーを開きます(Visual Stidio 2013をお持ちでない方はExpressエディションを使います)。バージョンは同じでなければいけないので、 Team Foundation Server Express 2013にチームプロジェクトを作成する場合は、Visual Studio 2013を使います。またVisual Studio 2012以前を使いたい場合は、Team Explorer for Microsoft Visual Studio 2013を使って、チームプロジェクトを作る作業のみを行うこともできます(TBD:要確認)。

チームエクスプローラーでMain、Dev、Releaseフォルダを作成し、Mainを分岐に変換して、MainからDev、Releaseフォルダ内にそれぞれ分岐を作るという作業になります。

Mainからの分岐

簡単な変更を行い、チェックインします。ステートの管理とは、このチェックインの際、ワークアイテムの作業項目のステータスを変更することです。つまり、TFSは入力されたステータスを管理してくれますが、ステータスを変更するのはメンバーであり、ステータスが変更されるように制約を設置したり、ステータスが変更されたことを管理していくのはメンバーだということです。

これを実現していく方法には、チェックインポリシーや作業項目のカスタマイズ、ワークアイテムの設置などがあり、TFSがやらないこれらワークフローの部分について、学習する必要があることを理解してください。

チェックインポリシー:「第2回:システムリソースの一元管理(TFS)と分散管理(Git)」参照

作業項目のカスタマイズ:「第4回:TFSの構成と作業項目のカスタマイズ」参照

ワークアイテムの設置:「第5回:品質管理とTFSの運用手順」参照

About takao

I'm Microsoft MVP since June 2010.