$30 off During Our Annual Pro Sale. View Details »

とある案件のTFS導入事例

 とある案件のTFS導入事例

Hidetake Iwata

February 20, 2012
Tweet

More Decks by Hidetake Iwata

Other Decks in Technology

Transcript

  1. 2012.2.20
    第4回TFSUG
    #tfsug
    @int128

    View Slide

  2. 自己紹介
    INTRODUCTION

    View Slide

  3. いわてぃ
    @int128
    http://d.hatena.ne.jp/int128/
    SIerに勤務するエンジニア。
    WordやPowerPointより、
    コードを書いているほうが好きです。
    2007 2012
    2008 2009 2010 2011
    インフラエンジニア プログラマ
    スーツ的な仕事?

    View Slide

  4. 私事ですが…

    View Slide

  5. 2012年3月、
    結婚式を挙げます
    ※写真はイメージです

    View Slide

  6. アジャイルな結婚式準備

    View Slide

  7. 本題

    View Slide

  8. はじめに
    ※本発表の内容は、私の所属する会社や組織の方針を反映するものではありません。
    とある開発プロジェクトでTFSを運用した事例を紹介します。
    http://d.hatena.ne.jp/int128/20111221/1324487491

    View Slide

  9. プロジェクト概要
    2010年10月〜2011年3月末
    • あ
    2011年4月〜2012年3月末

    View Slide

  10. チームマネジメント
    開発フェーズ
    • 朝会
    • スタンドアップミーティング
    要件定義フェーズ
    • 朝会
    • プロジェクタでTFSのタスクリストを表示しながら
    ※私はマネージャでもリーダでもないです

    View Slide

  11. ポータルサイト
    ポータルサイトを上手く運用するとチームの情報共有が進む。
    メールではなくRSS購読、情報の受身ではなく発信者へ。
    お知らせ
    Tips
    (参考情報)
    リンク

    View Slide

  12. 開発環境
    • 当初は VS2008+Subversion(AnkhSVN)を利用
    • 他案件ですでに導入済み
    • Expression Blend 3
    • 後に VS2010+TFS に変更
    • Visual Studio 2010
    • SQL Server 2008 R2 Express
    • Expression Blend 4
    • .NET Framework 3.5(制約)

    View Slide

  13. 開発サーバ
    • その辺に転がっているデスクトップPC
    • Windows Server 2008 R2
    • Team Foundation Server 2010(後にSP1)
    • SQL Server 2008 R2 Enteprise
    • Office SharePoint Server 2007
    • システム構成
    • シングルサーバ
    • ドメイン参加
    • 日次バックアップ

    View Slide

  14. リポジトリやビルドサーバは拠り所。
    シングルポイントになってはいけない。
    • 速いマシン
    • 信頼できる構成
    • 運用しやすい仕組み

    View Slide

  15. TFS2010のセットアップはとても簡単
    短時間でCI環境を構築できる。
    Windows Serverが使える人ならTFSを運用できる。
    「ビルド管理者」の一極集中を軽減できる。

    View Slide

  16. ソースコード管理
    VS2010+TFS2010を全面的に採用した。
    • チェックイン、チェックアウトの操作に慣れればSVNとあまり違わな
    いと思う。
    • 分岐とマージについては説明資料を作った。
    • 将来のバージョンで、Git+SVNのように分散バージョン管理
    の美味しいところを取り入れてくれたら嬉しい。

    View Slide

  17. お約束
    • バグやタスクの関連付け
    • TFS+VSではチェックイン時にバグやタスクを画面で選択して
    関連付けられる。バグIDを手入力する必要はない。
    • チェックインの必須項目にはしなかった。
    • 最低でも1日1回のチェックイン
    • トラディショナルな開発スタイルに慣れた人は、最初から完成
    品を目指してしまう。
    • チェックインは怖くない!
    • コードの共同所有文化
    • リファクタリング

    View Slide

  18. シェルブを使う
    作業中のソースコードをサーバに一時的に保管しておける。
    • git stash
    • 作業履歴
    • ちょっと大きな変更を加えるときに成果物を保管する。
    • コードレビュー的なもの
    • 他人がシェルブしたコードも見られる。
    • シェルブに入れたコードを相談や議論のネタにする。
    「動かないんですけど…」
    「俺のコードを見てくれ、どう思う?」

    View Slide

  19. チェックインポリシー
    チェックイン時に制約を設けることが可能
    • ビルドの通らないコードはチェックインできない。
    • ユニットテストの通らないコードもチェックインできない?
    • ユニットテスト?美味しいの?
    • 開発に習熟したチームでないと難しいと思う。
    • 品質ゲート

    View Slide

  20. コード分析

    View Slide

  21. ユニットテスト
    VS2010 Unit Testを採用した。
    • テストケースの自動生成
    • カバレッジ

    View Slide

  22. ブランチラインの運用

    View Slide

  23. データベースの管理
    スキーマとデータをリポジトリで管理する。
    • データファイル(MDF)をチェックイン
    • アプリとデータベースの食い違いがなくなる。
    ファイルアタッチ機能を利用
    • 開発環境でアプリを実行するとき、データファイルをローカルの
    SQL Serverに自動的にアタッチしてくれる
    • 開発環境のデータベースを同一に揃えられるため、環境に起因す
    るトラブルがなくなる

    View Slide

  24. 落とし穴
    大きなデータファイルはディスクと時間を食いつぶす
    • TFSのビルドではいくつもの作業コピーを作られるため、MDFがコ
    ピーされないように設定する
    SQL Server Standard以上ではファイルアタッチドDBを利用できな

    • ビルドサーバにアタッチ済みのデータベースを用意し、テストの
    setUpで接続文字列を書き換える

    View Slide

  25. ビルド
    標準的なビルドなら、TFSの設定画面から数ステップで設定できる
    • 設定しやすいことは非常に重要
    • 「ビルド担当者」のシングルポイントを取り除く
    VSとTFSのビルド設定がシームレス

    View Slide

  26. 通知

    View Slide

  27. デプロイメント
    CD-Rリリース
    • お客様拠点にCD-Rを持ち込み、手動でインストール
    • 顧客端末へのリリースは人力でやるしかなくて、煩雑な手順が問
    題になった。
    • サーバどこに置いてるの?
    • 管理者アカウント?
    限られた状況で
    • CD-Rを焼くまでは誰でもワンクリック
    • 成果物をビルドサーバの共有フォルダに出力

    View Slide

  28. まとめ
    短時間でCI環境を構築できるメリットは大きい。TFSのインストールや
    管理は簡単。
    ビルドエラーや警告から目を背けて、赤い日々や黄色い日々を過ごし
    てはいけない。

    View Slide