Yapmazsın.
Yazılım kalitesini objektif olarak ölçmek gerçekten zor. Bir çözüm olmayacak kadar zor. Bu cevapta, bir çözüm olup olmadığını sormak için reddediyorum, ama basitçe bir taneyi tanımlamanın neden zor olacağını belirtin.
Statükoya göre akıl yürütme
Kilian Foth'un belirttiği gibi, "iyi" yazılım için basit bir önlem olsaydı, hepimiz onu kullanardık ve herkes bunu isterdi.
Yöneticilerin belirli ölçümleri uygulamaya karar verdikleri projeler var. Bazen işe yaradı, bazen işe yaramadı. Önemli korelasyonların farkında değilim. Özellikle kritik sistem yazılımları (uçaklar, arabalar vb. Düşünüyorum) SW kalitesini "sağlamak" için çok fazla metrik gereksinimine sahiptir. aykırı.
Karşı istihbarat ile akıl yürütme
Ayrıca Kilian tarafından zaten ima edildi ve daha genel olarak "her metrik oynanabilir ve oynanacak" olarak ifade edildi.
Bir metrik oynamak ne anlama geliyor? Geliştiriciler için eğlenceli bir oyun: metrik değerlerin gerçekten iyi görünmesini sağlarken, gerçekten boktan şeyler yaparsınız.
Diyelim ki LOC başına hataları ölçtünüz. Bunu nasıl oynayacağım? Kolay - sadece daha fazla kod ekleyin! 100 satırda işlem yapılmamasına neden olan aptal kod oluşturun ve aniden LOC başına daha az kusurunuz var. En iyisi: aslında yazılım kalitesini bu şekilde düşürdünüz.
Araç eksiklikleri istismar edilir, tanımlar maks., Tamamen yeni yollar icat edilir.
Bu, metriklerin her zaman kötü olduğu anlamına gelmez - ancak ekibin bu metriklere karşı tutumu çok önemlidir. Özellikle, bu, herhangi bir taşeron / 3. taraf satıcı ilişkisi için iyi çalışmayacağı anlamına gelir.
Yanlış hedefleme ile akıl yürütme
Ölçmek istediğiniz şey yazılım kalitesidir. Ölçtüğünüz şey bir veya daha fazla metriktir.
Ölçtüğünüz ve size söyleyeceğine inandığınız şeyler arasında bir boşluk var. Bu boşluk biraz büyük.
Her zaman etrafımızdaki her türlü işte olur. KPI'lara dayanan kararlar gördünüz mü (temel performans göstergeleri)? Bu sadece aynı sorun - bir şirketin başarılı olmasını istiyorsunuz, ama başka bir şey ölçüyorsunuz.
Ölçülebilirlik ile akıl yürütme
Metrikler ölçülebilir. Onlarla hiç ilgilenmemizin tek nedeni bu. Bununla birlikte, yazılım kalitesi bu ölçülebilir varlıkların ötesine uzanır ve bunun ölçülmesi çok zordur: Kaynak kodu ne kadar okunabilir? Tasarımınız ne kadar genişletilebilir? Yeni ekip üyelerinin katılımı ne kadar zor? vs vs.
Yazılım kalitesini yalnızca metriklerle değerlendirmek ve kaliteyi ölçemediğiniz kısımlara körleştirmek kesinlikle iyi sonuç vermeyecektir.
Düzenle:
özet
Yukarıdakilerin tamamen metriklere dayalı olarak yazılımın iyi mi kötü mü olduğunu objektif olarak değerlendirmeyle ilgili olduğunu belirteyim. Bu, metrikleri uygulamak isteyip istemediğiniz ve ne zaman uygulamanız gerektiği hakkında bir şey söylemiyor demektir.
Aslında, bu tek yönlü bir sonuçtur: kötü metrikler kötü kod anlamına gelir. Tek yönlü, kötü kodun kötü metrikleri ve iyi metriklerin iyi kodu garanti etmediği anlamına gelir. Öte yandan, bu kendi başına bir yazılım parçasını yargılamak için metrikler uygulayabileceğiniz anlamına gelir - bu sonucu aklınızda tutarken.
A yazılımını ölçüyorsunuz ve metrikler gerçekten kötü oluyor. O zaman kod kalitesinin kötü olduğundan emin olabilirsiniz. B yazılımını ölçtünüz ve metrikler iyi, kod kalitesi hakkında hiçbir fikriniz yok. Gerçekten "metrikler iyi => metrikler iyi" olduğunda "metrikler iyi = kod iyi" diye düşünmeye aldanmayın.
Özünde, kalite sorunlarını bulmak için metrikleri kullanabilirsiniz, ancak kalitenin kendisini değil.