とある案件のTFS導入事例
by
Hidetake Iwata
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
2012.2.20 第4回TFSUG #tfsug @int128
Slide 2
Slide 2 text
自己紹介 INTRODUCTION
Slide 3
Slide 3 text
いわてぃ @int128 http://d.hatena.ne.jp/int128/ SIerに勤務するエンジニア。 WordやPowerPointより、 コードを書いているほうが好きです。 2007 2012 2008 2009 2010 2011 インフラエンジニア プログラマ スーツ的な仕事?
Slide 4
Slide 4 text
私事ですが…
Slide 5
Slide 5 text
2012年3月、 結婚式を挙げます ※写真はイメージです
Slide 6
Slide 6 text
アジャイルな結婚式準備
Slide 7
Slide 7 text
本題
Slide 8
Slide 8 text
はじめに ※本発表の内容は、私の所属する会社や組織の方針を反映するものではありません。 とある開発プロジェクトでTFSを運用した事例を紹介します。 http://d.hatena.ne.jp/int128/20111221/1324487491
Slide 9
Slide 9 text
プロジェクト概要 2010年10月〜2011年3月末 • あ 2011年4月〜2012年3月末
Slide 10
Slide 10 text
チームマネジメント 開発フェーズ • 朝会 • スタンドアップミーティング 要件定義フェーズ • 朝会 • プロジェクタでTFSのタスクリストを表示しながら ※私はマネージャでもリーダでもないです
Slide 11
Slide 11 text
ポータルサイト ポータルサイトを上手く運用するとチームの情報共有が進む。 メールではなくRSS購読、情報の受身ではなく発信者へ。 お知らせ Tips (参考情報) リンク
Slide 12
Slide 12 text
開発環境 • 当初は VS2008+Subversion(AnkhSVN)を利用 • 他案件ですでに導入済み • Expression Blend 3 • 後に VS2010+TFS に変更 • Visual Studio 2010 • SQL Server 2008 R2 Express • Expression Blend 4 • .NET Framework 3.5(制約)
Slide 13
Slide 13 text
開発サーバ • その辺に転がっているデスクトップPC • Windows Server 2008 R2 • Team Foundation Server 2010(後にSP1) • SQL Server 2008 R2 Enteprise • Office SharePoint Server 2007 • システム構成 • シングルサーバ • ドメイン参加 • 日次バックアップ
Slide 14
Slide 14 text
リポジトリやビルドサーバは拠り所。 シングルポイントになってはいけない。 • 速いマシン • 信頼できる構成 • 運用しやすい仕組み
Slide 15
Slide 15 text
TFS2010のセットアップはとても簡単 短時間でCI環境を構築できる。 Windows Serverが使える人ならTFSを運用できる。 「ビルド管理者」の一極集中を軽減できる。
Slide 16
Slide 16 text
ソースコード管理 VS2010+TFS2010を全面的に採用した。 • チェックイン、チェックアウトの操作に慣れればSVNとあまり違わな いと思う。 • 分岐とマージについては説明資料を作った。 • 将来のバージョンで、Git+SVNのように分散バージョン管理 の美味しいところを取り入れてくれたら嬉しい。
Slide 17
Slide 17 text
お約束 • バグやタスクの関連付け • TFS+VSではチェックイン時にバグやタスクを画面で選択して 関連付けられる。バグIDを手入力する必要はない。 • チェックインの必須項目にはしなかった。 • 最低でも1日1回のチェックイン • トラディショナルな開発スタイルに慣れた人は、最初から完成 品を目指してしまう。 • チェックインは怖くない! • コードの共同所有文化 • リファクタリング
Slide 18
Slide 18 text
シェルブを使う 作業中のソースコードをサーバに一時的に保管しておける。 • git stash • 作業履歴 • ちょっと大きな変更を加えるときに成果物を保管する。 • コードレビュー的なもの • 他人がシェルブしたコードも見られる。 • シェルブに入れたコードを相談や議論のネタにする。 「動かないんですけど…」 「俺のコードを見てくれ、どう思う?」
Slide 19
Slide 19 text
チェックインポリシー チェックイン時に制約を設けることが可能 • ビルドの通らないコードはチェックインできない。 • ユニットテストの通らないコードもチェックインできない? • ユニットテスト?美味しいの? • 開発に習熟したチームでないと難しいと思う。 • 品質ゲート
Slide 20
Slide 20 text
コード分析
Slide 21
Slide 21 text
ユニットテスト VS2010 Unit Testを採用した。 • テストケースの自動生成 • カバレッジ
Slide 22
Slide 22 text
ブランチラインの運用
Slide 23
Slide 23 text
データベースの管理 スキーマとデータをリポジトリで管理する。 • データファイル(MDF)をチェックイン • アプリとデータベースの食い違いがなくなる。 ファイルアタッチ機能を利用 • 開発環境でアプリを実行するとき、データファイルをローカルの SQL Serverに自動的にアタッチしてくれる • 開発環境のデータベースを同一に揃えられるため、環境に起因す るトラブルがなくなる
Slide 24
Slide 24 text
落とし穴 大きなデータファイルはディスクと時間を食いつぶす • TFSのビルドではいくつもの作業コピーを作られるため、MDFがコ ピーされないように設定する SQL Server Standard以上ではファイルアタッチドDBを利用できな い • ビルドサーバにアタッチ済みのデータベースを用意し、テストの setUpで接続文字列を書き換える
Slide 25
Slide 25 text
ビルド 標準的なビルドなら、TFSの設定画面から数ステップで設定できる • 設定しやすいことは非常に重要 • 「ビルド担当者」のシングルポイントを取り除く VSとTFSのビルド設定がシームレス
Slide 26
Slide 26 text
通知
Slide 27
Slide 27 text
デプロイメント CD-Rリリース • お客様拠点にCD-Rを持ち込み、手動でインストール • 顧客端末へのリリースは人力でやるしかなくて、煩雑な手順が問 題になった。 • サーバどこに置いてるの? • 管理者アカウント? 限られた状況で • CD-Rを焼くまでは誰でもワンクリック • 成果物をビルドサーバの共有フォルダに出力
Slide 28
Slide 28 text
まとめ 短時間でCI環境を構築できるメリットは大きい。TFSのインストールや 管理は簡単。 ビルドエラーや警告から目を背けて、赤い日々や黄色い日々を過ごし てはいけない。