TÜM geliştiricilerin kod değerlendirmeleri yapmasını sağlama


13

7-8 geliştirici ekibinin yazılım geliştiricisiyim. Kod incelemelerini uzun süredir yapıyoruz ve kod kalitesi zaman içinde arttı.

Ancak son zamanlarda bazı geliştiriciler diğerlerinden daha fazla kod değerlendirmeleri istendiğini fark ettim. Korkarım ki esnek tutumları yüzünden.

Benim görüşüme göre, kod incelemeleri bu şekilde yapılmamalıdır: tüm ekip bundan sorumlu olmalıdır ve kod gözden geçiricileri değişiklikleri kolayca kabul etme istekleri için seçilmemelidir.

Ekibinizdeki bu sorunla nasıl başa çıkıyorsunuz?

Kod inceleyenleri seçmek için kurallar belirlediniz mi?

Kod gözden geçirenlerin (iyi) kod incelemelerini yaparak harcadıkları zaman ödüllendirilmesi gerektiğini düşünüyor musunuz? Ve nasıl ödüllendirilmeliler?

Yanıtlarınız / fikirleriniz için teşekkürler.


7
Hem kodlayıcının kimin gözden geçirdiği hakkında karanlıkta hem de gözden geçirenin karanlıkta kodlayıcının kim olduğu hakkında bırakıldığı yuvarlak bir robin sistemi oluşturmayı düşündünüz mü?
Neil

1
Sevmedim, ama bu fikri seviyorum! Teşekkürler!
guillaumegallois

1
Sorumlu kim ve neden herkesin kendi işini yaptığını garantilemeyi gerektiren işleri yapmıyorlar?
JeffO

Ekibimde, çekme isteği her açıldığında gözden geçirenler otomatik olarak atanır. Hakemler, round-robin takımından seçilir. Halkla İlişkiler her açıldığında yorumcuları otomatik olarak atayan her depomuz için bir web çemberimiz var. Temel olarak tüm geliştiricilerin ve en son atananların bir listesini tutar ve sadece liste boyunca çalışır.
Dan Jones

Yanıtlar:


12

Gözden geçirenleri seçmiyoruz.

Ekibimizde:

  • Çekme İsteği tamamlanmadan önce tüm kod değişiklikleri kod gözden geçirilmelidir
  • En az bir geliştiricinin kod incelemesini kodlaması gerekir (iki veya daha fazla gözden geçiren daha iyidir ve test uzmanları, analistler ve kod incelemesi yapan diğer ekip üyelerine sahip olmak da son derece faydalıdır)

Kod İncelemeleri atanmamış, kullanıcılar onlar için çalışırken bunları alıyor. Anlama, hikayeleri boru hattından geçiremeyeceğimizdir. Bazen birileri standta bir CR beklediklerini söyleyecekler ama bu kadar.

Bu modeli beğendim, insanlara ellerinden geleni almalarını sağlıyor ve "insanlara iş vermekten" kaçınıyor.


6

Düzeltme için bir hatanın atanabileceği kuralını getirin, sadece değişikliği yapanlara değil, yalnızca inceleyenlere de. Bu, kod incelemesi için doğru perspektif oluşturmalıdır.

Gelince,

Kod gözden geçirenlerin (iyi) kod incelemelerini yaparak harcadıkları zaman ödüllendirilmesi gerektiğini düşünüyor musunuz?

Peki, sadece maaş almak ve yaptıklarıyla gurur duymak dışında, geliştiricilerin işlerini yaptıkları için nasıl ödüllendirildiklerinden emin değilim. Ancak inceleme kodu işlerinin bir parçası olduğundan, inceleme uzmanı inceleme için zaman kazanmalı ve krediyi bir şekilde paylaşmalıdır.


2
Bu ilginç bir fikir, ancak bir hata ortaya çıktığında, işin% 90'ı tam olarak hataya neyin neden olduğunu buluyor ve işin% 10'u düzeltiyor. Ne olup bittiğini veya güvenli bir düzeltmenin nasıl yapılacağını anlamaya yardımcı olmadıkça, hatayı tam olarak hangi değişikliğin getirdiğini anlamak için bir ölüm sonrası yapılması.
DaveG

Kod gözden geçirenlerin vermesi gereken kredi hakkında iyi bir noktaya değindiniz. Bu kesinlikle ele alınması gereken bir sorundur. Cevabınız için teşekkürler!
guillaumegallois

İnsanların kod incelemelerini hiç yapmamalarını sağlayabileceğini düşünüyorum ya da insanlar nitpick yapmaya başlayacağı için herhangi bir işiniz olmayacaktır.
Mateusz

5
Bu yanıt, kod incelemelerinin hedefinin hataları bulmak olduğunu varsayar. Durum böyle değil, birincil amaç kodu sürdürülebilir ve evrilebilir bir durumda tutmak (ve eğer şanslıysanız, bazı hatalar da bulunur).
Doc Brown

@DocBrown hataları önlemek ve ayrıca hatanın gelecekteki düzeltmesinin daha hızlı olmasını sağlamak için (hem diğer geliştiriciyi kodu
tanıyarak

4

Sahip olduğunuz temel sorun teknik değil, ancak bazı araçlar kod incelemelerinin harcadığı çaba miktarını düşürebilir. Üstesinden gelinmesi gereken birkaç zorluk vardır:

  • Değişikliğin ne olduğunu anlamak. Özellik dallarındaki Git Çekme İstekleri bu sürece gerçekten yardımcı olur.
  • Kod incelemesini, insanların aynı odada olması gereken bir olay haline getirmek. Bu, zamanlama, toplantı kaynakları, vb. Stresini ekler. GitHub, GitLab ve BitBucket eşzamanlı incelemelere izin verir, böylece eş hazır olduğunda gerçekleşebilir.
  • Koda bakarken anlamlı geri bildirim sağlama yeteneği. Dürüst olmak gerekirse, GitHub, GitLab, Bitbucket çekme isteklerindeki satır satır yorum özelliği, yüz yüze toplantıdan çok daha kullanışlıdır. Daha az politik geliyor.

Bu, SubVersion veya diğer araçları (Fisheye gibi) kullanamayacağınız anlamına gelmez, ancak Git boru hattına özellik dalları ile entegre edilen entegrasyon işi gerçekten daha az iş yapar.

Takımların dışında, daha fazla sosyal zorluğa bakmanız gerekir:

  • Geliştiricilerinizden çıkış yapmak için açık çekme isteklerini gözden geçirerek günlerine başlamasını sağlayın.
  • Geliştiricilerinize yeni bir görev başlatmadan önce tüm açık çekme isteklerini incelemelerini sağlayın
  • Çekme talepleriniz için birden fazla kişiden onay alın.

Ne tür görevlerin daha meşgul insanlar tarafından kod tarafından incelenmekte olduğunu da kontrol etmeye değer olabilir. Tüm kolay incelemeleri kapıyor olabilirler, bu da işleri herkes için daha acı verici hale getirir.


Son nokta iyi. Bir zamanlar küçük bir ekipte, ekibin başka yerlerinde önemli darboğazlara neden olan yazdığı yazılımdaki değişiklikleri gözden geçirecek bir geliştiriciyle çalıştım.
Robbie Dee

Bu durumda, "topraklarını" korumaya çalışan birinin olduğu anlaşılıyor. Mümkün olduğunca, kod için topluluk sahipliği duygusu geliştirmek istersiniz. Başka bir deyişle, kod içinde "kutsanmış" dışında başka hiçbir geliştiricinin dokunamayacağı korumalı kutsal alan yoktur. Özel bir boşluk olup olmadığını anlıyorum ve matematiği inceleyemezsiniz, ancak en azından kodun amacına ne kadar iyi uyduğunu inceleyebilirsiniz.
Berin Loritsch

2

İyi bir fikir, yuvarlak robin temelinde yapmaktır - kodunuz için en az sayıda yorum yapan birini seçersiniz. Zamanla, takımdaki herkesin kabaca eşit sayıda inceleme yapmış olması gerekir. Bilgiyi de yayar.

Açıkçası, pik ve olukların olacağı tatiller gibi nadir istisnalar olacaktır.

Gençler ve yaşlılar / olası satışlar arasında hiçbir ayrım olmamalıdır. Kod incelemeleri, ne kadar kıdemli olurlarsa olsunlar, herkesin kodu için yapılmalıdır. Sürtünmeyi azaltır ve farklı yaklaşımları paylaşmaya yardımcı olur.

Tüm bunlardan sonra incelemelerin kalitesi konusunda hala endişeleriniz varsa, bir kod incelemesinin geçmesi için bir dizi minimum standart getirmeyi düşünün. Eklediğiniz şey tamamen size kalmış, ancak dikkate almanız gereken bazı şeyler kod kapsamı, birim testleri, yorumlanmış kodu kaldırma, metrikler, yeterli yorumlar, yapı kalitesi, KATI ilkeler, KURU, ÖPÜCÜ vb.

Kod değerlendirmeleri incentivising gelince, kalite kodu olan ödül. Ağrının önemli ölçüde azaltılabileceği en uygun olmayan kod tabanları üzerinde çalıştığımdan eminim.


0

Takımın kod incelemeleri için resmi bir süreçten yoksun olduğu anlaşılıyor.

350 sayfalık bir Word belgesi oluşturmaktan bahsetmiyorum, ancak sürecin neyle ilgili olduğuna dair bazı basit madde işaretleri.

Önemli bitler:

  1. Temel bir hakem grubu tanımlayın. Genel açıklama yok. İnsanları adlandırın.

    Bunlar kıdemli geliştiricileriniz olmalıdır.

  2. İncelemede oturumu kapatmak için 1'den fazla çekirdek denetleyiciye gereksinim duyun.

  3. Her bir sprint veya geçici bir çekirdek gözden geçiren olan en az 1 diğer çekirdek olmayan gözden geçireni belirleyin. Bu süre zarfında tüm kod incelemelerinde bunların kapatılmasını isteyin.

3. madde diğer geliştiricilerin çekirdek inceleme grubuna geçmesine izin verir. Bazı haftalarda incelemelere diğerlerinden daha fazla zaman harcayacaklar. Bu dengeleyici bir eylemdir.

İnsanları ödüllendirmeye gelince? Çoğu zaman, bir kişinin tüm ekibin önündeki kod incelemesi sırasında gösterdiği çabayı kabul edebilir, ancak bu konuda kendinizi strese sokmayın.

Şüphe duyduğunuzda, süreci tanımlayın ve ekibe yapmaları gerektiğini söyleyin.

Ve deneyebileceğiniz son bir şey var - olduğu gibi tartışmalı: bir deyim kullanabilsem, @ # $% fanına çarpsın.

Kod gözden geçirme süreci izlenmediği için ekibin başarısız olmasına izin verin. Yönetim devreye girecek ve insanlar değişecek. Bu gerçekten sadece bir süreci zaten tanımladığınız ve ekibin buna uymayı reddettiği en uç durumlarda iyi bir fikirdir. İnsanları kovma veya onları disipline etme yetkiniz yoksa (çoğu öncü geliştiricinin yapmadığı gibi ), o zaman bu şeyleri yapabilecek birisini dahil etmeniz gerekir.

Ve bir şeyleri değiştirememek gibi bir şey yok. İnsanlar ne diyebilirsiniz rağmen, olabilir Titanik yönlendirmek - ama buz kasabayı vurur önce değil.

Bazen Titanik'in buz burcuna çarpmasına izin vermeniz yeterlidir.

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.