Kod incelemesi fikrinden hoşlanmayan biriyle nasıl baş edilir?


26

Açıkçası, eğer yönetim kod incelemeleriyle zaman harcarsa, o zaman herkesin yapması gerekir.

Ancak her zaman varlıklarının her onsuyla direnen bu adamlar (veya kızlar) vardır.

Bu senaryo ile baş etmeyi meslektaş yorumcusu olarak ele alırken nasıl etkili bir şekilde yönetirsiniz?


19
Muhtemelen aynı kıyafet, zaman, hastalık, vb. Gibi diğer konularla ilgilenen insanlarla da aynı şekilde
Josh K

hehe .... Nitelikli olarak denedim ki, bit hakkında herkesin yapması gerektiğini söyleyen yönetim hakkında, aradığım şey, en düşük düzeyde akran gözden geçiren kişinin bunu denemesi ve yapması gerektiği zamanları.
ozz

3
Dürüst olmak gerekirse: Onlara çenelerini kapatmalarını ve yapmalarını söyleyin. Onların iyiliği için.
Steven Evers

1
Neye direnmek? Kodlarını görmene mi izin verdin yoksa sana mı bakıyorsun? Çatışmadan kaçınıyor olabilirler, çatışmayı bekleyebilirler mi? Neden tereddütlü olduklarını biliyor musunuz?
Martin Maat

Yanıtlar:


46

Korku yüzünden direniyor . Bu şartlanma , çocukken, okulda, işte veya hatta şu anki ekibinizde gözden geçirme konusundaki kötü deneyimlerin bir sonucu olabilir. Modern toplumlarımızda, birisinin çalışma çıktısını bir insan olarak değeri ile karıştırmamız çok yaygın. İşte bu yüzden iş yerindeki eleştiriler iyi algılanmıyor. Bu yüzden, halk arasında en yaygın fobilerden birinde (yargılama korkusu) konuşmak da bu yüzdendir.

Bu tür davranışlardan kaçınmak için biraz psikolojiye ihtiyacınız olacak. Kertenkelesinin beynine , incelemeleri kodlaması için onu duyarsızlaştırarak (o yargılanmayacak, aşağılanmayacak, öldürülmeyecek, hiçbir şey olmayacak) ispat etmelisin .

Birinin engellemesini kaldırdığım en etkili yöntemlerden biri, kodunu gözden geçirmeden önce kodunuzu incelemesini istemek.

Bir süre sonra teklif ondan öğrenmek için onun kodunu okumasını ve neden önermek iyileştirmeler. Değiştirecek bir şey bulduğunuzda yazdıklarınıza dikkat edin. Korkacak bir şey olmadığını anlayacak ve yalnızca inceleme sürecinin olumlu bir kısmını üstlenecek: bilgisini öğrenmek ve artırmak .


3
Bilmediğiniz kişiler için "kertenkele beyni" için bir tanım eklemek isteyebilirsiniz.
Adam Lear

@Anna: Bağlantıyı bir tanımlamaya ekledim.

Müthiş cevap Pierre! Son bir cevap yerine şimdilik oylandı.
ozz

1
@Aaron: Bu soruda adı geçen "birisine" değiniyordum. Evet, çoğumuz gibi hem çocuğumda hem de yetişkin yaşamındaki rahatsızlıktan dolayı hala irrasyonel korkularım var. Örnekler: Mantıksız bir korkum var. Yapabildiğim zaman kendime duyarlılık duyuyorum. Geçen hafta sonu bir kaleyi ziyaret ettim (Fransızlar ve Almanlar arasındaki ardışık savaş nedeniyle ülkemde çok yaygındı) ve bir tramvay tramvayına binmek zorunda kaldım.

1
Her zamanki gibi mükemmel bir cevap Pierre.
Josh K,

5

Çiftler halinde çalışmayı denerdim - fikirden nefret eden birini, hoşuna giden birisiyle ekip edin ve birkaç hafta boyunca birbirlerinin kodlarını gözden geçirmelerini isteyin. Açıkçası, bu yardım edebilir veya etmeyebilir, ancak incelemenin her iki ucunda olmak, en azından sürecin daha ayrıntılı bir görüntüsünü verecektir. Bir çift çalışmanın birlikte olması, birbirlerinin tarzına ve genel hatalarına aşina olmalarını sağlayacak ve lastik damga yerine, birbirlerinin daha iyi olmalarına yardımcı olmaları için zaman tanıyacaktır. Bu aynı zamanda çalışma ortamınızda çift programlamayı teşvik etmenize yardımcı olabilir, çünkü sadece gözden geçirmek için değil, sıfırdan planlamak ve hatta planlamak ve kodlamak için artan bir eğilim görebileceğinizi düşünüyorum.

İlgisiz partiler denemek istedikleri sürece, bu yardımcı olabilir. Eğer düşünmeyi reddederlerse, takımda oldukları sürece bu konuda yapabileceğiniz pek bir şey yoktur.


Çift programlama bir başka konudur, fakat harika bir öneri!
ozz

Yorumunuz PP hakkında biraz daha düşünmeme neden oldu, bu yüzden başka bir Q daha başladım - programmers.stackexchange.com/questions/39878/… Teşekkürler!
ozz

4

@ Pierre'in cevabı, kod incelemesinden korkan biri için doğru yolda. Başka bir durum hayal edebiliyorum. Kod incelemesi yapan bir yıldız programcısı zaman kaybıdır, çünkü kod kabul edilebilir bir kalite ve doğruluk standardına ulaşır. Bu durumda bir kod incelemesinin zaman kaybı ve cadı avı olduğunu düşünebilirler. (Bu, hiçbiri olmadığında bir problem araştırmasıdır.)

Bu durumda, gözden geçirmenin amacını yeniden yönlendiririm. Kod incelemesinde kodda "problemler" bulma ile ilgili olmak yerine, hedefleri veya olası gelecekteki geliştirmeleri veya ek tasarım özelliklerini yeniden değerlendirmek için bir arama olarak düşünün. Bu şekilde, hem kodlayıcı hem de hakem bu sürece katılır ve umarım bu kodlayıcı, zamanın iyi bir şekilde kullanılmaya başlandığı gibi hissedecektir.


5
Bu tür bir insanla, kodlarını incelemekten büyük heyecan duyduklarını söylemeyi deneyebilirsiniz, çünkü onlardan çok şey öğreneceğinizi düşünüyorsunuz. Kod incelemesi yalnızca kodun iyileştirilmesi ile ilgili değildir, aynı zamanda ekipteki diğer kişilerin de gelecekteki gelişiminde onlara yardımcı olacak daha iyi koda maruz kalmalarıyla ilgilidir.
HLGEM

2

Açıkçası, iyi yönetilen bir mağazanız varsa, bu sorunun bir anlamı yoktur:

1) Eğer işin bir parçasıysa, yapmalısınız, ya da asılsızsınızdır. Yapmaları gereken işin bir bölümünü yapmayı kesinlikle reddeden biri konserve almalıdır. Programlama bir zanaat ve bir meslektir - yorumcular ve yöneticiler şımarık çocuklarla uğraşmamak için (her yaşta) işin yapılmasına yardımcı olmak için oradadır.

2) Eğer iyi yönetilen bir kaynak kontrol sisteminiz varsa (ki bu herhangi bir profesyonel yazılım mağazasında olmazsa olmaz), kodları beğenip beğenmeyecekleri incelenebilir. Bu yüzden onların kodunu gözden geçirin:

  • Eğer iyiyse, onları bilgilendirin ve onlara arkalarına birer pat verin - bu da katılımı teşvik edecektir.

  • Eğer iyi değilse, bilmelerini sağla. Bunun, kendilerini savunmak için onları katılmaya motive etme etkisi olmalı. Olmazsa, cezai önlemleri kullanabilirsiniz: Mali cezalar, statüdeki düşkünlükler, vb. Çalışmanıza rağmen, bu çalışan gelemezse, IMO kötü bir çalışanınız olur ve kapı gösterilmeli.


Bu tamamen umutsuz bir tavsiye, sizin için gerçekten kötü çalışma ortamına sahip bir "dükkan" öngörüyorum. Urgghh!
cognacc

@cognacc - Hiçbir şey 'beklemene' gerek yok. Çok iyi bir çalışma ortamına sahip olduğumuz 25 yıldır gruplar halinde çalışıyorum : Hepimiz yetişkiniz ve profesyonel olmanın ve işimiz için hesap verme sorumluluğunun ne olduğunu anlıyoruz.
Vektör

1
Vector ile aynı fikirdeyim. Sürecin bir parçası ise, herkes yapıyor ve eminim hızlı bir şekilde "ısırmaz" görüyorlar. Elbette bazı kişilerin bir kod incelemesinde yorumlarında "kaba" olma riski vardır, elbette, ancak o zaman başa çıkması gereken insanlar - tıpkı iş arkadaşlarına şahsen kaba davranırlarsa olduğu gibi.
MetalMikester

Konyak ile katılıyorum, bir strateji veya çözüm önermediği için işe yaramaz. Sadece "mecbur oldukları için yapmalılar" diyor. Duh. Asıl soru, onlarla nasıl başa çıkılacağı gibi nasıl başa çıkılacağıdır. İnsanları kendi isteklerine (veya başka şeylere) karşı bir şey yapmak, sorunu çözmek değil, muhtemelen yenilerini oluşturmaktır. Önce direnişin kökenini anlamalısınız.
Martin Maat

Düşüncelerimi iyi yönetilen mağazamı ve ondan sonra gelenleri kaçırdınız : Bu, yetişkinlerle uğraştığınız anlamına gelir: İşlerinin ne anlama geldiğini ve ne anlama geldiğini bilen insanlar. Bolca net cevabımı anlamadım.
Vektör

1

Kod incelemelerinin uygun şekilde yapılmadığı yerlerde bazı olumsuz deneyimler var mı? Yasal kaygıları olabilir.

Tatbikat için kesinlikle bir hak görmüyorlarsa, sabırlı olmalarını isteyin ve sonuç olarak kodlarına ve özellikle diğerlerinin (eğer mükemmel olduğunu düşünüyorlarsa) ne olacağını görün.

Kod Gözden Geçirme 'gelişmeyi iyileştirmeli', ancak gerçekte çalışan bir sisteminiz olana kadar neden birileri bunu yapmak istesin ki?


Teşekkürler Jeff, katılıyorum, eğer süreç iyi değilse, zor olacak ve kimsenin mantıksız korkularını aşmak zor olabilir - bazı insanlar değişmeyecek!
ozz

1
ama gerçekten çalışan bir sisteme sahip olana kadar, neden biri bunu yapmak istesin ki? Bu konuda vahşi bir bıçak izleyeyim: Sistemin neden çalışmadığını anlayabilmen için mi?
Vektör

1
@Vektör - Programcılar nasıl çalışacağını çözemezlerse, daha büyük sorunları olabilir. Ayrıca yönetimin bir miktar sorumluluk alması ve kalite kodunun net bir tanımını yapması gerektiğini düşünüyorum. Serbest bırakılan kodda çok fazla hata yoksa, kod incelemesini içermemek için iyi bir neden olabilir. Her türlü karmaşıklığa sahip bir proje için, bunun kalite kodu incelemesi veya muhtemelen orantısız miktarda geliştirme süresi ve maliyeti olmadan gerçekleşmekte olduğundan şüpheliyim.
JeffO

@JeffO - Tamam, amacınızı anlıyorum: Sistem gerçekten işe yaramazsa, bu "kod incelemesi" meselesi değil, soru programcının yetkinliği, ve çok basit "kod incelemesi" çözümü değil. Buna katılıyorum.
Vektör

1

Şahsen, nüfusun% 100'üyle kazanamayacağımız bazı kavgalar olduğunu düşünüyorum.

Çift programlamanın neden birileri bunu yapmaya zorlandığında işe yaramayacağına dair yeterli sebep görebiliyorum.

Ancak kod incelemeleri farklıdır - çalışma alışkanlıklarınızı değil, verimliliğinizi değiştirir.

Yönetim, üretkenlik nedeniyle direnci azaltmak için birkaç şey yapabilir: 1) Tüm geliştiriciler için hızdaki düşüşü kabul edin. 2) Gözden geçirme döngüleri nedeniyle (örneğin, geliştiricilerin yerel bir depoya sahip olmalarını sağlamak için) birden fazla sürümün yönetimi ve birleştirilmesi ile ilgili uygun araçları sağlayın. yorum.

Bunu yaparlarsa, herkesin katılmasını istemek meşru, IMHO. Şimdi çalıştığım şirket bunu global olarak zorlar - bir sahibinin onayı olmadan teslim edemezsiniz. Bu da işleri yavaşlatırken, birçok kazayı da engelliyor.


tamamen katılıyorum Uri ... kazanamayacağın bazı insanlar var. Belki de kendi yollarına yerleştirilmişlerdir, tembeldirler, yollarının doğru olduğunu düşünürler ya da sadece düz umursamazlar !!
ozz

0

Kod incelemesini zorunlu hale getirmek için teknik önlemler kullandık.

Kod incelememizi tanıttığımız yol, kaynak kontrolümüzde, bir başkası tarafından, daha sonra onu basan tarafından imzalanmayan kodu birleştirmek imkansız olmasıdır.


-1

Onları kov

Bu kadar basit - yalnız bir proje alırlar ya da gitmek zorunda kalırlar. Onları ekibinizden uzaklaştırın. Sadece rollerini yapmakla kalmıyorlar, takım moralini ve uygulamalarını da yıpratıyorlar.

Şimdi, ekibinizin% 50'sini kovmanız gerekiyorsa, o zaman ...

Anlama

Neden bazıları reddediyor? Zamanları yok mu? Yanmışlar mı? Deneyimleri hiç yaşamadıkları bir şey hakkında mı? Bunun bir zaman kaybı olduğunu düşünüyorlar mı, öyleyse neden?

Çevik metodoloji bu konuda yardımcı olacaktır - silolara karşı sürekli çalıştığınızı (yani otobüs faktörünü azaltmak için) ve ekibinizdeki kişilerin başkalarının yaptıklarına karıştığını farz ediyorum.

Bireysel birleştirme isteklerinin oldukça küçük olmasını sağlamak için çalışın. 1'den fazla değişiklik ekranıysa, ne yapıldığını açıklamak için bir stand-up veya şimşek konuşması gerekir. 10 sayfa ise, slaytlar ve mimari şemaları ile bir sunum yapması gerekir.

Söz konusu herkes aynı proje üzerinde çalışıyor mu?

Proje zaten teknik borç dağının altına gömüldü mü?

Projeye ve sürekli gelişime inanıyorlar mı?


1
Hmmmm .... kod incelemelerinin maliyetten otomatik olarak daha fazla fayda sağladığına inanmamak, bir kişinin görevini yerine getirmediği ve kovulmaları için o kadar çok takım moralini bozmadığı anlamına mı geliyor? Bu, iddiayı kesin olarak destekleyen kanıtlara dayanmayan oldukça cesur bir duruş.
Dunk,

@Dunk, inceleme karşıtı mısınız? O zaman benim takımımda olmayacaksın. İnceleme uzmanı mısınız? O zaman benim iddiamı şimdiden destek olarak biliyorsun. Kararsız mısın? Lütfen kararını
ver

İnceleme karşıtı biri değilim ama aynı zamanda maliyete göre makul bir fayda sağlamadığı zamanları da biliyorum. Bazı projeler / ekipler kesinlikle resmi kod incelemelerine ihtiyaç duyarken, diğer projeler / ekipler yalnızca yararlı gördüğü zaman bunları yapar. Kod incelemelerinin her zaman gerekli olduğu varsayımınız, gerçek faydaları ve kısıtlamaları bile bilmediğinizi söylüyor. Yani haklısın. Senin takımında olmayacağım ve bu senin için büyük bir kayıp olur.
Dunk
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.