İçeriğe geçinAnemo
TR
İletişim

Kod Okumadan Yazılım Kalitesi Nasıl Ölçülür?

· 4 dk okuma

Yazılım kalitesi kodun dışında da iz bırakır. Sistemin ne sıklıkla güvenle değiştirilebildiği, yeni bir geliştiricinin faydalı hâle gelmesinin ne kadar sürdüğü, onu kuran kişi yokken ne olduğu, düzeltildikten sonra kaç hatanın geri döndüğü. Bunların hepsi tek bir dosya açılmadan okunabilir ve birlikte, çoğu kişinin beklediğinden fazlasını söyler.

Bu yolla mimari değerlendirmeyeceksiniz. Sistemin bozulmadan değiştirilip değiştirilemediğini öğreneceksiniz ki doğrudan iş sonucu olan tek kalite sorusu budur.

Önemli noktalar

Kontrol 1: Değişiklikler üretime ne sıklıkla güvenle çıkıyor

Son üç aydaki dağıtım sayısını ve bunlardan kaçının bir gün içinde geri alınmak ya da acil düzeltme almak zorunda kaldığını sorun.

Sık ve olaysız dağıtım, sağlıklı bir sistemin en güçlü tek göstergesidir. Ekibin nefesini tutmadan değişiklik yapabildiği anlamına gelir; yani testler vardır, sürüm süreci anlaşılmıştır ve parçalar birbirinden ayrılabilir. Her seferinde krizle biten seyrek dağıtım ise, kod standartları hakkında ne söylenirse söylensin bunun tersini gösterir.

Kontrol 2: Yeni bir geliştirici ne kadar sürede faydalı oluyor

Ekibe en son katılan kişinin kendi başına üretime bir şey çıkarmasının ne kadar sürdüğünü sorun.

Birkaç günden iki haftaya kadar olan süre, sistemin anlaşılabilir ve düzgün kurulmuş olduğunu gösterir. İki ay ve üzeri ise ya dokümantasyonun olmadığını, ya kurulumun yazılı olmayan bir folklor hâline geldiğini, ya da sistemin bir parçasında çalışmak için tamamını anlamayı gerektirecek kadar iç içe geçtiğini gösterir. Üçü de pahalıdır ve üçü de kötüleşir.

Yakın zamanda kimse katılmadıysa ne kadar süreceğini tahmin etmelerini isteyin. Tahminin kendisi bilgilendiricidir.

Kontrol 3: Belirli bir kişi yokken ne oluyor

Doğrudan sorun: en kıdemli geliştiriciniz bir ay izne çıksa ne durur?

Her ekipte bilgi yoğunlaşması vardır ve bir miktarı kaçınılmazdır. Ama dürüst cevap sürümlerin duracağı ya da bir alanın dokunulmaz hâle geleceği yönündeyse, tek bir kişinin zihninde duran bir iş riskiniz var demektir. Bu bir kalite bulgusudur ve en kötü anda size zarar verme olasılığı en yüksek olanıdır.

Kontrol 4: Kaç hata geri dönüyor

Son çeyrekte kapatılıp yeniden açılan ya da farklı biçimlerde iki kez düzeltilen kayıt sayısını isteyin.

Tutmayan bir düzeltme genelde sebebin değil yalnızca belirtinin bulunduğunu gösterir. Çok sayıda geri dönen hatası olan sistem, bir değişikliğin etkisini kimsenin öngöremediği sistemdir ki bu, kötü kalitenin pratikteki tanımıdır. Bu sayı genelde ekibin kullandığı hata takip aracında hazır durur ve neredeyse hiç kimse bakmaz.

Kontrol 5: Test ile canlı aynı davranıyor mu

Üretime benzeyen bir ortam olup olmadığını ve testte çalışıp canlıda bozulan şeylerin ne sıklıkla yaşandığını sorun.

Gerçekçi bir test ortamı olmayan ekipler, öyle tanımlasalar da tanımlamasalar da testlerini üretimde yapıyordur. Bu, iyi görünüp ardından acil düzeltme gerektiren sürümler kalıbı olarak ortaya çıkar ve birinci kontroldeki dağıtım krizlerinin en sık sebeplerindendir.

Kontrol 6: Temeller ne kadar eski

Ana çatının, dil sürümünün ve kütüphanelerin en son ne zaman güncellendiğini, herhangi birinin destek ömrünü doldurup doldurmadığını sorun.

Güncel olmayan temeller otomatik olarak sorun değildir; pek çok istikrarlı sistem bilinçli olarak eski sürümlerde çalışır. Sorun, cevabı kimsenin bilmemesi ya da güncellememe sebebinin kimsenin cesaret edememesi olduğunda başlar. Desteği biten bileşenler güvenlik düzeltmesi de almaz; bu da teknik bir kararı iş riskine çevirir.

Sonuçları birlikte okumak

Tek bir kontrol bir sistemi mahkûm etmez. Endişe edilmesi gereken kalıp şudur: seyrek dağıtım yapan, kimseyi aylarca uyum sürecinde tutan, tek kişiye bağımlı ve hataları sürekli geri dönen bir sistem. Bu birleşim, güvenle değiştirilemeyen bir kod tabanını tarif eder ve ne öderseniz ödeyin bundan sonraki her işi yavaşlatır.

Tersi kalıp, yani sık dağıtım ve hızlı uyum, kodun pürüzleri olsa bile genelde ayakta kalır. Kimsenin yayına alamadığı derli toplu kod, çıkan dağınık koddan daha az değerlidir.

Cevaplar kötüyse ve ne kadar kötü olduğunu bilmeniz gerekiyorsa denetim tam olarak bunun içindir. Kapsamını teknik denetim yazısında anlattık.

Sık sorulan sorular

Ekibim bu soruları sormama kızar mı?

Çoğu kızmaz, çünkü altı sorunun hiçbiri suç ima etmez ve çoğunun cevabını ekip zaten bilir. Bir bütün olarak sorun, suç dağıtmaya değil riski anlamaya çalıştığınızı açıklayın ve görüş değil sayı isteyin. Bir ekip altısını da reddediyorsa bu tepki, herhangi bir cevaptan daha bilgilendiricidir.

Cevaplar kötü ama ürün bugün sorunsuz çalışıyorsa?

Bu sık görülen durumdur ve acil değildir. Zayıf değiştirilebilirlik çalışan bir sistemi durdurmaz; bundan sonra yapmak isteyeceğiniz her şeyi yavaşlatır ve pahalılaştırır. Bunu gelecek tekliflerde karşınıza çıkacak bir maliyet olarak görün ve bir sonraki büyük işten önce ne kadarını düzeltmeye değeceğine karar verin.

Bu kontrolleri bir tedarikçiyi seçmeden önce yapabilir miyim?

Kendi sisteminizde yapamazsınız çünkü henüz yoktur, ama aynı soruları çalışma biçimleri için sorabilirsiniz: son projelerdeki dağıtım sıklığı, yeni kişiyi nasıl dahil ettikleri, neyi devrettikleri. Cevaplar iyi bir göstergedir ve belirsiz cevaplar gerçek bir sinyaldir.

Sormak istemezsem bunu benim yerime kim yapabilir?

Cevapta çıkarı olmayan teknik biri. Bu kontrolleri yapıp bulduğumuzu anlatmamızı isterseniz bize yazın.

Bu işte nasıl çalışırız

İlgili yazılar

Uçtan uca ürün ortağınız

Yeniden yazılması gereken üç ürün yerine, ayakta kalan tek bir ürün teslim etmeyi tercih ederiz. Bu ölçü, büyüklüğü ne olursa olsun her projede aynıdır.

Ali Boran GazelCEO

Bize ulaşın