銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

はじめての Team Foundation Server を読みました

TLなどを見るに、各地で品切れ続出という「はじめてのTeam Foundation Server」。幸いにも頂くことができまして、読んでみました。

はじめてのTeam Foundation Server (TECHNICAL MASTER)

はじめてのTeam Foundation Server (TECHNICAL MASTER)

TECHNICAL MASTER はじめてのTeam Foundation Server|書籍情報|秀和システム

ちなみに私は個人では、

  • リポジトリは、公開用はGitHub、プライベートはBitBucket
  • CIは、公開用のみ AppVeyor

という完全無償なサービスを使っています。TFS(ervice)の方は一時期使っていました。 一方、会社でも TFS は使っておらず(検討したことはあった)、今回はTFSでどこまでできるか調べてみたくて購入しました。

Team Foundation Serverのメリット・デメリット

この本に書かれていることも踏まえて、TFSのメリットデメリットを考えてみました。メリットはやはり、バージョン管理システム・テスト支援ツール・プロジェクト管理、コラボレーションツール・ビルド、継続的デプロイツールといった最近の開発現場に必要とされているツール群がまとめてふくまれており、それらの連携がすでにできている状態ということになると思います。

たとえばバージョン管理システムですと、私も使っているGitHubが多く使われており、(GitでなくGitHubであれば)Pull Requestによりコードレビューがやりやすかったり、Issue管理機能がついていたりします。しかし、テスト支援であったりCIという面ではほかのツールを使う必要が出てきます。

ほかのツールが使えるというのは、局面局面で適切なものが選べるという利点でもあるのですが、連携がうまくとれなかったり機能に制約が出たりして、デメリットになることもあります。少なくとも、TFSにおいてはこれらの連携がとれないといった問題はなくなります。

逆にデメリットは、まあメリットの裏返しなのですが、TFSの機能の一部を別のツールにすることが不可能、もしくは非常に困難という点です。

たとえばGitHubを使っており非常に気に入っているので、バージョン管理やブランチの管理・Pull Request運用はGitHubのままにしておき、プロジェクト管理やCIツールとしてTFSを導入したい場合、現状のTFSではGitHubのリポジトリから自動ビルドを組むのは難しいようです。(TFSのバージョン管理をGitにすることはできますが、ここでは単にGitではなく、GitHubを使いたいというケースを考えています)

以上を考えると、導入するにあたってかなり大きな決断が必要となるため、その概要や操作方法を理解するのにこの書籍は効果的だと思います。

感想

全体的には「TFS」初心者でも操作手順がわかりやすいようにスクリーンショット付きで説明されており、非常に理解しやすかったです。

TFSにかっこしているのは、あくまでTFSは知らないけど、そのほかのツールは使ったことがある人向けかな、という印象があったためです。TFSとは何か?そもそもバージョン管理とは?CIとは?それらに必要な機能は?みたいな話は、ボリューム的にこのサイズの本にまとめるのは難しいと思うので、本当の初心者向けには別の資料で補う必要があるかと思います。

TFSの構築の手順は5章に書いているので、ぜひ読むときは評価版でもいいので好き勝手できるTFSを作った上で自分で手を動かして操作してみるのがいいのではと感じました。 特にコードレビュー時のコメントなどは、Visual Studio上でコメントつけられるのが便利です。Web上だとコンパイルやIntelliSenseがきかないので、やりやすさが違います。

さらに個人的に「お!」と思ったのが、PowerShell コマンドレットやAPIによるPowerShell/C# コードからの情報取得・操作に関する説明が載っていることです。現在インフラ担当として、弊社の自動ビルド・デプロイ環境を作るにあたって、各ツールのAPIは必要不可欠でした。TFSを導入する場合にも必要になってくる部分ではないかと思います。ツールを構築・運用していく立場としては、この項目は「はじめて」に入れておいてほしい感じです。

また最後の方には、(私は残念ながら使ったことがないのですが)VSS(Visual Source Safe)からの移行方法も載っています。

個々の機能の網羅性や検索性といった点では、使いづらさを感じる点もあるのですが、このボリュームでTFSをわかりやすくまとめる上ではやむを得ないかと思います。一覧の検索などは、ぜひMSDNのドキュメントと併用するのがいいかと思います。

さいごに

本の中にも多少ありますが、 Azure上の Team Foundation Service と Team Foundation Server にはまだまだ機能差が多くあるので、TFS(ervices)がTFS(erver)に早く追いついてほしいなあと思う今日このごろです。