TFS? Lari ke bukit! Keluar secepat yang Anda bisa. Ini melakukan banyak hal yang berbeda tetapi tidak satupun dari mereka sebagus alat berkembang biak terbaik yang tersedia.
Tapi serius:
Setelah Anda memiliki sistem kontrol versi yang layak (SVN, GIT, dll.) Saya akan merekomendasikan pengaturan aturan untuk manajemen cabang, misalnya kapan membuat cabang, untuk apa, kapan untuk menggabungkan, siapa, dan banyak lagi.
Sampai saat ini kami menggunakan satu cabang untuk pengembangan baru ('trunk'). Untuk rilis, kami akan membuat cabang dari trunk. Final QA akan dilakukan di cabang itu dan setelah selesai kami akan merilis (kami ada di rilis bulanan).
Kami telah beralih ke konsep 'tidak ada sampah di bagasi' untuk mengurangi risiko jadwal. Konsep ini pada dasarnya berisi aturan di mana Anda akan membuat cabang untuk pekerjaan pengembangan terpisah dari trunk. Misalnya Anda bisa memiliki cabang terpisah untuk fitur, untuk tim pengembangan kecil atau serupa. Kami menggunakan 'epos' untuk menggambarkan fitur kecil atau bagian yang dapat dirilis dari fitur dan membuat cabang untuk setiap epik. Setidaknya sekali sehari semua perubahan dari trunk digabung ke dalam cabang epik. Kuncinya adalah dukungan penggabungan yang baik dengan kontrol versi atau alat yang terpisah (misalnya penggabungan tiga arah). QA untuk epik akan dilakukan di cabang epik. Setelah melewati cabang epik akan digabungkan menjadi batang dan uji integrasi dijalankan. Kami masih memiliki cabang untuk rilis.
Dengan cabang-cabang epik kami telah secara substansial mengurangi risiko jadwal karena kami sekarang dalam posisi untuk keluar dari bagasi dan memasukkan semua epos yang berhasil digabungkan menjadi bagasi. Epos yang tidak lengkap ketinggalan bus dan akan membuat rilis berikutnya (bulan depan).
Ini tentu saja hanya dapat berfungsi di lingkungan kita. Sangat mungkin Anda akan memiliki faktor-faktor yang berbeda dari kami yang akan memengaruhi apa pilihan terbaik untuk manajemen cabang.
Misalnya jika Anda memiliki tim dengan banyak orang yang bekerja dari jarak jauh dan tidak selalu terhubung ke server kontrol versi, maka Anda ingin menggunakan sistem kontrol versi yang mendukung model terdistribusi. GIT dan beberapa lainnya akan termasuk dalam kategori ini. TFS sejauh pengetahuan saya memerlukan koneksi ke server untuk membuat file dapat ditulis (diperbaiki dalam versi 2010?).
Saya harap saya bisa menunjukkan bahwa tidak ada "satu ukuran cocok untuk semua". Mulailah dengan proses Anda dalam manajemen cabang tertentu, tentukan persyaratan dan akhirnya pilih alat yang paling cocok dengan kebutuhan Anda. Mungkin itu TFS, mungkin juga tidak.