Yavaş yavaş kod incelemeleri nasıl tanıtılır


26

Yarım düzine kıdemli mühendisle bir takıma liderlik ediyorum. Tüm standart nedenlerden dolayı kod incelemeleri yapmanın bize büyük fayda sağlayacağına inanıyorum. Her değişiklik değil, en azından sürekli bir arka plan incelemesi akışı. Böylece insanlar en azından başkalarının değişikliklerini görüyor ve onlar hakkında konuşmaya başlıyor.

İncelemeleri tanıtmanın iyi bir yolu var mı? Takımdan büyük bir isteksizlik hissediyorum, çünkü yapılacak sadece bir şey var ve konuşmalar acı çekebilir. En azından ilk adım olarak, her değişikliğin gözden geçirilmesinin başlangıçsız olduğunu hissediyorum. İnsanların ritmine girmelerini ve miktarı artırmadan önce düşük frekansta inceleme yapma uygulamalarını istiyorum.

Birisi başarıyla kod incelemeleri yavaş yavaş sundu? Nasıl? Ben "sıcak" dosyalar veya kütüphaneler üzerinde gözden geçirme gerektiren hakkında düşündüm. Ya da rastgele seçerek. Veya "seçim" i seçmem gereken değişiklikleri gözden geçirmem gerekiyor. Yoksa dalma ve her değişiklik gitmek için tek yol mu yapıyor?


Bu soruda yeterince vurgulamamıştım ancak “kademeli” buradaki kilit unsurdu. Değişikliklerin% 100'ünün gözden geçirilmesinin mümkün olduğunu sanmıyorum. Ancak sadece bir kısmı gözden geçiriyorsa, kısmı nasıl seçiliyor? Sadece "favori değişiklikleri" seç. Rastgele bir şey mi? Kurşun alır mı? Buradaki cevaplar harika ama aklımdaki "kademeli" kısımdan gerçekten etkilenmedi.
Philip,

Yanıtlar:


16

Bu bir takım veya işlem sorunu değildir. Kültürle ilgili. Eleştiriye duyarlı ve kendi çalışmalarını koruyan insanlardan oluşan bir takımı tarif edersiniz. Çok, çok yaygın. Ancak bu profesyonel değil.

Benim tavsiyem örnek olarak liderlik etmeye başlamak. Taahhütlerinizi gözden geçirme için teklif edin. İnsanların yaklaşımınızdaki sorunları vurgulamasını isteme konusunda açık olun. Geri bildirime açık olun. Savunmasız olmayın, bunun yerine geri bildirimin arkasındaki nedenleri araştırın ve bir ekip olarak eylemler üzerinde anlaşın. Açık diyalog atmosferini teşvik edin. Ekibinizde bunu yapmaya istekli bir veya iki şampiyon bulun.

Bu zor iş.


38

İlk adım birisine gidip "hey, kodumu gözden geçirir misin?" Demekti. Kuruluşunuzda görmek istediğiniz değişiklik olun. Bunu yapmak isteyen tek bir birey bulamazsanız, tüm takımı ikna edemezsiniz. Eğer ikiniz biraz başarılı olduysanız, takıma geri bildirimde bulunun.

Kodunuzu gözden geçirecek birisini bulduktan sonra, kodlarından bazılarını gözden geçirip geçirmeyeceklerini sorun. Sizin için bir öğrenme fırsatı olarak değil , kodlarını geliştirmeleri için bir fırsat olarak ifade edin .


10
“Hey, bu tasarımdan memnun değilim, ikinci bir göz küresi seti alabilir miyim?” Harika bir ilk adımdır. ++
RubberDuck

4

Bir takım lideri olarak, kod inceleme sürecinden en çok değer elde ettiğim şeyin neler olduğunun farkındalığı . Geliştirici için herhangi bir değişiklik veya önerim olmasa da, her değişiklik setini görme şansım olmasını seviyorum. Bu "farkındalık incelemeleri" diyorum. Onları 30 dakikadan daha kısa sürede çevirebilirim, böylece bir darboğaz olmaz.

Onlarla başlamanı öneririm. Kod gözden geçirme gönderme işlemini tanımlayın (TFS kullanıyorsanız oldukça kesilmiş ve kurutulmuş) ve herkesin değişiklik setlerini teslim etmeden önce size (ve yalnızca siz) göndermeye meşgul etmesini sağlayın. Onlara sadece farkındalık için olduğunu ve hiç kimse kodunu eleştirmeyeceğini söyleyin.

Bir veya birkaç farkındalık incelemesinden sonra, takımın diğer üyelerini birbirlerinin kodlarını incelemeleri için davet etmeye başlayın ... tekrar, sadece farkındalık için. İster inanın ister inanmayın, bu tek başına takım uyumu ve kod bütünlüğü için yardımcı olabilir.

Tüm ekibi meşgul ettikten sonra, muhtemelen geliştiricilerinizin birbirlerinin koduyla ilgili önerilerde bulunmaya karşı koyamayacaklarını göreceksiniz. Doğal ve organik olarak gerçekleşecek (mühendisler kendilerine yardım edemez!) Ekibinin bu konuyu görüşmesi için bir araya gelmesini sağlayın ve birbirlerine yapıcı geri bildirim sunmak için kılavuzlar hazırlayın. Sonra onları ayarlayın. Tebrikler, artık tam kod inceleme modundasınız!


1
"Farkındalık incelemeleri" kavramını ilginç bir kavram olarak çok beğeniyorum. Bir müşteri adayı için başkalarının yaptıkları hakkında farkındalık istemeniz doğal görünüyor. Fakat takımdaki herkes için dava açabileceğini düşünüyorum, başkalarının kendi çıkarlarımız ve kendi yararları için neler yaptıklarının farkında olmamız gerekiyor. Aksi takdirde bir takımda bile değiliz, sadece paralel çalışıyoruz.
Philip,

4

İncelemeleri tanıtmanın iyi bir yolu var mı?

Takımınıza ve incelemelerden almayı umduğunuz yararlara bağlı olarak, muhtemelen birkaç iyi yol vardır, ancak herhangi bir yaklaşımın bazı ortak özellikleri olacaktır:

  • Beklediğiniz şeyi açıklayın: Bu, ekibiniz için yeni bir süreç veya en azından mevcut süreçte bir değişiklik olduğu için, ekibin bu değişikliği neden yaptığınızı, ekibin nasıl faydalanacağını beklediğini bildirmek adil olur ve İşe yarayıp yaramadığını nasıl bileceksin.

  • Süreci tanımlayın: Kod gözden geçirme, değişiklikleri tartışma vb. için takip etmelerini istediğiniz süreçte insanları yürütün, böylece ekipteki herkes nasıl ilerleyeceğini bilir .

  • Kriterleri tanımlayın: İnsanların iyileştirilmesi gereken olarak adlandırması gereken ve göstermemesi gereken değişiklik türlerini belirleyin. Örneğin, hatalar ve önemli performans iyileştirmeleri dikkat çekmek için iyidir; kodlama standartları, okunabilirlik ve bakımla ilgili konular dikkate alınmalı, ancak üzerinde durulmamalıdır; kişisel zevk veya tarz ile ilgili konular yalnız bırakılmalıdır.

  • Davranışları tartışın: Amacın, kodu geliştirmek ve ekibin daha iyi kod yazmasına yardımcı olacak ortak bir anlayışı geliştirmek, kimseyi utandırmak değil, puanları koymak vb. olduğuna dikkat edin. Eleştiriler objektif ve yapıcı olmalı, asla kişisel olmamalıdır. Bazı temel kuralların belirlenmesi, kodun incelenmesine ilişkin nitelikleri hafifletmeye yardımcı olabilir.

  • önce kendinizi sıcak yerlere oturtun: Bireysel ya da grup incelemeleri yapmayı planlıyorsanız, grup olarak ilk birkaç kişiden geçmek iyi bir fikir olabilir. İlk inceleme kendi kodunuz olmalıdır, böylece diğer ekip üyeleri sürecin o kadar kötü olmadığını ve bu işlemi kendiniz yapmak istediğinizi görebilir.

Yukarıdakilerin hepsini açıklamak için bir başlangıç ​​toplantısı yaparak başlayın ve ekip üyelerinin endişelerini giderin. Süreci belgeleyen e-posta ile takip edin.

Takımdan büyük bir isteksizlik hissediyorum, çünkü yapılacak sadece bir şey var ve konuşmalar acı çekebilir.

Bunlar iki farklı kaygı. İncelemelerin faydalı olacağına inanıyorsanız, bunları yapmak için zamanlamaya zaman ayırmanız gerekir. Ekip üyelerinin gözden geçirmenin, diğer işleri aynı oranda tamamlamaya devam ederken yapmaları gereken ek bir şey değil, başka bir görev gibi çalıştığından emin olun.

Grup inceleme toplantıları, tartışmayı ilerleten, toplantı süresini kısıtlayan ve yapıcı tutan şeyleri kolaylaştırıcı tarafından yapılmalıdır. Acı verici sohbetlerden kaçınmak için bu çok uzun bir yol kat etmeli. Bireysel incelemeleri başlatmaya hazır olduğunuzda, ekip umarım işleri kendi başlarına yapıcı tutmalarına yardımcı olacak davranışları benimsemiş olacaktır.

Ayrıca, zaman zaman inceleme sürecini de gözden geçirmelisiniz. Süreci tartışmak için ekibi her zaman bir araya getirin: ne kadar iyi çalıştığı, nasıl geliştirilebileceği, hangi uygulamaların terk edilmesi gerektiği vs.


-2

Bunu yapmanın bir yolu, her bir sprintten sonra kod inceleme oturumları yapmak ve takımın içindeki herkesin katılabilmesi için kodun bir tür büyük ekrana yansıtıldığı herkesin değişikliklerini yapmaktır. Herhangi bir gelişme, biriktirme listesine teknik borç olarak eklenebilir.

Bu yaklaşım işe yarar, fakat mükemmel değildir.

Nihai hedef, kodu master'e geri getirmek için çekme isteğini kullanmak veya her kod satırının gözden geçirilmesi gereken şubeyi geliştirmek olacaktır.


3
Saat bir yineleme sırasında oluşan tüm kodunu incelemek için aşağı herkesi otururken onun üzerine gelme sonra (ve meşru çok geç) harika bir yolu sesler herkesin Kodu yorumlar fikrinden nefret yapmak.
RubberDuck

Peki .. bir sprint içinde oluşturulan kodu incelemek saatler alıyorsa, o zaman yanlış yapıyorsunuzdur, Sprint ya 6 aydır ya da 50 kişiden oluşan takım ya da geliştiriciler kodlama ya da en iyi uygulamalar hakkında hiçbir şey yapmaz. Kodlama yinelemeden sonra bitmediğinden asla geç değildir ve kod her zaman değişir ve sonraki yinelemelerde teknoloji borcu ele alınabilir. Ve kod incelemelerini bu şekilde yapmak, daha önce ne arayacağınızı ve böyle şeyleri görmek için hiç yapmayan geliştiricilere izin verir ... bir kez böyle başladıktan sonra yavaş yavaş çekme isteklerine doğru hareket ettirilebilir
Low Flying Pelican

7 kişilik ekibim, her iki haftada bir, ~ 3 düzinenin üzerinde birkaç bin satırlık kod satırını ekliyor / kaldırıyor / değiştiriyor. Bir PR'ın kalite incelemesi yaklaşık 15-60 dakika sürer. Ortalama PR, 3-4 işlemdir. Yani evet. Hepsini bir takım olarak bir kerede yaparsak, takıma 8 saat yerine 8 saat X 7 dev alacaktır. Yanlış bir şey yaptığımıza dair imalarına kızgınım. Haftada birkaç kez eşyalara gidiyoruz . Yapıyor musun?
RubberDuck

Her seferinde bir kere prod yapıyoruz
Low Flying Pelican
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.