Ölçüm yazılımı proje ölçümleri günümüz endüstrisinde popüler midir?


9

Takımları projesi hakkında dışarıdan tavsiye almak isteyen bir geliştirici ile karşılaştım. Şirket yöneticileri, proje yöneticisi ve geliştiriciler için metrikleri otomatik olarak hesaplayabilen ve yineleme başına grafik oluşturabilen büyük bir yazılım paketi geliştirdiklerini öğrendim.

Bir bilgisayar bilimi geçmişinden gelen bir öğrenci olarak metrikler ve önemleri hakkında çok az şey biliyorum, ancak sorularım:

  1. Çoğu şirketin anlamlı metrikleri ölçmek için bir yolu var mı, zarif bir program olmak zorunda değil mi?
  2. Hangi metrikler tek veya birleşik olarak proje kapsamınızı ve tahminlerinizi daraltmanıza yardımcı olur?
  3. Metrikleri analiz eden bir kişi olarak, kararları ne sıklıkta temel alırsınız? IE. Haftada başarısız olan testler ciddi şekilde artıyor mu?
  4. Metrik çalışma girişinin projeyi daha iyi anlamanıza yardımcı olduğunu düşünüyor musunuz?

Neden olduğundan emin değilim ama geliştiriciler projesi beni ilgilendirdi ve daha fazlasını bilmeliyim. Eğer y

Yanıtlar:


6

Üniversite kitaplığınızın muhtemelen metrikleriyle ilgili bazı kitaplar Yazılım Kalite Mühendisliğinde Yazılım Metrikleri ve Metrikleri ve Modelleri içerir . Bu 2 size bir başlangıç ​​yeri vermelidir. Endüstriyel dünyada, çok az sayıda şirketin herhangi bir metrik ölçüm programı vardır.

Çoğu şirketin anlamlı metrikleri ölçmek için bir yolu var mı, zarif bir program olmak zorunda değil mi?

Visual Studio, başlamanıza yardımcı olabilecek bazı kod analiz araçları içerir. Çoğu şirketin mümkün olan en kötü metriği ölçecek bir şeyi bile yoktur: kod satırları. "Sadece yap" sektördeki ezici itici güç gibi görünüyor ve sürdürülebilirlik kaygıları yöneticilerin "bu yıl bonusumu alacak mıyım?" ve "bu söz verdiğim zamanda yapılacak mı?" Her yıl artan değişikliklerle geçen ürünlerle bile, bu iki endişe geliştiricilerin sürdürülebilirlik ve hata tespiti / önleme endişelerini gölgede bıraktı.

Hangi metrikler tek veya birleşik olarak proje kapsamınızı ve tahminlerinizi daraltmanıza yardımcı olur?

Bunu bulmak cyclomatic karmaşıklık ve kavrama nasıl arabası ya da ne kadar zor kod olacak korumak için güçlü göstergeleridir. Siklomatik karmaşıklık 20 civarındaysa, test etmenin neredeyse imkansız olacağını görüyorum (kod boyunca 2 ^ 20 yol olacak) ve daha küçük parçalara ayrılmalıdır. Karmaşıklığı ortadan kaldıramazsınız, ancak daha yönetilebilir parçalara ayırabilirsiniz.

Eğer tahmin arıyorsanız , muhtemelen fonksiyon noktalarını araştırmak istersiniz .

Kod kapsamı% 'si her yinelemeyi büyük ölçüde düşürüyor, geliştiricilerinizi bu konuda uyarıyor musunuz?

Çoğu yöneticinin check-in sayısını ve düzeltilen hata sayısını önemsediğini düşünüyorum. Şu anki yöneticim birim testine karşı (zaman kaybı olduğunu düşünüyor) ve önceki müdürüm birim testlerine harcanan zamanın ilk etapta yazmak için harcanması gereken zaman olduğunu düşünüyordu.

Geliştiriciler tarafından kullanılan kanonik argüman, bir şeyi ölçerseniz, sadece alacağınız şeydir. Bu argüman, tek metriğin kod satırları olduğu fikrinden kaynaklanmaktadır.


Ayrıntılı cevap ve ilgili bağlantılar için teşekkürler. Tıpkı bir takip olarak: 1. Bir yönetici neden check-in sayısını önemsesin ki? Belki bir check-in tanımımız farklı olabilir. 2. Kod satırlarının en kötü metrik olmasıyla ne demek istiyorsun? En kötüsü proje hakkında iyi bir gösterge vermiyor mu?
Russ K

@Russ, kodu kontrol etmeyen bir geliştirici, çalışmıyor gibi görünecektir. LOC, oyun için önemsiz olduğu için en kötüsüdür. K&R ve Allman girinti kodu stili arasındaki farka bir bakın: en.wikipedia.org/wiki/Indent_style . Allman stili sadece open'ı ayrı bir satıra koyarak daha yüksek bir LOC sayımı verecektir. Yasal Uyarı: Where's Waldo oynamaya çok fazla zaman harcamadan, eşleştirme nadiren açık bulabildiğim için K&R tarzından nefret ediyorum.
Tangurena

In the industrial world, very few companies have any sort of metric measurement program at all.CMMI derecesi 2 veya daha yüksek olan herhangi bir şirketin yerinde bir ölçüm / metrik analiz programı olacaktır. Ölçümlerin ve metriklerin toplanması bir Olgunluk Seviyesi 2 şartıdır. CMMI Olgunluk Seviye 4, bu ölçümlere ve metriklere dayalı olarak niceliksel proje yönetiminin yanı sıra belirlenen nedenler üzerinde hareket etmek için temel neden analizi gibi şeyleri gerektirir. CMMI Seviye 4 (veya 5) olarak derecelendirilmiş çok sayıda kuruluş vardır.
Thomas Owens

2

Konuşmacının bazı IMHO, anlayışlı noktalar yaptığı yazılım metrikleri hakkında konuştum. Bu şeyler hakkında çok az deneyime sahip olduğum için hala entrikalar ve ilham verdim, ama bunun yanlış mı doğru mu olduğunu söyleyemem.

Ana fikirler şunlardı:

  • Hiçbir tekil metrik kendi başına yararlı değildir.
  • Mutlak bir hedef belirlemek (örn.% XX kod kapsamı) anlamlı değildir.
  • Geçmişi olmayan bir metrik yararlıdır.

Yani, bunu çözmek için:

  • Aşağıdakiler gibi çeşitli metrikleri göster:
    • Toplam satır sayısı / değişti
    • taahhüt sayısı
    • % kod kapsamı
    • test sayısı
    • cyclomatic karmaşıklık
    • dosya / paket / ... bağımlılığı
    • ...
  • KG / CI'dan verileri göster:
    • Hata sayısı / geliştirme / değişiklik (Şahsen bu kategorizasyonun önemli olduğunu düşünüyorum)
    • # toplam / eklenen / sabit
  • Bu metrikleri zaman içindeki eğilimleri gösteren grafiklerde göster

Bu şekilde, biletler hızlı bir şekilde sabitlendiğinde, kod kalitesinin düşüp düşmediğini görebilirsiniz. Ayrıca, hata veritabanı ile pek bir şey olmuyor gibi göründüğünde, yeniden düzenleme işlemleri yapıldığından kod kalitesi artabilir.

Özetle: Önemli olan ve ham verilerden ( size tek bir metrik değeri olacak) bilgi veren bu tür dinamik davranışlardır .

CI bağlantılı lav lambalarımızın yanındaki geniş ekran TV'ye bu şemaya göre bazı grafikler koymayı planlıyorum. ;)


İyi koy. Bahsettiğiniz gibi metriklerin tek başına nasıl yararsız olduğu ve tarihin önemli olduğu hakkında birçok makale okudum. Yanıtlamak için zaman ayırdığınız için teşekkür ederiz.
Russ K
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.