はじめに
チーム開発環境として定番化しつつあるバージョン管理システムやCI(Continuous Integration:継続的インテグレーション)、チケット管理システムについてVisual Studio Onlineでのサポート状況を概要レベルで紹介し、簡単に使用方法についても説明します。最後にライセンスについてもまとめます。
対象読者
- チーム開発環境の選定、インストール、設定の経験がある方
本稿で想定している環境
本連載で紹介するサンプルなどで実行している環境は次のとおりです。
-
Windows 7
- Internet Explorer 10
- Visual Studio Premium
また、動作確認を行ったWindowsの環境も上記と同様です。
チーム開発環境の準備は大変
新しくプロジェクトがスタートし、開発に取りかかる前までにすべき作業の一つに、チーム開発環境の準備があります。開発プロセスがウォーターフォールなのかアジャイルなのかに関わらず、複数人数で開発チームを構成する場合に、必須かつ定番の準備作業です。
しかし、この作業はタスクから漏れやすく、開発メンバーの増員が目前に迫ってから慌てて対応することが多いのではないでしょうか。そしていざ着手してみると、思ったより時間がかかります。
そんな煩わしい作業を軽減できるツールの一つに、Visual Studio Onlineがあります。Jenkinsなどのオープンソースによる構築は工数とスケジュールに余裕が必要です。しかし、Visual Studio Onlineならワンストップで、しかも簡単に環境が構築できます。
では、このVisual Studio Onlineを使用することで、どれぐらい便利にチーム開発環境が構築できるのかを見てみましょう。
ソース管理だけじゃない! Visual Studio Onlineはチーム開発環境
最低限のチーム開発環境の準備として、次の作業が挙げられます。
- バージョン管理システムの選定、インストール、設定
- CIの選定、インストール、設定
- チケット管理システム(サービス)の選定、(インストール)、設定
これらのすべての機能をVisual Studio Onlineは保有しています。クラウドサービスですから、当然インストールは不要です。プロジェクトに応じた設定をするだけですぐ使用できるため、準備をとても短時間で済ませられます。
バージョン管理システム
Visual Studio Onlineは、TFServer(Visual Studio Team Foundation Server)のクラウド版です。バージョン管理システムとしてTFServerが使用可能です。Visual Studio Online上のTFServerのことを、TFVC(Team Foundation Version Control)と呼びます。その他にはGitが使用できます。
CI(Continuous Integration:継続的インテグレーション)
Visual Studio Onlineの持つCI機能は次のとおりです。
- 自動ビルド
- 自動テスト
- 自動デプロイ
自動デプロイは、デプロイ先がWindows Azureでなければなりません。オンプレミスサーバーへのデプロイはサポートされていません。
チケット管理システム
Visual Studio Onlineはただのチケット管理システムではなく、開発プロセス内で使用することを想定したチケット管理機能があります。開発プロセスには次の3種類が用意されています。
- Microsoft Visual Studio Scrum 2013
- MSF for Agile Software Development 2013
- MSF for CMMI Process Improvement 2013
選択したテンプレートの違いは次項で簡単に説明しますが、どれを選択してもチケットの扱い方に差はありません。チケット管理のみ行いたい場合は、Microsoft Visual Studio Scrum 2013を選択しておけば良いでしょう。
2013年11月、Team Foundation Serviceは名称をVisual Studio Onlineに変えると同時にブラウザで開発を可能とする新機能、Monacoのプレビュー版をリリースしました。
実際に使用してみると、「ブラウザでここまでできるのか!」と感動を覚えるほどです。現場で使用するにはまだまだこれからなのかな、というのが現段階での印象ではありますが、それでもスクリプト言語の開発環境としてならばそれなりに使えそうです。ぜひとも正式リリースまでに実現してほしい機能としては、
- ブレイクポイントの設定
- ステップ実行の設定
などのデバッグ環境の充実があげられます。今後の機能拡張に大いに期待したいところです。
スクリプト言語開発環境として現場で使用してみたい方は、Microsoftの公式解説ビデオChannel9に"Monaco"によるnode.js、PHP、TypeScriptなどの実装解説ビデオが掲載されていますので、そちらを参照されると良いでしょう。
各機能の設定・使用方法
それでは、各機能をもう少し詳しくご紹介していきましょう。
開発ワークフローテンプレート
Visual Studio Onlineで行う最初の作業はTeamProjectの作成です。ここでは開発ワークフローのテンプレートを選択します。既定で用意されている3種類のテンプレートの違いは次のとおりです。
Microsoft Visual Studio Scrum 2013
- バックログの中にバグチケットを作成し、バグは発生したスプリント内で解決する。
- 3つの中でもっとも軽量。開発プロセスに囚われずに使用することができる。
- 作成可能なチケットはBug、Feature、Impediment、Product Backlog Item、Task、Test Caseの全6種類。
MSF for Agile Software Development 2013
- バグはストーリーとは切り離されており、別の管理となる。
- Scrumの形式は採用したくないが、Agile開発を行いたい場合向け。
- 作成可能なチケットはBug、Feature、Issue、Task、Test Case、User Storyの全6種類。
MSF for CMMI Process Improvement 2013
- 要求チケットは種類を指定して作成可能。種類はBusiness Objective、Feature、Functional、Interface、Operational、Quality of Service、Safety、Scenario、Securityの全9種類。
- バグは要求とは切り離されており、別の管理となる。
- 作成可能なチケットはBug、Change Request、Feature、Issue、Requirement、Review、Risk、Task、Test Caseの全9種類。
- 最も細やかな設定が可能。
どれを採用すれば良いのかは、大まかに次のような指針を参考にしてください。
Microsoft Visual Studio Scrum 2013は、基本的にバックログですべてのチケットを管理するため、見通しが良くチケットの管理がしやすくなっています。しかしプロセスを区切ることができません。とてもシンプルな構成のため、単なるチケット管理システムとして使用する場合にも問題なく使用できます。
MSF for CMMI Process Improvement 2013は、プロセスやカテゴリごとにチケットを作成することができるため、細やかな管理が可能です。しかし要求、Featureチケット以外のチケットはクエリーで検索しなければ見ることができません。チケットの種類が豊富なため、運用方法をある程度事前に決定しておかないとプロジェクトが混乱します。
MSF for Agile Software Development 2013は、Microsoft Visual Studio Scrum 2013とほとんど差がありません。名称が異なることとバグの扱いが変わるぐらいなので、バグをどのように扱うか、という視点からどちらにするか決めれば良いでしょう。
バージョン管理システム
TFVCとGitの2種類のバージョン管理システムが使用できるのは前述のとおりです。どちらを選択するのかは、最初にTeamProjectを作成するときに選択します。
TFVCを選択した場合、Visual Studioのチームエクスプローラーの表示は次のようになります。
![TFVC選択時のチームエクスプローラー](http://cz-cdn.shoeisha.jp/static/images/article/7582/7582_02.gif)
TFServerを使用した時と大きく変わる点がないことが分かります。
一方Gitを選択した場合、Visual Studioのチームエクスプローラーの表示は次のようになります。
![Git選択時のチームエクスプローラー](http://cz-cdn.shoeisha.jp/static/images/article/7582/7582_03.gif)
TFVC選択時とは少し項目が異なりますが、どちらを選択してもVisual Studio上で操作できるのはとても便利です。
CI用機能
Visual Studio OnlineでCIを実現するのは驚くほど簡単です。自動ビルド、自動テスト、自動デプロイいずれも「ビルド定義」画面で設定を変更します。
チームエクスプローラーの「ビルド」をクリックし、ビルドの設定を表示します。
![ビルド設定画面を表示](http://cz-cdn.shoeisha.jp/static/images/article/7582/7582_04.gif)
まだ、ビルド定義を作成していない場合は「ビルド定義の新規作成」リンクをクリックします(認証用のブラウザダイアログがポップアップする場合があります)。
![ビルド定義を新規作成](http://cz-cdn.shoeisha.jp/static/images/article/7582/7582_05.gif)
すでに作成済みのビルド定義を変更する場合は、ビルド定義を右クリックし、「ビルド定義の編集」を選択します。
(1)ビルド
ビルド定義の「トリガー」タブをクリックすると、どのタイミングでビルドを起動するのか選択する画面になります。
ここで「継続的インテグレーション」を選択すると、チェックインのたびにビルドが起動するようになります。このように驚くほど簡単に自動ビルド環境が整います。一点注意が必要なのは、ビルド時間の合計が60分/月を超えると従量課金となることです。
(2)テスト
ビルド成功後にテストが自動的に起動するように設定するには、既定で*test*.dllという命名規約に沿うようにテストプロジェクト名を付ける必要がありますが、この命名規約はカスタマイズ可能です。ビルド定義の「プロセス」タブをクリックすると、ビルド時の処理を設定する画面になります。この画面の自動テストの項目が、自動テストに関する設定可能な箇所になります。
(3)デプロイ
デプロイ先がWindows Azureの場合は、自動デプロイすることができます。初期設定はWindows Azure管理ポータルから行い、初期値変更はVisual Studioから変更します。
初期設定はWindows Azure管理ポータルからデプロイ先のWebサイトまたはクラウドサービスを開き、クイックスタートのソース管理の統合にある「ソース管理からのデプロイの設定」リンクから設定を行います。特に難しい設定はないので説明を割愛します。
この方法でデプロイ設定を行うと、新しくビルド定義が追加され、ビルドのトリガーが「継続的インテグレーション」になるので注意してください。
作成されたビルド定義をVisual Studioで開きます(チームエクスプローラのビルドに表示されます)。
![追加されたビルド定義](http://cz-cdn.shoeisha.jp/static/images/article/7582/7582_09.gif)
左側の「プロセス」を選択して表示される画面のうち、「7.Publishing -- Azure Cloud Service」と「8.Publishing -- Azure Website」が初期値を変更する箇所です。何も表示されていませんが、何も設定しない場合は初期値を使用することを意味します。
初期値は次のようになります。
項目名 | 初期値 |
---|---|
Allow Upgrade | True |
Alternate Cloud Service Environment | Staging |
Alternate Cloud Service Name | 配置先のサービス名 |
Alternate Deployment Label | 配置先のサービス名 |
Alternate Publish Profile | ServiceConfiguration.Cloud.cscfg |
Alternate Storage Account Name | (1) |
Web Deploy Publish Profile | .azurePubxml |
Alternate Storage Account Nameが空白(初期値)の場合(表中1)、ストレージアカウントは次の優先順位で使用するアカウントが決定されます。
- クラウドサービスと同じ名前のストレージアカウント
- 1以外のストレージアカウント
- ストレージアカウントが1つもない場合、新規にアカウントが作成される
チケット管理
チケットの作り方・状態変更の方法は3つの開発プロセス(Microsoft Visual Studio Scrum 2013、MSF for Agile Software Development 2013、MSF for CMMI Process Improvement 2013)のどれを採用しても同じです。
(1)メインのチケットとタスク
採用した開発プロセスに応じてバックログ、ストーリー、要求と名称が異なりますが、これら3種のチケットとFeatureチケットが開発時のメインのチケットです。これらメインのチケットを実作業レベルまで細分化した作業用のチケットを、タスクチケットと呼びます。タスクチケットは、メインのチケットを親として複数作成することができます。
では、メインのチケット作成からタスクチケットの作成までの一連の作成方法をご紹介します。
まずメインのチケットを作成し、次にメインのチケットをどのスプリント(イテレーション)で解決(実装)するのか割り当てを行います。割り当てを行うと、メインのチケットにリンクしたタスクチケットを作成できます。
(2)バックログ、ストーリー、要求チケット、Featureチケットの作成
メインのチケットに限らず、すべてのチケットはTeamProjectのHome画面に表示されているWorkエリアにある「Create New」リンクをクリックすることで作成できます。
メインのチケット作成は、WORK画面から行うことも可能です。画面上部のメニューバーに表示されているWORKをクリックすると、メインのチケットを管理するWORK画面になります。画面上のNewエリアでタイトルを入力し、Addボタンをクリックするとメインのチケットが作成されます。
(3)バックログ、ストーリー、要求チケット、Featureチケットを計画に割り当て
次に、メインのチケットをスプリント(イテレーション)に割り当てます。チケットをダブルクリックして詳細ウィンドウを表示し、スプリントを設定する方法もありますが、チケットをスプリントにドラッグ&ドロップする方が簡単です。
(4)タスクチケットの作成
スプリントに割り当てたメインのチケットを作業単位に分割します(リンクしたタスクチケットを作成します)。まず、表示されている画面をいずれかのスプリントの画面に切り替えます。表示さているメインのタスクの左側の緑色の+をクリックすると、タスクの追加ウィンドウがポップアップします。
この方法でしかタスクチケットを作成できない訳ではありません。先にタスクチケットを作成し、メインのチケットにリンクすることも可能です。チケット間のリンク設定は実にさまざまなパターンが用意されていて、とても柔軟に設定することができます。
しかし、WORK画面のスプリントの一覧表示で親子関係を視覚的に見ることができるのはバックログ、ストーリー、要求、Featureチケットだけであることは残念です。
リンクの設定は、チケットの詳細ウィンドウのLINKSまたはALL LINKSから行います。
(5)チケットの状態変更
チケットのステータス変更は、基本的にはチケットをダブルクリックするとポップアップする詳細ウィンドウで変更しますが、バックログ、ストーリー、要求、Featureチケットとそれにリンクしてあるタスクチケットに限り、Task Board(かんばん)でステータスを変更できます。
上部メニューバーでWORK画面をクリックし、画面中央部のBoardをクリックするとTask Board画面に切り替わります。
画面は右から左へと行くに従い、ステータスが遷移していくことを意味します。ステータスの遷移は、チケットをドラッグ&ドロップすることで簡単に行うことができます。
ステータス名やステータス数は自由にカスタマイズすることができます。Task Board画面でCustomize columnsリンクをクリックします。
ステータスカスタマイズ用のウィンドウがポップアップします。この画面でステータス名、ステータス数などが設定可能です。
このカスタマイズは、あくまでもTask Board画面の表示上の変更です。各チケットの詳細ウィンドウのStateに表示されるステータス値まで変更されるわけではないため、注意が必要です。
Visual Studio Online のライセンス種類と料金
ライセンス種類と料金について箇条書き+表にまとめてみました。Visual Studio Onlineはプレビューなので、あくまでも現段階(2014年年初)のものであることにご注意ください。
- Visual Studio Onlineライセンスは、TeamProjectを作成するメンバーだけが保有していれば良い。他メンバーはMicrosoftアカウントを持つ必要があるが、Visul Stduio Onlineのライセンスは不要。
- ライセンスはBasic、Professional、Advancedの3種類。ライセンス別に使用可能な機能の違いがある。詳細についてはこちらを参照。
-
次のMSDNライセンスを持つ場合、Advancedライセンスと同等の機能を使用可能。
- Visual Studio Ultimate with MSDN
- Visual Studio Premium with MSDN
- Visual Studio Test Professional with MSDN
- MSDN Platforms
- Microsoft BizSpark
- Visual Studio Professional with MSDNはBasicライセンスと同等。
- 基本的にメンバーを追加するごとに料金がかかる(Basicライセンスだけはメンバー5名まで追加無料)。追加できるメンバー数に上限が存在するライセンスがある(Professionalライセンス)。
-
ただし、追加メンバーが次のMSDNライセンスを保有している場合は料金は発生しない。
- Visual Studio Professional with MSDN
- Visual Studio Test Professional with MSDN
- MSDN Platforms
- Visual Studio Premium with MSDN
- Visual Studio Ultimate with MSDN
- ProfessionalライセンスはVisual Studio Professional IDEの毎月のサブスクリプションを含む。そのためか、Basicライセンスのようにメンバー5名追加までは無料、という特典はない。
- ライセンスと追加メンバー上限数・メンバー追加時料金は次のとおり。ただし、これは現在Visual Stuido OnlineがPreviewリリースによるため正規の半額料金。
BASIC | PROFESSIONAL | ADVANCED | |
---|---|---|---|
ユーザー数上限 | 無制限 | 10 | 無制限 |
料金 | 5ユーザーまで無料、追加ユーザーは1,020円/月 | 2,295円/月 | 3,060円/月 |
ビルド時の料金はライセンス問わず1か月60分までは無料。60分を超えた場合の料金は2.55円/分。
なお、Visual Studio Onlineは全世界で利用できますが、顧客データは現在米国中北部リージョンでホストされています。
まとめ
本稿では、ワンストップでチーム開発環境の構築が可能なVisual Studio Onlineについてご紹介しました。チケット管理だけでも、リポジトリ管理だけでも使用することができ、開発プロセスに応じた使用も可能でとても柔軟なシステムであることが分かります。ぜひこの機会にBasicライセンスを取得し、試しに使用してみてください。きっとその使いやすさに驚くことでしょう。