Survei kecil Martin Fowler mengatakan banyak tentang keadaan TFS pada tahun-tahun sebelumnya. 'berbahaya' benar sekali. (Saya pikir ini merujuk pada cara itu tidak mengenali perubahan yang dibuat di luar VS, sehingga Anda dapat membuat proyek WCF, kemudian menggunakan alat svcutil eksternal untuk membuat klien Anda, lalu periksa semua perubahan Anda di .. tetapi TFS akan dengan senang hati abaikan perubahan klien Anda karena itu tidak dibuat di dalam VS).
Anda harus menghitung biayanya: versi VS yang diperlukan untuk mendapatkan barang - review kode, misalnya, memerlukan edisi Premium yang jauh lebih mahal jika Anda mendapatkan VS melalui MSDN. Juga, mengakses sistem untuk pengguna non-VS baik-baik saja, tetapi jika mereka menginginkan akses penuh daripada tampilan web yang dikurangi, maka Anda harus keluar untuk CAL untuk mereka. Biaya keseluruhan TFS bisa sangat banyak. Bahkan laporan Forrester terbaru(ditugaskan oleh Microsoft, jadi Anda harus sedikit membaca yang tersirat) mengatakan bahwa TFS memerlukan dukungan administrasi yang signifikan - 2 konsultan dan 6 admin (yang menghabiskan 25% dari waktu mereka) diminta untuk mendukung TFS untuk studi kasus mereka dari 122 pengguna (berhasil menjadi 4,5 admin lebih dari 122 pengguna itu ... ini jauh dibandingkan dengan hanya saya menyiapkan dan memelihara solusi SVN penuh sementara juga melakukan pekerjaan harian saya). TFS dapat mengambil banyak upaya untuk tetap bekerja seperti yang diharapkan orang.
Dalam pengalaman saya dengan TFS2012 (lupakan versi sebelumnya karena mereka omong kosong), adalah itu adalah administrator sistem yang sangat rumit, terutama jika Anda melangkah keluar dari pengaturan yang telah ditentukan sebelumnya. Misalnya, jika Anda menggunakan MSBuild untuk membangun semuanya, Anda baik-baik saja. Tetapi jika Anda memiliki, katakanlah, banyak proyek .vdproj lama yang tidak lagi didukung oleh MSBuild, Anda harus mengedit skrip build xaml yang besar untuk membuatnya membangun proyek-proyek ini. Setelah beberapa hari mengerjakan ini, yang terbaik yang bisa saya lakukan adalah membangun kembali solusi dengan meneruskannya ke devenv, dan bahkan kemudian, mengeluarkan hasil build dan masuk ke ringkasan build adalah mustahil. Hasil serupa dimiliki oleh tim lain yang menggunakan NUnit untuk tes mereka - jika Anda menggunakan MSTest bawaan, maka itu akan berhasil. Kalau tidak, Anda cukup banyak diisi.
Sebagai pengguna, saya menemukan bahwa integrasi lebih merupakan gangguan. Saya lebih suka TortoiseSVN dan saya melakukan hampir semua pekerjaan SCM saya melalui itu (karena merupakan alat yang luar biasa). Dengan TFS, Anda memiliki layar baru di dalam VS untuk setiap operasi. Jadi Anda memiliki tab baru di lingkungan Anda untuk tim explorer, dan yang lain untuk build, dan yang lain untuk setiap ringkasan build yang ingin Anda lihat (dan jika Anda ingin melihat detail build, kesalahan misalnya, Anda harus untuk mengklik terlalu banyak tautan). Saya menemukan jumlah dokumen yang saya buka saat menggunakan TFS lebih dari file sumber!
Hal yang sama berlaku untuk checkin, melakukan perubahan yang diperlukan mengklik beberapa tab pada panel Pending Changes di VS untuk menetapkan item kerja dan mengomentari checkin Anda. Ini hal kecil, tapi saya merasa menjengkelkan karena saya terbiasa dengan alat yang lebih ramping.
Memperluas sistem build adalah area lain yang menurut saya kurang. Menambahkan fitur baru ke dalam build itu sulit karena konfigurasi xaml, dan memasukkan hasil dari fitur-fitur itu ke layar build Anda sangat sulit, atau tidak mungkin. Jadi jika Anda suka menambahkan hal-hal seperti kompleksitas kode atau analisis statis, atau bahkan pengujian otomatis melalui, katakan selenium, atau penyebaran ... lupakan saja. Kecuali, Anda menggunakan alat Microsoft untuk aspek-aspek ini (misalnya fxcop).
Memperbarui alur kerja adalah hal lain yang niggle - meskipun powertoy sangat membantu, itu masih canggung untuk memperbaiki alur kerja, dan Anda masih tidak dapat mengonfigurasi papan scrum dengan informasi yang benar-benar ingin Anda lihat - lagi, Anda mendapatkan default atau tidak sama sekali. .
Penggabungan juga menyakitkan, saya pikir ada alasan yang sangat bagus MS telah mengadopsi git untuk TFS (perhatikan ini hanya bekerja dengan proyek TFS baru, Anda tidak dapat mengkonversi dari TFS ke git backend).
Jadi secara keseluruhan, ini tidak terlalu buruk karena berfungsi, tetapi saya telah menemukan banyak alat lain yang jauh lebih baik. Kerugian dari alat-alat itu adalah mereka tidak sepenuhnya terintegrasi, tetapi IMHO ini adalah kekuatan karena Anda dapat memilih dan memilih bit terbaik yang Anda inginkan. Dengan TFS Anda mendapatkan apa yang orang lain inginkan. Jika Anda memutuskan sistem bug di TFS buruk (dan saya pikir Anda akan), Anda akan kesulitan mengubah yang lain.
TFS harus dipertimbangkan bersama dengan alat siklus hidup penuh lemak besar lainnya. Sebagian besar pengembang membenci hal-hal seperti itu karena mereka tidak menyukai pembatasan yang pada akhirnya diberlakukan oleh alat-alat ini.
Saya akan mencobanya, unduh uji coba 30 hari dan instal. Saat mengevaluasi, ingatlah untuk mengubah sedikit di sana-sini, jangan hanya menggunakannya untuk checkin kode sumber, checkin dengan workitem yang diperlukan dan dapatkan laporan berdasarkan workitem itu. Coba tetapkan checkin ke beberapa workitem, dan coba gabungkan workitem bersama-sama sebagai terkait. Cobalah untuk memasukkan sesuatu yang berbeda ke dalam sistem build, lihat bagaimana cara mendapatkan laporan kemajuan harian dari layanan pelaporan, menautkan dokumen ke persyaratan alur kerja dan melacaknya melalui triase bug ke pengkodean untuk membangun hingga pengerjaan ulang lalu melepaskan. Cabang dan gabungkan banyak. Jika Anda tidak dapat dengan mudah melakukan semua hal ini, maka Anda sebaiknya tetap menggunakan git. Tidak banyak gunanya menggunakan TFS jika Anda tidak memanfaatkan sebagian besar fitur ALM-nya.