60
Microsoft Team Foundation Service 入門 プログラミング生放送勉強会 第22回@松山 http://pronama.jp/22 2013/03/30() You&I

Microsoft Team Foundation Service 入門

  • View
    3.378

  • Download
    4

Embed Size (px)

DESCRIPTION

プログラミング生放送勉強会 第22回@松山での発表資料。 http://pronama.jp/22

Citation preview

Page 1: Microsoft Team Foundation Service 入門

Microsoft

Team Foundation Service

入門

プログラミング生放送勉強会 第22回@松山

http://pronama.jp/22

2013/03/30(土) You&I

Page 2: Microsoft Team Foundation Service 入門

ジコ、ショウカイ。

• H/N: You&I(読み:ユーアンドアイ)

• SNS:@you_and_i

• 出身:生まれも育ちも名古屋市

• 年齢:30代中盤

• 本職:商学部出身の職業プログラマ

• 言語:C++, C#, VB6.0, 日本語COBOL

• 所属:プログラミング生放送 名古屋支部

• 名古屋アジャイル勉強会2Team Foundation Service 入門

Page 3: Microsoft Team Foundation Service 入門

1 year ago…

愛知

×

愛媛Team Foundation Service 入門 3

Page 4: Microsoft Team Foundation Service 入門

This year…

名古屋支部

VS

四国支部Team Foundation Service 入門 4

Page 5: Microsoft Team Foundation Service 入門

ソウ、イウコト。

今回はプロ生の支部長が

Microsoft

Team Foundation Server

Team Foundation Service

でセッション対決をやります!5Team Foundation Service 入門

Page 6: Microsoft Team Foundation Service 入門

AGENDA

1. Team Foundation Serverとは

2. Team Foundation Serviceとは

3. Team Foundation Serviceの特徴

4. TFSの機能詳細(VCS)

5. TFSの機能詳細(自働ビルド&テスト)

6. TFSの機能詳細(作業項目トラッキング)

7. TFServiceのデモ

8. TFSとALM

Team Foundation Service 入門 6

Page 7: Microsoft Team Foundation Service 入門

1. TeamFoundationServerとは

Team Foundation Service 入門 7

Page 8: Microsoft Team Foundation Service 入門

1. TFServerとは (1/3)

• Microsoft VisualStudio 2005から登場した、ソフトウェアを速く、的確に構築するために必要な、堅実なコミュニケーション、コラボレーション、アプリケーション ライフサイクル管理のツールです。

• VS2005, VS2008, VS2010, VS2012と、VSのリリースと共にバージョンが更新されています。

• VS2012からは無償利用可能なExpress版も追加。

Team Foundation Service 入門 8

Page 9: Microsoft Team Foundation Service 入門

1. TFServerとは (2/3)

• TFServerで出来る事

1.バージョン管理システム(VCS)

2.自動ビルド&テスト(CI)

3.作業項目トラッキング

• TFSのVCS機能は、Subversionのような中央リポジトリ型のVCS。VS2012 Update2(まだ正式リリースされていない)からはgitが利用可能となる。

Team Foundation Service 入門 9

Page 10: Microsoft Team Foundation Service 入門

1. TFServerとは (3/3)

あと、細かい事は

四国支部長の

@nakaji さんに

聞くと良いですよ!http://www.slideshare.net/nakaji999/team-foundation-server-17995455

Team Foundation Service 入門 10

Page 11: Microsoft Team Foundation Service 入門

2. TeamFoundationServiceとは

Team Foundation Service 入門 11

Page 12: Microsoft Team Foundation Service 入門

2. TFServiceとは (1/2)

• Microsoftが2012年2月上旬にベータ版サービスとして提供を開始し、2012年11月に正式リリースとなった、Windows Azure Platform上で実装されているクラウドベースのWebサービス。

• http://tfs.visualstudio.com/

Team Foundation Service 入門 12

Page 13: Microsoft Team Foundation Service 入門

2. TFServiceとは (2/2)

• TFServiceで出来る事

1.バージョン管理システム(VCS)

2.自動ビルド&テスト(CI)

3.作業項目トラッキング

• ServerとServiceとで出来る事は基本的に同じ。

• 機能詳細の項で詳しく説明します!Team Foundation Service 入門 13

Page 14: Microsoft Team Foundation Service 入門

3. TeamFoundationServiceの特徴

Team Foundation Service 入門 14

Page 15: Microsoft Team Foundation Service 入門

3. TFServiceの特徴 (1/7)

• 価格 (1/3)

でもお高いんでしょう?

Webサービスの利用料はおいくらまんえん?

• PRICING information

• http://tfs.visualstudio.com/en-us/pricing/information

Team Foundation Service 入門 15

Page 16: Microsoft Team Foundation Service 入門

3. TFServiceの特徴 (2/7)

• 価格 (2/3)

無料プラン、あります。

• 5ユーザーまで

• 作成可能なプロジェクト数は無制限

• VCS(TFVC or git)

• 作業項目トラッキング

• アジャイルな計画ツール

• フィードバック管理

• 自動ビルド(Preview版)

• テスト管理(Preview版)

Team Foundation Service 入門 16

Page 17: Microsoft Team Foundation Service 入門

3. TFServiceの特徴 (3/7)

• 価格 (3/3)

有料プランは?

• 他のプランについては2013年中にアナウンス予定。

• 上位のMSDNサブスクリプション利用者は有料プランが追加料金なしで利用可能となる。

• Visual Studio Ultimate with MSDN

• Visual Studio Premium with MSDN

• Visual Studio Test Professional with MSDN

Team Foundation Service 入門 17

Page 18: Microsoft Team Foundation Service 入門

3. TFServiceの特徴 (4/7)

• 利用可能な開発環境 (1/3)

Microsoftから無償提供されているもの

• Visual Studio Express 2012

• for Windows 8

• for Windows Desktop

• for Windows Phone 8

• for Web

Team Foundation Service 入門 18

Page 19: Microsoft Team Foundation Service 入門

3. TFServiceの特徴 (5/7)

• 利用可能な開発環境 (2/3)

Microsoftから購入できるもの

• Visual Studio 2010 / 2012

• Ultimate

• Premium

• Professional

Team Foundation Service 入門 19

Page 20: Microsoft Team Foundation Service 入門

3. TFServiceの特徴 (6/7)

• 利用可能な開発環境 (3/3)

Microsoft以外のプラットフォーム

• Eclipse

• Microsoft Team Explorer Everywhereプラグインが必要

• Xcode (MacOSX)

• 任意のgitクライアント

• TFServiceのプロジェクトのVCS選択がgitリポジトリである必要あり

Team Foundation Service 入門 20

Page 21: Microsoft Team Foundation Service 入門

3. TFServiceの特徴 (7/7)

• Webサービスなので・・・

• サーバー管理は不要。

• 常にサービス内容がバージョンアップされている。TFServerに実装される新機能(例:gitリポジトリ)がいち早く利用可能となる。

• UIは全て英語となっている。

• 日本語版のVisualStudio上からなら日本語UIで操作は可能。ブラウザ上は英語のみ。

Team Foundation Service 入門 21

Page 22: Microsoft Team Foundation Service 入門

4. TFSの機能詳細(VCS)

Team Foundation Service 入門 22

Page 23: Microsoft Team Foundation Service 入門

4. TFSの機能詳細(VCS) (1/4)

• 先程も紹介したTFSで出来る事は・・・

1.バージョン管理システム(VCS)

2.自動ビルド&テスト(CI)

3.作業項目トラッキング

• TFSでは3つの機能がシームレスに連携できるように実装されているのが魅力。

Team Foundation Service 入門 23

Page 24: Microsoft Team Foundation Service 入門

4. TFSの機能詳細(VCS) (2/4)

• TFSではVisualSourceSafe(VSS)からの使い方の延長として、VCS機能のみを使うという使い方も可能。TFServiceでこの使い方をすると、GitHubやBitBucket的な使い方になりますね。

• 3つの機能について個々に詳しく見てみましょう。

Team Foundation Service 入門 24

Page 25: Microsoft Team Foundation Service 入門

4. TFSの機能詳細(VCS) (3/4)

1.VCS機能 (1/2)

TFSでは2つのVCSが選択可能

1.Team Foundation Version Control

2.git

• gitの使い方については@nakajiさんにお任せ!

Team Foundation Service 入門 25

Page 26: Microsoft Team Foundation Service 入門

4. TFSの機能詳細(VCS) (4/4)

1.VCS機能 (2/2)

1. Team Foundation Version Control

• 中央リポジトリ型

• チェックイン/チェックアウト

• VSSの時からcommitではない!

• シェルブ(shelve)機能

• shelve:棚上げする、隠す

• チェックイン前の状態の作業保存機能

Team Foundation Service 入門 26

Page 27: Microsoft Team Foundation Service 入門

5. TFSの機能詳細(自動ビルド&テスト)

Team Foundation Service 入門 27

Page 28: Microsoft Team Foundation Service 入門

5. TFSの機能詳細(自動ビルド&テスト機能) (1/5)

• なぜ自動化するのか? (1/2)

• トヨタ生産方式(TPS)に由来します。TPSでは特に「にんべんの付いた自働化」と言われます。

• 明治~大正時代において織機は各器械毎に人間が張り付いて異常がないか見張っていて、異常時には停止されるまで器械は動き続けてしまい大量の不良品を作ってしまっていました。

Team Foundation Service 入門 28

Page 29: Microsoft Team Foundation Service 入門

5. TFSの機能詳細(自動ビルド&テスト機能) (2/5)

• なぜ自動化するのか? (2/2)

• 豊田佐吉により発明された豊田自動織機は、問題が発生すると自動的に停止する仕組みを持っており、これにより1人で複数台の織機を運用できるようになり、生産性が格段に上がりました。

• 自働化の目的は、問題を早期に見つけて修正する事と、省人化にあります。

Team Foundation Service 入門 29

Page 30: Microsoft Team Foundation Service 入門

5. TFSの機能詳細(自動ビルド&テスト機能) (3/5)

• 自動テスト機能を利用するには、VisualStudio Test Professionalが必要。パッケージ購入で定価約26万円。なので説明は割愛!

• 自動ビルド機能は、一般的にはJenkinsが有名ですが、CI(継続的インテグレーション)と呼ばれる機能です。

Team Foundation Service 入門 30

Page 31: Microsoft Team Foundation Service 入門

5. TFSの機能詳細(自動ビルド&テスト機能) (4/5)

• 一般的にCIでは何らかのトリガーを受けて、予め設定されたタスクを実行します。

• TFSのトリガーの種類

• コードのチェックイン

• 手動実行操作

• スケジュール

• NightlyBuild/DailyBuild

Team Foundation Service 入門 31

Page 32: Microsoft Team Foundation Service 入門

5. TFSの機能詳細(自動ビルド&テスト機能) (5/5)

• ゲートチェックイン機能

• チェックイン内容がリポジトリに正しくマージされ、且つマージ結果のビルドが正常に完了する場合にのみチェックインを受け入れる機能。

• これによりリポジトリの内容は常にビルドが通る状態となる。

Team Foundation Service 入門 32

Page 33: Microsoft Team Foundation Service 入門

6. TFSの機能詳細(作業項目トラッキング)

Team Foundation Service 入門 33

Page 34: Microsoft Team Foundation Service 入門

6. TFSの機能詳細(作業項目トラッキング) (1/14)

• 作業項目トラッキングの機能

1. プロセステンプレートによる管理方法の選択

2. バグトラッキング(BTS)、課題管理(ITS)

3. タスクボード(KANBAN)による状況表示

Team Foundation Service 入門 34

Page 35: Microsoft Team Foundation Service 入門

6. TFSの機能詳細(作業項目トラッキング) (2/14)

1. プロセステンプレートの選択 (1/10)

作業管理方法は大きく3つ

1. Microsoft Visual Studio Scrum

http://msdn.microsoft.com/ja-jp/library/vstudio/ff731587.aspx

2. MSF for Agile Software Development

http://msdn.microsoft.com/ja-jp/library/vstudio/dd380647.aspx

3. MSF for CMMI Process Improvement

http://msdn.microsoft.com/ja-jp/library/vstudio/dd997574.aspx

Team Foundation Service 入門 35

Page 36: Microsoft Team Foundation Service 入門

6. TFSの機能詳細(作業項目トラッキング) (3/14)

1.プロセステンプレートの選択 (2/10)

1. Microsoft Visual Studio Scrum (1/7)

Scrumは、 野中郁次郎・竹内弘高両氏の1986年に発表された論文にて、企業における製品開発のプロセスがラグビーのスクラムのようであると例えられ、1993年にJeff Sutherland・Ken Schwabar氏らによってScrumとして構築された開発フレームワーク。

Team Foundation Service 入門 36

Page 37: Microsoft Team Foundation Service 入門

6. TFSの機能詳細(作業項目トラッキング) (4/14)

1.プロセステンプレートの選択 (3/10)

1. Microsoft Visual Studio Scrum (2/7)

Scrumの特徴

• 三本柱

• 四つのイベント

• 三つの役割

• 三つの成果物Team Foundation Service 入門 37

Page 38: Microsoft Team Foundation Service 入門

6. TFSの機能詳細(作業項目トラッキング) (5/14)

1.プロセステンプレートの選択 (4/10)

1. Microsoft Visual Studio Scrum (3/7)

Scrumの特徴について1つ1つ話すと長くなるので割愛!

• あまり良い資料ではありませんがこの辺の資料に詳しく書いてあります。

• http://www.slideshare.net/youandi060219/scrum-15316040

Team Foundation Service 入門 38

Page 39: Microsoft Team Foundation Service 入門

6. TFSの機能詳細(作業項目トラッキング) (6/14)

1.プロセステンプレートの選択 (5/10)

1. Microsoft Visual Studio Scrum (4/7)

いや、それが知りたい!って人は・・・、

明日来てね!

• 3/31 シマリスScrum@松山

• http://agile459.doorkeeper.jp/events/3260

お待ちしております!

Team Foundation Service 入門 39

Page 40: Microsoft Team Foundation Service 入門

6. TFSの機能詳細(作業項目トラッキング) (7/14)

1.プロセステンプレートの選択 (6/10)

1. Microsoft Visual Studio Scrum (5/7)

• 三つの成果物

1. プロダクトバックログ

2. スプリントバックログ

3. プロダクトインクリメント

• Scrumではプロダクトバックログを中心に物事が回っていきます。

Team Foundation Service 入門 40

Page 41: Microsoft Team Foundation Service 入門

6. TFSの機能詳細(作業項目トラッキング) (8/14)

1. プロセステンプレートの選択 (7/10)

1. Microsoft Visual Studio Scrum (6/7)

プロダクトバックログとは・・・

• 顧客がやりたい事をまとめたTODOリスト

• TODOの一つ一つは、PBI(ProductBacklogItem:プロダクトバックログ項目)と呼ばれる。

• PBIは、ユーザーストーリー形式で書かれる事が多い。

• PBIは、優先順位付けされている。

• PBIは、作業量が見積もられている。

• PBIは、タスクに分解されてスプリントバックログに入る。

Team Foundation Service 入門 41

Page 42: Microsoft Team Foundation Service 入門

6. TFSの機能詳細(作業項目トラッキング) (9/14)

1.プロセステンプレートの選択 (8/10)

1. Microsoft Visual Studio Scrum (7/7)

Microsoft Visual Studio Scrumで出来る事

• プロダクトバックログ&PBI管理

• リリース管理(1リリース=3~4スプリント)

• スプリント管理

Scrumに特化したプロセステンプレート。Team Foundation Service 入門 42

Page 43: Microsoft Team Foundation Service 入門

6. TFSの機能詳細(作業項目トラッキング) (10/14)

1.プロセステンプレートの選択 (9/10)

2. MSF for Agile Software Development

この管理方法で出来る事

• プロダクトバックログ&ユーザーストーリー管理

• イテレーション管理(=スプリント管理)

Microsoft Visual Studio Scrumからリリース管理がなくなっただけな感じ。Scrumに限らずアジャイル開発全般で利用可能なプロセステンプレート。

Team Foundation Service 入門 43

Page 44: Microsoft Team Foundation Service 入門

6. TFSの機能詳細(作業項目トラッキング) (11/14)

1.プロセステンプレートの選択 (10/10)

3. MSF for CMMI Process Improvement

CMMI(Capability Maturity Model Integration):能力成熟度モデル統合

この管理方法で出来る事

• プロダクトバックログ&要件管理

• イテレーション管理(=スプリント管理)

Team Foundation Service 入門 44

Page 45: Microsoft Team Foundation Service 入門

6. TFSの機能詳細(作業項目トラッキング) (12/14)

1.プロセステンプレートの選択 (11/11)

どのプロセステンプレートを選んでも、バックログ、PBI、タスクという管理方法は変わらない。

色々と説明が長かったけど、つまりどういう事だってばよ?

→Scrumやアジャイル開発を知らないと使うのは難しいかも・・・

Team Foundation Service 入門 45

Page 46: Microsoft Team Foundation Service 入門

6. TFSの機能詳細(作業項目トラッキング) (13/14)

2.バグトラッキング(BTS)、課題管理(ITS)

• 自動ビルドが失敗すると、自動的にバグチケットが発行される。

Team Foundation Service 入門 46

Page 47: Microsoft Team Foundation Service 入門

6. TFSの機能詳細(作業項目トラッキング) (14/14)

3. タスクボード(KANBAN)による状況表示

プロセステンプレート毎のタスクの状態遷移

• Microsoft Visual Studio Scrum

• NEW → APPROVED → COMMITED → DONE

• MSF for Agile Software Development

• NEW → ACTIVE → RESOLVED → CLOSED

• MSF for CMMI Process Improvement

• PROPOSED → ACTIVE → RESOLVED → CLOSED

Team Foundation Service 入門 47

Page 48: Microsoft Team Foundation Service 入門

7. TFServiceのデモ

Team Foundation Service 入門 48

Page 49: Microsoft Team Foundation Service 入門

7. TFServiceのデモ

1.TFS上でプロジェクト作成

2.TFS上でタスク作成

3.VS上でソリューション作成

4.VS上で自動ビルド設定

5.VS上でチェックイン

Team Foundation Service 入門 49

Page 50: Microsoft Team Foundation Service 入門

7. TFServiceのデモ

ね、簡単でしょう?by ボブ・ロス

Team Foundation Service 入門 50

Page 51: Microsoft Team Foundation Service 入門

7. TFServiceのデモ

え?なんだって?by 羽瀬川 小鷹

Team Foundation Service 入門 51

Page 52: Microsoft Team Foundation Service 入門

8. TFSとALM

Team Foundation Service 入門 52

Page 53: Microsoft Team Foundation Service 入門

8. TFSとALM (1/8)

• 最近は、DevOpsという言葉を良く耳にします。

• Dev = Development

• Ops = Operations

• DevOpsとは開発部門と運用部門そして品証部門の部門間における、コミュニケーション、コラボレーションの一連のメソッドやシステムの事。

Team Foundation Service 入門 53

Page 54: Microsoft Team Foundation Service 入門

8. TFSとALM (2/8)

• ソフトウェア開発する時って何を考えて開発をしていますか?

• イソ、ガッシイ。からと言われた通りの事しかやっていませんか?

• 作りっぱになっていませんか?

Team Foundation Service 入門 54

Page 55: Microsoft Team Foundation Service 入門

8. TFSとALM (3/8)

• ビジネスゴールを実現する為には、部門間の連携は必須ですね。その為には部門横断的な事が必要になるかも知れません。

• ここで肝になるのが、意思疎通/思想の共有だったり開発方法論で、これをツールなどを駆使して実現します。

Team Foundation Service 入門 55

Page 56: Microsoft Team Foundation Service 入門

8. TFSとALM (4/8)

• ALM(アプリケーションライフサイクル管理)では、開発・運用・品証はもちろんの事、営業等の会社組織全体で、作ってハイ終わりではなく、アプリケーションについて何の為に作るのか、それは売れるのか、誰が使うのか、いつまで使い続けるのかを一丸となって考えましょうという事です。

Team Foundation Service 入門 56

Page 57: Microsoft Team Foundation Service 入門

8. TFSとALM (5/8)

• TFSを使う事で、ALM環境を容易に構築出来ます。

• 冒頭でも紹介しましたが、TFSはソフトウェアを速く、的確に構築するために必要な、堅実なコミュニケーション、コラボレーション、アプリケーション ライフサイクル管理のツールです。

Team Foundation Service 入門 57

Page 58: Microsoft Team Foundation Service 入門

8. TFSとALM (6/8)

開発者は、

• 作ろうとするソフトウェアが・・・

• 何の為に作るのか

• 誰が使うのか

• 作ったソフトウェアが・・・

• どのように使われるのか

を意識して開発する事が大事だと思います。

Team Foundation Service 入門 58

Page 59: Microsoft Team Foundation Service 入門

8. TFSとALM (7/8)

• でも一番大事なのは、楽しく開発出来る事ですね。

• 楽しい開発環境

• 楽しい職場

• 楽しんで開発していますか?

Team Foundation Service 入門 59

Page 60: Microsoft Team Foundation Service 入門

8. TFSとALM (8/8)

え?なんだって?by 羽瀬川 小鷹

Team Foundation Service 入門 60