Genç geliştiricileri kod incelemesine katılmaları nasıl teşvik edilir?


13

Şu anda altımda 3 juniors ile üst düzey bir dev olarak çalışıyorum ve üretime giden kod kalitesini yönetmek için bir kod inceleme süreci tanıttı.

Birbirimizin çalışmasını gözden geçirmenin hepimiz için çok yararlı olduğunu hissediyorum, ancak sürecin yaklaşık 5 haftasından sonra araçta herhangi bir yorum yapan tek kişi benim (BitBucket).

İş yerinde kısmen kültürel konular olduğunu ve yorumlarının yanlış olması durumunda belki de doğal bir isteksizlik olduğunu düşünüyorum, ancak herhangi bir yol var mı ve gençlerin mayın ve diğerlerinin çalışmasını eleştirmek için daha rahat hissetmelerine yardımcı olabilirim?


2
Bunun Workplace.SE için daha iyi bir soru olup olmayacağını merak ediyorum, ancak bir geliştirici olarak kendi 2 sentim. Stajyerken, birkaç nedenden dolayı kod incelemelerine katılma konusunda çok gergindim: beceri eksikliği, kod tabanına aşinalık eksikliği, vb. özellikle tanıdıklık) ve kod tabanımızın ilgi duyduğum bir şey olduğunu hissettirerek gerçekten yardımcı oldu, bu yüzden katkıda bulunmak istedim. Kesinlikle her zaman harika yorumlar bırakmadım, ama ben (devam) kadar bilmiyordum
Dannnno

2
(devam) denedi ve bir bütün olarak ekiple daha iyi çalışmama yardımcı oldu. Sizce, takımın ve kod tabanının sizin için neden yararlı olduğunu açıklamaya çalışırsanız, yorumları yanlış olsa bile; yorumları yanlışsa, bu neredeyse daha iyi çünkü o zaman ondan öğrenebilirler.
Dannnno

Yanıtlar:


15

Bana göre buradaki soru, "küçük geliştiricilerinizin kod değerlendirmelerinden kurtulmak için ne arıyorsun?". Bana göre, potansiyel olarak en önemli şey, genç geliştiricilerin umarım iyi kodun ne olduğuna bakarak öğrenmeleri; kodunuzda da sorunlar bulurlarsa, bu bir bonus.

Küçük personelinizi kod incelemelerinden öğrenmek için arıyorsanız, yapmanız gereken en önemli şey, öğrenmenin değerli olduğu ve zaman kaybı olarak görülmeyen bir ortam yaratmaktır. Bu birkaç şey anlamına gelir:

  • Aptalca bir soru diye bir şey yoktur . Birisi biraz kod anlamıyorsa, neden belirli bir desen veya başka bir şey kullandığınızı, zamanınızı veya diğer geliştiricilerin zamanını boşa harcadığını hissetmeden hiç sormaya çekinmeyin. .
  • Öğrenmek için harcanan zaman iyi harcanan zamandır . Sen istiyorsun gelecekte, onları daha iyi hale getirmek için daha üretken personel gidiyor çünkü senin küçük geliştiriciler, kod bakıyor ve ondan öğrenmeye vakit geçirmek için. Şimdi incelenmesi gereken kritik bir düzeltme olmadığı sürece , kod incelemelerinde daha az değil, daha fazla zaman harcamalarını teşvik edin.
  • Kıdemli personel her zaman haklı değildir . Bunu daha uzun süredir yapmak, haklı olduğun anlamına gelmez. Eğer bir hata bulduğunu düşünürlerse, muhtemelen haklılar. Başka bir tasarım modelinin bu kod parçası için uygun olacağını düşünüyorlarsa, olumsuz geri bildirim almadan bunu söylemekten çekinmeyin.

Giriş için çok teşekkürler, bunu düşüneceğim ve yarın
Graham S

1
Şunu da ekleyeceğim: uzman olmanın yolu hata yapmak ve onlardan öğrenmek. pratik bir konu olarak, sr için yararlı olabilir. devs, geçmiş vidalamaları hakkında bazı savaş hikayeleri anlatmak için.

5

Her hafta belirlenen saatte kod inceleme toplantılarını bizzat yaptırınız. Bunu takım arkadaşıma böyle sattım (aslında ikimiz de geliştiriciyiz, ama her neyse):

"Kod incelemesi, kodunuzu biraz daha iyi tanımak ve bir gün bir kamyona çarparsanız ve sprintinizi bitirmem emrimi verdiyse, şeylerin yanınızda neler olduğunu bilmek için kısmen orada. kodunuzu başka birine açıklamanız için orada, çünkü bunu yaptığınızda, beyninizin farklı bir parçasına giriyor ve çoğu zaman onlara açıklamalarınız ve / veya soruları veya yorumları unuttuğunuz bir şeyi hatırlamanıza neden olabilir. veya kodun daha okunaklı hale getirilmesi veya daha iyi yapılandırılması için daha iyi bir yol gerçekleştirmenize neden olabilir. Bu daha güzel bir kod sağlar. "

Bunu bir gösteri ve anlat olarak düşünmeyi seviyorum. İnsanlar çalışmalarını akranlarına gösterirler. Bu meslektaşlarınızın çalışmanızda kimsenin hissini sevmediği yanlış şeyler bulmasıyla ilgili değildir. Bu, herkesin hissini sevdiği harika kodunuzla arkadaşlarınızı etkilemekle ilgilidir.

Ancak ben insan etkileşimi, bir odada hiçbir toplantı, beyaz tahta yok kod inceleme araçları kullanarak düşünüyorum ... bu sadece yapmak için can sıkıcı bir başka şey olur. Bu tür araçlar olmamalıdır, ancak kod inceleme toplantısı sırasında, belirli bir kod bölümünün daha ayrıntılı bir incelemesinin gerekli olabileceği anlaşılırsa, başvurmanız gereken bir şey olmalıdır. Daha sonra, genç geliştiricilerden birini, diğerinin kodunu belirli bir alanda incelemesi için atayabilirsiniz.


Beyninizin farklı bir bölümünü meşgul etmek için +1. Benim tecrübelerime göre, özellikle küçük bir dev olduğumda, sadece kodumun akran tarafından inceleneceğini bilmek, aksi takdirde görmezden gelebileceğim ayrıntılara dikkat etmemi sağladı.
Laconic Droid

0

İyi bir örnek belirleyerek yardımcı olabilirsiniz. Birisi hatalarınızı gösterdiğinde savunma yapamazsınız. Kendi kodunuzda bir kod incelemesi yapın ve iyileştirme alanlarını not edin. Bunu ekiple paylaşın. Sonunda, bunun teşvik edildiğini öğrenecekler ve hiç kimse kodlarında bir hata olduğu için dövülmeyecek.

Bir işe sahip olmak, işinizde sorumluluk ve gurur duymak demektir. Kod incelemesi bunun bir parçasıysa, kod incelemesine katılım değerlendirmelere dahil edilmelidir. Çevrimiçi tartışmalara katılımın notun bir parçası olduğu çevrimiçi dersler aldım. Yorumların üzerinde durulması gerekiyor. "Kabul ediyorum" kabul edilemez.

Kod incelemesi kodu geliştirmelidir. Durumunuza bağlı olarak, dahili kullanım için kod yazarsanız satış numaraları, kullanıcı şikayetleri veya başka bir derece ile ölçülebilir. Gerçek şu ki, kodunuz bir amaca hizmet eder ve ekibiniz bu amaca ne kadar iyi hizmet ettiklerine göre ölçülmelidir. Karar verdiğiniz kişiler başarıya katkıda bulunur, ödüllerde orantılı olarak paylaşır.

Kalite kodunu yayınlamaya odaklanın. Amaç, böceklerden kaçarak herkesin kendilerini iyi hissetmesi değildir. Kötü kod yazıyorum; Bozuk kodu düzeltmem gerekiyor. Bu iş ve hayat. Hataları düzeltmekten nefret ediyorum, bu yüzden onlardan kaçınmaya çalışıyorum. İşimle gurur duyuyorum, bu yüzden kodum çalışmadığında beni rahatsız ediyor. Bu şeyleri belirtmek için zaman ayırması gereken kullanıcılar veya başkaları için üzülüyorum ve bunu düzeltmek istemem beni motive ediyor.

Bir yan not olarak, kimsenin yapıcı eleştiriyi veremeyeceği veya kabul edemeyeceği bir ortamınız varsa, bir sorununuz var demektir.


-3

Süreç: Birisi değişikliklerini yapmak istiyor. Birisi gözden geçiren olarak atanır ve değişiklikleri inceler. Ardından gözden geçirilen ve düzeltilen değişiklikler teste gider.

Test, değişikliğe getirilen hataları bulursa, yazar ve hakem aynı şekilde suçlanır.

Bu yüzden herhangi bir yorum yapmadan bir inceleme yapmak, kod mükemmel olmadığı sürece belaya girer.


5
1) Hatalar için "suçlama" atamak personelinizin ayrılmasına neden olmak için harika bir yoldur 2) Üst düzey personel tarafından yazılan hataları tespit edemediği için küçük personele suçlu atamak iki kat kötüdür.
Philip Kendall

2
@PhilipKendall Kodumda bir hata varsa, kimsenin beni suçlaması gerekmez. Ben bir profesyonelim ve çalışmalarım için gerçek bir gurur ve sorumluluk alıyorum. Bu, kimsenin yanlış bir şey yapmadığı ve herkesin katılım için bir kupa aldığı bir tür yeni çağ meselesi mi?
JeffO

@PhilipKendall: Nerede çalıştığını bilmiyorum ... Nerede çalıştığımı "ne kadar aptalca bir hata yaptığımı" söyleyeceğim ve hakem der ki "ve ben de özledim" ve sonra ikimiz de gülüyoruz. "Suçlama" sorumluluk almak anlamına gelir, aptal bir şapka ile köşede durmamak.
gnasher729

1
@ gnasher729 Evet. Ama kimse bunun için "belaya girmez".
Philip Kendall
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.