TFS?丘を駆け抜けろ!できるだけ早く離れてください。それは多くの異なることをしますが、それらのどれも利用可能な最高の品種ツールほど優れていません。
しかし真剣に:
適切なバージョン管理システム(SVN、GITなど)を入手したら、ブランチ管理のルールを設定することをお勧めします。たとえば、ブランチをいつ作成するか、何をいつ、誰とマージするか、などなどです。
最近まで、新しい開発(「トランク」)に単一のブランチを使用していました。リリースの場合、トランクからブランチを作成します。最終的なQAはそのブランチで行われ、完了したらリリースします(月次リリースです)。
スケジュールのリスクを減らすために、「トランクにジャンクがない」という概念に切り替えました。このコンセプトには基本的に、トランクとは別に開発作業用のブランチを作成するためのルールが含まれています。たとえば、小規模な開発チームなどのために、機能ごとに個別のブランチを用意できます。「エピック」を使用して、小さな機能または機能の解放可能な部分を説明し、各エピックのブランチを作成します。少なくとも1日に1回、トランクからのすべての変更がエピックブランチにマージされます。キーは、バージョン管理または別のツール(例:3方向マージ)による適切なマージサポートです。エピックのQAはエピックのブランチで行われます。合格すると、エピックブランチがトランクにマージされ、統合テストが実行されます。リリース用のブランチはまだあります。
エピックブランチを使用すると、トランクから解放し、トランクに正常にマージされたすべてのエピックを含めることができるようになるため、スケジュールリスクを大幅に削減できました。完全ではないエピックはバスを逃し、次のリリース(翌月)を行います。
もちろん、これは私たちの環境でのみ機能します。おそらく、ブランチ管理に最適な選択に影響を与える、当社とは異なる要素があるでしょう。
たとえば、多くの人がリモートで作業していて、常にバージョン管理サーバーに接続されていないチームがある場合は、分散モデルをサポートするバージョン管理システムを使用することをお勧めします。GITと他のいくつかはこのカテゴリに分類されます。私の知る限りTFSでは、ファイルを書き込み可能にするためにサーバーに接続する必要があります(バージョン2010で修正されましたか?)。
「1つのサイズですべてに収まる」というものがないことを示すことができたと思います。特定のブランチ管理のプロセスから始めて、要件を決定し、最後にニーズに最適なツールを選択します。多分それはTFSです、そうでないかもしれません。