Tim pengembangan saya saat ini menggunakan perangkat lunak berikut dalam alur kerja kami:
- JIRA
- Bambu (Integrasi berkesinambungan Atlassian)
- Greenhopper (manajemen proyek tangkas Atlassian)
- Pertemuan
- Git, yang dihosting di BitBucket
- Visual Studio 2012
Seperti yang Anda lihat, kami banyak berinvestasi dalam ekosistem Atlassian. Kami sedang mempertimbangkan untuk pindah ke TFS sehingga kami bisa mendapatkan integrasi Visual Studio canggih seperti ulasan kode dan yang lebih penting adalah Microsoft Test Manager.
Pengalaman saya sebelumnya dengan TFS adalah dengan 2005 atau 2008 (saya tidak ingat) dan saya memiliki kenangan buruk tentang itu, meskipun tidak seburuk waktu saya dengan ClearCase.
Kriteria apa yang harus kita perhatikan untuk mengevaluasi dengan benar perpindahan kita ke TFS?
Jawaban:
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.
sumber
Saya telah pindah dari perusahaan dengan tumpukan Atlassian (dan Mercurial) ke perusahaan dengan tumpukan TFS yang berat. Saya menemukan dua iritasi.
Yang pertama adalah Kontrol Sumber .
Ketika Anda terbiasa dengan DVCS, beralih kembali ke CVCS itu menyakitkan. TFS sangat menyakitkan karena, untuk semua integrasi yang berfungsi, itu bersikeras terhubung ke server setiap saat.
Namun, syukurlah, Microsoft baru-baru ini mengizinkan integrasi kontrol versi Git ke dalam tumpukan TFS. Jadi Anda tidak perlu menyerah pada Git, dan saya menyarankan Anda untuk tidak melakukannya, mengingat semua orang sudah mengetahuinya.
Saya belum yakin seberapa baik alat kode-review bekerja terhadap Git, mengingat bahwa itu tampaknya banyak bergantung pada rak-rak (sedikit seperti simpanan, tetapi tidak begitu kuat). Tetapi kemudian bergantung pada rak-rak untuk ditinjau ulang kode itu menyakitkan dalam dirinya sendiri karena itu menghambat komitmen reguler.
Iritasi lainnya adalah alasan kebanyakan orang tidak akan mempertimbangkan untuk pindah dari TFS: The Visual Studio Integration .
Saya belum menemukan alasan kognitif di balik ini tetapi, dalam pengalaman saya (dan memperhitungkan bahwa ini adalah generalisasi), orang-orang yang terbiasa dengan TFS menyukai integrasi. Mereka tidak suka pindah ke luar IDE mereka untuk apa pun.
Saya, di sisi lain, belum melakukan pemanasan setelah setahun. Saya merasa berantakan dan sulit dinavigasi, dibandingkan dengan memiliki server build saya di satu tab browser, tiket saya di tab browser lain dan sebagainya. (Sunting: Seperti yang dicatat Andrei, ada antarmuka web, tetapi juga kikuk, ketika Anda terbiasa dengan versi Jira dan Jenkins yang lebih baru. Tapi tetap saja, itu setidaknya berfungsi di browser selain IE sekarang. Jadi itu sesuatu.)
Saya tidak pernah melihat bangunan kecuali saya mencoba untuk melakukannya, dan kemudian saya merasa sulit untuk mengetahui apakah orang lain sudah melakukannya. Saya tidak melihat perubahan orang lain kecuali saya diminta untuk meninjau.
Tapi, jarak tempuh Anda mungkin beragam. Seperti yang saya katakan, beberapa orang tampaknya merasa sangat diperlukan. Saya tidak bisa tidak memperhatikan bahwa umumnya orang yang tidak pernah melakukannya dengan cara lain.
Juga, jangan lupa untuk memperhatikan bahwa ini adalah 2 negatif, salah satunya mungkin bersifat pribadi, dalam infrastruktur yang cukup besar. Sebagian besar pengalaman saya baik dan TFS tidak seburuk beberapa orang akan membuat Anda percaya. Dan kebanyakan hal yang Anda temukan hilang mungkin dapat dinyalakan (sangat dapat dikonfigurasi); mengingat bahwa Anda menggerakkan seluruh tim, daripada satu orang, Anda mungkin menemukan sedikit perlawanan.
sumber
Saya memiliki pengalaman yang sangat positif dalam menggunakan TFS 2012. Sangat mudah untuk mengatur dan menjalankan server TFS Anda, automasi build CI sangat sederhana dan mudah (dan build check-in Gated sangat mengagumkan. Kami gagal mencapai fungsi yang sama. dengan Team City). Interaksi tim juga sangat transparan dan langsung. Anda dapat dengan mudah mengaitkan check-in Anda dengan benda kerja TFS, mengelola backlog, melacak cacat, melakukan tinjauan codere, dan sebagainya. Bahkan ada messenger bawaan =)
Namun perlu diingat bahwa jika Anda terbiasa dengan alur kerja JIRA Anda, mengatur alur kerja TFS bisa menjadi tugas yang sulit. Saya sarankan mengadopsi salah satu alur kerja TFS yang telah ditentukan. Anda juga harus menyimpan Confluence sebagai basis pengetahuan Anda atau beralih ke SharePoint karena tidak ada wiki yang dibangun ke TFS.
TFS jauh lebih murah jika Anda memiliki langganan MSDN (saya percaya sebagian besar perusahaan pengembang yang bekerja dengan tumpukan teknologi MS memilikinya) dalam hal ini Anda memiliki TFS gratis.
Saya pikir tidak ada alasan untuk tetap menggunakan alat pihak pihak jika Anda semua pengembang Anda bekerja dengan Visual Studio. TFS menyediakan sistem ALM yang terintegrasi, kuat namun mudah digunakan. Saya dengan senang hati akan menjawab pertanyaan Anda jika ada.
sumber
Masyarakat harus tahu, TFS bukan hanya VCS, itu adalah ALM .
Tampaknya banyak orang hanya menginginkan VCS tetapi pergi untuk TFS adalah cara yang salah.
Untuk CVCS, saya masih lebih suka SVN.
Untuk solo atau open source, pastikan untuk GIT.
Tapi TFS2012 tidak buruk, mudah dimengerti pada penggabungan / fork kemudian SVN.
Dan layanan tim pondasi gratis untuk 5 pengguna / tidak terbatas, repo pribadi.
Klien juga gratis, TFS explorer dibuat di atas VS2010 dan gratis.
Untuk Eclipse, ia memiliki plugin Eclipse - TFS di mana-mana.
Saya tidak melihat masalah biaya apa pun.
TFS express (gratis) dapat berfungsi dengan SQL Server Express (gratis juga).
sumber