Yakın zamanda bir firma ile başlayan bir müteahhitim.
Takım, 2 yeni ve orta seviye geliştiriciden oluşan 3 geliştiricidir, bir diğeri de yakında aynı seviyede başlar ve kendim (6 Yıllık xp). Her iki mevcut geliştirici için bu, üniversite / kolej dışındaki ilk işidir ve daha önce çalışmalarını denetleyen kıdemli bir geliştiriciye sahip olmamışlardır.
Açık bir Sürüm kontrol politikası yoktur. Geliştiriciler bagajdaki tüm gelişmeleri yapar ve daha sonra doğrudan geliştirme makinelerinden üretime dağıtırlar. Mevcut ekip dallanmaya aşina değildir.
Tüm bunları değiştiriyorum ve bunu iltifat etmek için bir sürüm kontrol politikası ile birlikte CI, TDD testi / evreleme / üretim sunucuları vb.
Kaynak kontrol sistemi, daha önce hiç kullanmadığım TFS'dir. Dev bir depo olarak yapılandırılmış.
Onlar için birkaç ipucu yazdım, ancak eklediğim / değiştirdiğim, ekibin deneyimini akılda tutarak başka bir şey var mı?
Sürüm Kontrol Politikası
Gövde üzerinde geliştirme yapılır
Bir değişikliğin bir haftadan fazla süreceği tahmin ediliyorsa, bir dalda, ikisinin senkronizasyondan çıkmasını durdurmak için gövdeden dala doğru düzenli birleşme ile yapılmalıdır.
Üretim kodu için oluşturulan şubeler. Bu dal yalnızca sabit kod içermelidir. Sprint başına bagajdan bir kez güncellenen bir sürüm şubemiz olabilir veya her hafta için ayrı bir sürüm şubesi oluşturabiliriz.
Üretim kodunu etkileyen acil bir hata düzeltmesi yapılması gerekiyorsa, serbest bırakma dalında yapılır ve bagajda yeniden birleştirilir.
Eğer bir serbest bırakma dalı stratejisini benimsersek, o zaman gövde serbest bırakma dalına sprint başına bir kez sprint sonuna doğru birleştirilir.
Sürüm stratejisi başına ayrı şubeyi kabul edersek, bagaj ASLA Sürüm şubesine birleştirilmez
Bazı senaryolarda, dallar çok fazla sapmışsa, hatanın farklı dallarda iki kez düzeltilmesi gerekebilir. Kısa sprintler yapıyorsak, bu çok sık olmamalıdır.
Üç sunucum var. Depodaki her zaman en son kodu çalıştıran ortam test edin. Sürüm Adayı / Test Adayı kodu ve UAT amaçları için en yeni sürüm adayını ve üretim ortamını çalıştıran bir hazırlık ortamı.
Bunu yapmayı planlamamın nedeni, şu ana kadar istemcinin yalnızca dahili yazılım yapmasıdır. En yeni proje, yüksek profilli bir medya müşterisi için ve benim düşüncem, ekibin şu anda yaptıklarından daha profesyonel bir gelişim modeli benimsemesi gerektiğidir.
Örneğin, şu anda bir kullanıcı ekibi bir hata raporu ile arayabilir. Geliştiriciler hatayı bulur ve düzeltir, kendi makinelerinde hızlı bir test göz küresi testi yapar ve daha sonra doğrudan üretime yerleştirir. Otomatik test veya başka bir şey yok.
Gez, özellik dalı çok bir adım olduğunu düşünüyorum ve bunu kaldıracağım.
Dolayısıyla esasen a) hiç dallanma olmaz) b) bir serbest bırakma dalı ve gövdesi ve c) serbest bırakma ve gövde başına bir serbest bırakma dalı.
Ben ikincisine doğru eğildim. İlk düşüncem, hem ayrı bir sunucuda (UAT / Production) hem bir yayın adayı hem de yayın için bir sürümüm olacaktı, ancak etkili bir şekilde gövde, herhangi bir zamanda sürüm adayı olacaktı, bu nedenle şube başına serbest bırakma deliğe doğru eğiliyor. Tek düşüncem, paydaşlarımızın gelişim kodunu görmelerini istemeseydik, ayrı bir sürüm aday şubesine ihtiyacımız olabilirdi, ancak YAGNI ve tüm bunlar .....