Cara mengevaluasi pindah ke Team Foundation Server

10

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?

Sam
sumber
4
Saya pindah dari perusahaan di git ke perusahaan dengan TFS 2008 dan itu sangat menyakitkan. Saya mendengar 2012 jauh lebih baik .. tetapi kami tidak dalam posisi untuk meningkatkan saat ini. Karena saat ini adalah ... Saya akan membunuh untuk kembali ke git :(
Simon Whitehead
1
Itu benar. TFS 2008 sulit untuk dirawat dan digunakan. Tetapi ada kecenderungan positif yang kuat: TFS 2010 jauh lebih baik daripada 2008, TFS 2012 sama baiknya dengan 2010. Ini jauh lebih mudah dirawat dan memiliki antarmuka web yang hebat sehingga dapat digunakan oleh orang-orang tanpa Visual Studio (penguji dan pemilik produk) , dll)
Andrei Zubov
@SimonWhitehead sebagai seseorang yang pindah dari TFS2008 ke TFS2012, perbedaan pada tingkat pengguna mendasar tidak banyak berubah - ada bit baru di sekitar tepi (misalnya ulasan kode, halaman web scrum, dll) tetapi Anda masih akan membencinya. Memutakhirkan ... lupakan saja, Anda perlu melakukan instalasi yang bersih dan menyalin data Anda.
gbjbaanb
4
Bahkan TFS 13 tidak ada bandingannya dengan JIRA Agile. Implementasi "Papan Kanban" mereka saat ini adalah upaya menyedihkan untuk menghidupkan anak yang sudah mati ini. Untuk mengganti Cofluence Anda tidak akan menemukan apa pun. Saya tidak yakin mengapa orang harus mempertimbangkan pindah dari tumpukan Atlassian ke tumpukan TFS. Saya menggunakan TFS selama bertahun-tahun dan saya tidak pernah senang dengan itu, begitu juga kolega saya.
Alexey Zimarev
Karena Anda sudah berinvestasi dalam ecosysten Atlassian, saya terkejut tidak ada yang menyebutkan Atlassian Stash , yang berjalan di atas Git dan memberi Anda fitur-fitur seperti manajemen akses repositori, permintaan tarik, ulasan kode, dan strategi penggabungan otomatis. Cukup bagus.
Mike Chamberlain

Jawaban:

17

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.

gbjbaanb
sumber
1
Terima kasih telah berbagi pengalaman Anda dan ada baiknya mendapatkan beberapa hal negatif. Saya menggunakan ClearCase beberapa waktu lalu di sebuah perusahaan dan itu adalah SCM terburuk yang pernah saya gunakan. Biaya administrasi sedang memprihatinkan, kami adalah perusahaan rintisan kecil tapi saya sangat suka bahwa pengaturan kami saat ini hampir tidak memerlukan administrasi.
Sam
Dimensi Serena adalah yang terburuk yang pernah saya gunakan, Clearcase tampaknya tidak terlalu buruk dibandingkan, setidaknya itu berhasil! Saya pikir MS ingin Anda menggunakan versi cloud TFS mereka, instal sendiri adalah sesuatu yang dapat mereka jual kepada perusahaan dengan bayaran besar. Saya akan tetap dengan apa yang Anda miliki. Dapatkan beberapa alat lainnya untuk memberi Anda fungsionalitas yang sama (mis. ReviewBoard).
gbjbaanb
oh, dan saya tahu ini bug sehingga tidak benar-benar adil untuk menyorotnya - tetapi jika Anda mencoba fitur peninjauan kode TFS, dan Anda mencoba meninjau file yang telah diubah namanya serta dimodifikasi, TFS akan melaporkan "sebelumnya kesalahan revisi "" tidak ditemukan. Jika Anda melakukan banyak refactoring, ini mungkin menjadi masalah. Ini mungkin bug kecil, tetapi kemudian itu juga mungkin menjadi masalah arsitektur utama jika mereka tidak melacak nama file di TFS back-end store.
gbjbaanb
2
Maaf atas jawaban yang terlambat, pada akhirnya Anda yang membujuk saya untuk menggunakan TFS. Terima kasih.
Sam
1
Senang mendengarnya - semua orang tampaknya berpikir mereka harus menggunakan TFS, padahal sebenarnya kita semua harus menggunakan berbagai alat. Kalau tidak, kita akan berakhir dengan hanya 1 atau 2 perusahaan yang menyediakan semua alat IT kami ... Microsoft dan Oracle ... yang tidak akan menjadi dunia yang paling menyenangkan untuk ditinggali :) Atlassian melakukan alat yang baik, lebih banyak orang harus mengevaluasinya.
gbjbaanb
12

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.

pdr
sumber
1
Ini pada dasarnya adalah apa yang akan saya jawab. Senang mengetahui bahwa saya bukan satu-satunya!
Simon Whitehead
1
Anda dapat melakukan review kode dari kode yang dilakukan, tetapi Anda hanya tahu fakta bahwa Anda dapat mencegah checkin sampai setelah review berarti orang akan menggunakannya persis seperti itu. Kebijakan perusahaan di mana-mana akan ditulis sehingga ini wajib, dan kemudian akan menjadi hambatan proses lain untuk membuat pengembang kesal.
gbjbaanb
5

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.

Andrei Zubov
sumber
1
terima kasih banyak atas tanggapan anda. Kami menggunakan BizSpark yang saya yakini memiliki TFS. Saya kira satu-satunya hal yang saya suka dari Anda adalah negatif, hanya untuk menimbangnya. Saya senang bisa tetap dengan Confluence karena saya benar-benar tidak menyukai SharePoint.
Sam
Sistem pemberitahuan perubahan di TFS agak lebih sederhana di dalam solusi lain (Track Test misalnya memiliki sistem yang jauh lebih kuat). Di TFS Anda hanya mendapatkan pemberitahuan jika workitem ditugaskan untuk Anda, Anda tidak dapat berlangganan perubahan pada workitem tertentu misalnya. Saya pikir ini bukan masalah besar dalam proses kerja yang gesit, tetapi jika Anda sangat bergantung pada pemberitahuan dalam proses kerja Anda, itu mungkin menyebalkan. Kontrol sumber akan membutuhkan waktu untuk terbiasa. Apalagi jika Anda terbiasa dengan perintah command-line GIT. Tetapi visualisasi percabangan sepadan dengan upaya yang saya pikirkan.
Andrei Zubov
-3

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).

Cheung
sumber
1
bagaimana ini menjawab pertanyaan yang diajukan?
nyamuk