Patronun kod incelemesinin iyi bir şey olduğuna ikna etme konusunda ipuçları [kapalı]


20

Diyelim ki, nadiren projelerde birlikte çalışan birkaç geliştiriciye sahip olan varsayımsal bir şirkette çalışıyor ve Patron, kod incelemelerinin zaman ve maliyete değer olduğuna inanmadı.

Bu senaryoda, kod incelemesinin faydasını gösterecek çeşitli argümanlar nelerdir? Ayrıca, burada kod incelemesine karşı potansiyel argümanlar nelerdir ve bunlar nasıl düzeltilebilir?

Yanıtlar:


25

Kendinizi böyle temel şeyler için haklı çıkarmanız gerekiyorsa, daha büyük bir sorununuz var.

Siz uzmansınız, ekibiniz hangi uygulamaları kullandığınıza karar vermelidir. Belki de patronunuzu bu çok önemli prensibe ikna etmeye başlamalısınız.

Patronunuzun ne yapacağına ve daha da önemlisi NEDEN yapmaya karar vermesi gerekiyor . NASIL onu inşa etmelisin

(bu elbette şirketinizdeki şeyleri neden ve neden yapabileceğinizi öneremeyeceğiniz anlamına gelmez). Büyük bir patron, çalışanlarını kurumsal stratejiye katılmaya teşvik etmelidir)

Ancak burada nasıl emsal kodu değerlendirmeleri görüntülemek:

Programlama çok yoğun bir entelektüel çalışma olduğundan, bir kişi her şeyin mükemmel olduğundan emin olamaz. Bu nedenle kod incelemesi şunlardan emin olun:

  • güvenlik açıkları veya hatalar uygulama gönderilmeden önce bulunur
  • geliştiriciler arasında sürekli karşılıklı eğitim (neredeyse ücretsiz) sağlanır
  • daha kolay uygulama bakımı için kod saygı standardı
  • kod gereksinimleri karşılar

Herkes doğrudan faydalanıyor:

  • bilgisini artıran ve takım arkadaşlarına kendi bilgisini iletebilen geliştirici
  • daha az hata içeren ve bakımda daha az harcama yapan müşteri / kullanıcı
  • daha mutlu müşterileri / kullanıcıları olan ve eğitimlerde daha az harcama yapan patron

1
Ortalama olarak% 65 hata yakaladığını ve sadece bunu değil, aynı zamanda birim testlerin genellikle yapmadığı birçok şeyi yakaladığını söyleyebilirsiniz.
Spudd86

Paylaşmak için çalışmanın bir bağlantısı var mı, böylece gelecekte kullanabilir miyim?

2
Greg Wilson'un "Kanıt Bitleri" adlı sunumunun 21. slaytından "Sıkı denetimler, ilk test yapılmadan önce hataların% 60-90'ını kaldırabildiğini" iddia ediyor. (Fagan 1975) "Büyük alıntıları var. :)
Scott Whitlock

7

Kod incelemesi, birden fazla geliştiriciyi aynı kodu tanıyabilir. Bu iyi birşey. Orijinal yazar bırakmaya veya daha kötüye karar verirse, ona kötü bir şey olur. Kod incelemeleri düzenli olarak yapılırsa, diğerleri hızlı bir şekilde ele geçirebilir.

Eşler, kod incelemesi sırasında olası hataları veya performans sorunlarını tespit edebilir. Bu, KG ve geliştirme çabalarını azaltır. Bu, kod incelemelerinde yer alan ek maliyeti telafi edebilir.

Kod incelemeleri bilgi paylaşımını teşvik eder. Akranlar daha iyi veya alternatif şeyler yapma yollarını anlatabilirler. Kendim kod değerlendirmeleri yoluyla akranlarımdan çok şey öğrendim.

Kod incelemeleri, ekip tarafından takip edilen kodlama yönergelerinin güçlendirilmesine yardımcı olur. Takımda bir tane yoksa, düzeltilmesi gerekir. Kod bir kez yazılmalı ve birçok kez okunmalıdır. Kodlama kuralları okunabilir koda doğru bir adımdır. Kod akranlar tarafından okunabilir. Okunabilirliği sağlamak için kod incelemelerine sahip olmaktan daha iyi bir yol var mı?


4

Burada harika cevaplar var. Ekleyeceğim bazı şeyler:

Kodu bir başkasına açıklamanız gerektiğinde, genellikle açıklama sırasında geliştirici aniden bir hata olduğunu fark edebilir. Bu geliştiricinin hatayı görmek için yeterince iyi bir şey anlamadan önce geliştiricinin parçalarında durduğunu ve "ah beklemek yanlış" dediğini tekrar tekrar gördüm.

Kodunuzun başkası tarafından denetleneceğini bilmek, kodlama standartlarını (bakımı kolaylaştırır) kullanmaya veya kendinizin (hatta bazen kendinizin bile) hiç kimsenin anlamayacağı daha az "kovboy" yöntemlerini kullanmaya daha fazla teşvik eder. Kodunuzu başka birine gösterdiğinizde utanmak istemezsiniz, bu yüzden ilk etapta daha iyi bir iş çıkarırsınız. Utanç faktörü nedeniyle, kodun daha az yorumlandığı anlamına gelir: "Bunun neden çalıştığını bilmiyorum ama onunla uğraşmayın." kod tabanında.

Daha kapsamlı denetim veya eğitime ihtiyaç duyan geliştiriciler kolayca tanımlanabilir. Aynen öyle de yetersiz. Performans sorunlarını ne kadar çabuk bulabilir ve ele alırsanız, bir bütün olarak takımdan o kadar iyi olur ve uygulamanın kalitesi o kadar yüksek olur. Eğitime ihtiyaç duyan yeni adamı almadan ve başvurunuzun en zor ve en kritik kısmına atamadan önce bu bilgileri öğrenmek güzeldir.

Bazen sadece başka bir yerde aynı hatayı yapmayı kurtaracak bir yanlış algıyı düzeltmektir. Örneğin, son zamanlarda karmaşık raporlar için bazı SQL'leri inceliyorduk ve yeni geliştiricilerimizin birçoğunun veritabanında belirli bir bilgi parçasını nerede bulacağına dair yanlış anlamalara sahip olduklarını gördük (itiraf ettikleri yer bir veritabanı tasarım sorunu olan mantıklı görünüyordu) ayrıca düzeltilmesi gerekir) tüm raporları doğru bir şekilde yazmak için kritik öneme sahiptir. Sorunu bularak ve yazdıkları ilk raporlarda düzelterek, aynı hatayı raporların geri kalanında gerçekleşmekten kurtardı. Ve eski (zaman içinde burada çalışmayan) devs o kadar alışkındı ki, açıklamanın gerekli olduğunu düşünmediler.

Gençler, yaşlılar tarafından yazılan daha karmaşık koddan (örneğin hata yakalama ve son durumları daha iyi anlama eğiliminde olan) öğrenebilir ve yaşlılar, henüz maruz kalmadıkları gençler tarafından kullanılan yeni tekniklerden öğrenebilirler.

Bazen uygulamanın farklı ancak ilgili bölümlerinde çalışan kişiler, iki farklı ve birbirini dışlayan yönde ilerlediklerini fark ederler. Hata! Şimdi düzeltmek daha kolay.

Şimdi çalışacak şeyi elde etmek için zamanla değişecek olan sabit kodlanmış değerlere gizlice girmek o kadar kolay değil. Bu, her mali yılın başında değişen şeyler gibi gelecekteki birçok hatayı önler.

Bazen bir şey yapmak için sıkışmış ve başka birinin şeyler gözden kod istedi sadece yeni bir teknik öğrendim.

Ekibinizin diğer üyelerinin nasıl düşündüğünü biliyorsanız (hangi kod incelemesi size bu anlayışı vermenize yardımcı olacaktır), daha sonra sorunların giderilmesi daha kolay olacaktır, çünkü Joe'nun bu tür davranışlara nasıl yaklaşacağını anlayacaksınız. sorun.


2

Diğerleri tarafından bahsedilen bilgi paylaşımının yanı sıra, bir kod incelemesi sırasında bulunabilecek hataların örneklerini bulun ve düzeltmek için ne kadar zaman aldıklarını ölçün - bu, sorunu araştırmak ve yamalı sürümü yayınlamak için harcanan zamanı ve hatayı düzeltmek için gerçek zaman.

Muhtemelen en az birkaç günlük çaba olacak bu maliyeti alın ve bir kod inceleme ve sonuçlara göre harcayacağınız zamanla karşılaştırın.

Bu, patronunuza kod incelemelerinin masrafa değdiğini gösterecektir.


2

Kod İncelemeleri

  • Paylaşılabilen bir kod kütüphanesinin geliştirilmesine yol açar
  • Değişkenler, sabitler, veritabanı tabloları için tek tip adlandırma kuralı sağlama
  • İşlemleri kolaylaştırmaya yardımcı olun
  • Ayrıca keşfetme sürecinin ve gereksinimlerin toplanmasının gözden geçirilmesine de yol açabilir
  • Uygulamalara ek olarak satabileceğimiz widget'ların geliştirilmesine öncülük edin. ( Her uyguladığımızda bir kez ödeme yapın )
  • Yeni ürünler

Eksileri

  • Bunun için zamanımız yok

Eğer bu doğruysa, o zaman nasıl olur da her zaman aynı müşteri için iki ya da üç kez bir şeyler yapmak için zamanımız var ama ilk seferinde doğru yapmak için asla yeterli zamanımız yok.


0

Bir belgeye başvurmanız gerekiyorsa, saygın "Kod Tamamlandı" dan başka bir yere bakmam. Kitapta, akran incelemesine karşı birim testleri ile kaç hatanın yakalandığını açıklıyor. Şaşırtıcı. Birim testleri, eğer bellek bana doğru hizmet ediyorsa, tüm hataların sadece ~% 30'unu yakalarken resmi akran değerlendirmeleri ~% 70'i yakalar.

Bu bilgiyi alın, kitapta gösterin ve finansal tarafına itiraz edin. Çok daha uzun sürer ve böceklere izin vermek onları erken yakalamaktan çok daha pahalıdır.


0

Bir demo (bir haftalık "mickey mouse" tipi proje) iki takım tarafından paralel olarak yürütülürken, biri kod incelemesi kullanılarak diğeri değil.

Haftanın sonunda, her ekibin çalışma kalitesini değerlendirin, kod gözden geçirenlerin daha iyi çıkacağından eminim.


Her takımda 4 kişi = 8 kişi = 2 ay maaş. Bu, birçok organizasyonda oldukça yetenekli bir ikna alacak :)
Michael Durrant


0

Sunarken, daha büyük resme odaklanın.

Faydaları (daha iyi kod, daha az hata, daha az yeniden yazma, vb.) Listeleyin ve tavsiye ettiğiniz tekniklerden biri olarak kod incelemesinden bahsedin .

Yazılım işçiliği yapmanın daha büyük bir resminin bir parçası olurdum

  • kod yorumları
  • testler
  • retrospektifler
  • bilgi paylaşımı
  • Eğitim
  • kitap eleştirileri
  • öğle yemeği dersleri

Bu ilkeleri teşvik etmek için kendiniz çok iş yapmaya hazır olun.
En önemlisi ikna "bir toplantı ve yapılan" tür bir şey beklemeyin.
Davayı zamanla sakin ve tutarlı bir şekilde inşa etmelisiniz. Daha iyi tekniklerle düzeltilen hatalardan en çok rahatsız olduğunuzda, aşırı duygusal ve daha az rasyonel olma olasılığınız arttıkça, vakanızı yapmak için genellikle en kötü zamandır. Bu biraz karşı-sezgisel görünebilir ama 30 yılı aşkın programlamayı öğrendim. Açıkçası ymmv.

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.