Kod karmaşıklığı ile geliştirici verimliliği arasında bir korelasyon var mı?


10

Bir kod tabanının yeniden düzenlenmesi için harcanan zaman, geliştirici verimliliği açısından uzun vadede buna değer mi?

Temiz, iyi tasarlanmış bir sistemi değiştirmenin, kötü tasarlanmış bir sistem üzerinde çalışmaktan çok daha basit ve daha hızlı olduğu bana çok açık görünüyor, ancak bazı sağlam kanıtların peşindeyim. Bu konuda herhangi bir çalışma var mı?



1
Kendinizi bir karmaşa yapmaya başlayın ve yargıç olun.
Tulains Córdova

Yanıtlar:


16

Ampirik olarak, siklomatik karmaşıklık gibi daha yüksek karmaşıklık metriklerine sahip yazılımların bakımı daha zordur. Bunu 1970'lere dayanan bir araştırma var ("Program Karmaşıklığı ve Programcı Verimliliği", ET Chen) . Ayrıca, sistemin büyüklüğüne göre siklomatik karmaşıklık olan karmaşıklık yoğunluğunun aynı zamanda burada ücretsiz olarak temin edilebilen bakım süresi ("Siklomatik karmaşıklık yoğunluğu ve yazılım bakım verimliliği", GK Gill, CF Kemerer) ile ilgili olduğunu gösteren çalışmalar da vardır . Ne yazık ki, Chen'in makalesi için bir IEEE aboneliği gereklidir, ancak ilgileniyorsanız diğer kaynaklara bakmayı deneyebilirsiniz.

Kalite perspektifinden bakıldığında, yeni kusurların ortaya çıkmasını önlemek için bir test çerçeveniz olduğunu varsayarsak, yeniden düzenleme yapmak için zaman ayırmaya değer. Bu, sisteminize yeni özellikleri daha kolay uygulamanıza, ek testler eklemenize ve yeni geliştiricilerin çalışması için eğitmenize olanak tanır.

Bununla birlikte, sonuçta, yeni işlevsellik ve katma değer sağlama baskısı vardır. Yeniden işlevselliği yeni işlevlerin uygulanması ve kusurların onarılması ile dengelemeniz gerekir.


2
Eklenecek başka bir nokta da, yeniden düzenleme yaptığınızda, muhtemelen özellikleri daha iyi / daha verimli / daha temiz bir şekilde uygulamanızdır. Sayısız kez "5 yıl içinde kodunuzun 'iyi' olduğunu düşündüğünüzü kısacaksınız" etkisine duyduğum bir atasözü var
warren

1
@hakre Bunu hem Google Web aramasını hem de Google Akademik'i kullanarak şimdi ve ne zaman yayınladığımı kontrol ettim. Başlangıçta bu yazıyı yazdım, hiçbir kağıt satın alınmadan mevcut değildi. Ancak, o zamandan beri, yazarlardan birine ait gibi görünen Pittsburgh Üniversitesi'nde bir makale yayınlandı ve buna bir bağlantı ekledim. Diğer kağıt ücretsiz olarak sunulmamaktadır. Onları aramayı biraz daha kolay hale getirmek için başlıkları gövdenin içine ekledim. Eğer makaleleri okumak istemiyorsanız, benim bilgi ve tecrübemle birlikte analizimi kabul etmelisiniz.
Thomas Owens

0

Bazı sağlam kanıtların peşindeyim

O zaman burada zaman kaybetmeyin.

  1. Bakımı pahalı olan bazı kodları bulun. Bu kolay. Kuruluşunuzun sorunlu biletlerine bakın.

  2. Bakımı ucuz bir kod bulun. Sık çalışan, ancak çok az sorun içeren veya hiç sorun olmayan kodu bulun.

  3. Karmaşıklığı, yaygın olarak bulunan karmaşıklık araçlarından herhangi biriyle ölçün.

  4. Kanıtlara odaklanın.

Şimdi bariz olanı onaylamak için rakamlar girdiniz.


5
Pek sayılmaz. yazılım tarafından gerçekleştirilen görevin karmaşıklığı, seçilen uygulamanın neden olduğu ilave karmaşıklıktan ayırt edilmelidir.
reinierpost

4
-1 bir cevap değil
Dave Hillier
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.