İnsan problemine teknik bir çözüm arıyorsunuz. Bu nadiren işe yarar.
İşte geçmişte kullandığım veya pratikte onlara fırsat vermeden düşündüğüm birkaç yaklaşım. Bazıları, bir takımdaki pozisyonunuza bağlı olarak sizin durumunuz için geçerli olmayabilir (eğer mükemmel bir üne sahip bir takım lideriyseniz, şansınızı bir lisans öğrencisi olmanıza göre daha iyi bir şekilde uygulayabilirsiniz. staj süresi boyunca bir takıma katıldım.
Konuyu iş arkadaşlarınızla tartışın ve büyük taahhütlerin sonuçlarını açıklayın. Belki de karmaşık birleşmelerin nadir görülen taahhütlerin doğrudan bir sonucu olduğunu anlamıyorlar ve küçükten sık yapılan sözleşmeler birleştirmeleri (nispeten) kolaylaştıracak.
Birleşmelerin her zaman karmaşık olduğu konusunda ikna olmuş bir sürü programcı tanıdım . Günde en fazla bir taahhütte bulundular, Visual Studio'nun fark ve otomatik birleştirme gibi güçlü araçları kullanmaktan kaçındılar ve manuel bir birleştirme pratiği yaptılar (başka hiçbir fark incelemesi olmadan "benimkini al" aslında iyi bir uygulama değilse). Onlar için bu ile ilgisi yoktu onlara ve birleştirme doğal yapısına oldu.
Diğer şirketlerde neler olup bittiğine dair somut örnekler verin (özellikle iş arkadaşlarınızın saygı duyduğu şirketler ). Sadece bunun bir sorun olduğunun farkında olmayabilirler ve her bir takımın yaptığı her gün en fazla bir taahhüdün olduğuna ikna olabilirler.
Bazı insanlar, üretime 50'ye kadar iten, 5-10 kişilik ekiplerin bulunduğunu bilmiyor; bu da kişi başına günde ortalama 5-10 komisyona dönüşüyor. Ne mümkün olduğunu ya da neden birisinin yaptığını anlayamayabilirler.
Örnek olarak kurşun. Yeterince küçük kendin yap. Mümkünse, bir hafta boyunca yan yana ve birleştirmelerinizi gösteren kısa bir sunum yapın (bu tür bilgileri çıkarmanın sürüm kontrolünden kolay olup olmadığından emin değilim). Birleşmeleri sırasında yaptıkları olası hataları vurgulayın ve yaptıkları hata sayısıyla karşılaştırın (sıfıra yakın olmalıdır).
“Ben söylemiştim” tekniğini kullanın , uygun . Meslektaşlarınızın acı veren bir birleşme yüzünden acı çektiğini gördüğünüzde, küçük sıklıkta komisyonların birleşmeleri (nispeten) ağrısız hale getirebileceğini yüksek sesle yorumlayın.
Bir taahhütte bulunmak için asgari sürenin bulunmadığını açıklayın. Bir taahhüt, birkaç saniye içinde yapılan küçük bir değişikliğe bile karşılık gelebilir. Bir dosyayı yeniden adlandırmak, eski bir yorumu kaldırmak, bir yazım hatası düzeltmek derhal yerine getirilebilecek tüm görevlerdir.
Programcılar ufak bir taahhütte bulunmaktan korkmamalı, aksine birçok değişikliği tek bir büyük taahhütte bir araya getirmeli.
Gerektiğinde takım yerine bireylerle çalışın. Özellikle sık sık, küçük işlerde bulunmayı reddeden bir kişi varsa, neden reddettiğini görmek için bu kişiyle ayrı ayrı konuşun.
Takımda neler olup bittiği hakkında ipucu verebilecek mükemmel geçerli sebepler verebilirler. Kendimi duymamın bazı nedenleri:
“Öğretmenim / akıl hocası en iyi uygulama bir günde taahhüt yapmak olduğunu söyledi.” Bu beni şaşırtmadı, verilen neyi Üniversitede hocalarımın duymak zorunda .
“Meslektaşlarım bana daha az taahhütte bulunmam gerektiğini söyledi.” Bunu bana bazı takımlarda da anladım ve onların anlamını anlıyorum. Çalışma arkadaşlarımla uğraşan bir kayıt tuttum (dört takım arkadaşı günde bir iş yapmadığında yapmak zor değil), çalışma arkadaşlarımı hayal kırıklığına uğrattı.
“Küçük taahhütlerin bir revizyon bulmayı zorlaştırdığını düşündüm.” Ekip bir şekilde açıklayıcı günlük mesajları yazmaya çaba gösterse bile geçerli bir nokta.
“Sürüm kontrol sunucumuzda çok fazla yer israf etmek istemiyorum.” Kişi açık bir şekilde taahhütlerin ne şekilde depolandığını (ya da depolama alanının ne kadar ucuz olduğunu) anlamıyor.
“Bir taahhüdün belirli bir göreve uyması gerektiğini düşünüyorum.” Sık sık verilen bir görevin, bir günde (bazı görsel yönetim yönetim kurullarında olduğu gibi) yapılması gereken bir işe karşılık gelmesi nedeniyle, bu bir tesadüf değildir. Kişi daha sonra bir backlog'daki bir görev (2 ila 8 saatlik çalışma) ve gerçekleştirilmesi gereken (birkaç saniye ila birkaç saatlik çalışma) mantıksal olarak izole edilmiş bir değişiklik arasında bir fark yaratmayı öğrenmelidir. Bu aynı zamanda 5. maddeyle de ilgilidir.
Takımın daha fazla iş yapma nedenini araştırın. Sonuçlara şaşırmış olabilirsiniz.
Son zamanlarda, farklı bir cevapta bir taahhüt hızının önemli olduğunu ve yüzlerce milisaniyenin bile geliştiricileri daha az sıklıkta işlemeye zorlayabileceğinden bahsettim .
Diğer sebepler şunları içerebilir:
Bir taahhüt mesajı yazmak için aşırı karmaşık kurallar.
Geliştiriciyi taahhüdü bir hata izleme sisteminden bir göreve bağlamaya zorlayan kural.
Yapıyı kırma korkusu.
Şu an yapıyı kırma riskiyle başa çıkmak istememesi: Cuma akşamı ayrılmadan hemen önce bir taahhütte bulunursanız, ayrılmadan hemen önce kırılmış yapıyla uğraşmayı erteleyebilirsiniz.
Birleştirme yapmanın korkusu.
Geliştiricilerin sıkça iş yapmanın başka yararları olup olmadığını anlamalarını belirleyin . Örneğin, bir Sürekli Entegrasyon platformu, sık sık taahhütte bulunma konusunda büyük bir teşviktir , çünkü regresyonun tam olarak nerede ortaya çıktığını tam olarak belirlemenizi sağlar .
CI platformunu tercih etmeyi tercih ederim, derhal on beş dakika önce yaptığım bir dosyada iki yöntemde meydana gelen değişiklikten (5023) yapılan düzeltmeyi kırdım, dört düzine dosyayı kapsayan ve temsil eden değişikliklerden oluşan revizyon 5023 yerine 13 saat çalışma.