Yazılım Projelerinde Performans Verimliliğine Yönelik Gereksinim Ortaya Çıkarma Soruları

Kadir Çamoğlu
5 min readSep 11, 2022

--

Performans verimliliği, bir ürün veya sistemin belirli bir görevi ne kadar çabuk tamamladığı, belirli bir zamanda ne kadar iş yapabileceği, anlık olarak ne kadar veri aktarabileceği ve aynı anda işlemleri gerçekleştirebilmesi ile ilgilidir. Bir uygulamanın performans verimliliğini belirleyen en temel özelliklerden bazıları şunlardır:

  • Zaman Davranışı/ Tepki Süresi
  • Kaynak Kullanımı
  • Kapasite (süreç/depolama)

Paydaşlar:

Performans verimliliği gereksinimlerini (ortaya çıkarırken) elde ederken, öncelikle son kullanıcılar, bölüm yöneticileri, ürün sahipleri ve operasyon ekibi ile çalışacaksınız. Bir yazılım paketi geliştiriyorsanız, hedef kitlenizin ihtiyaçlarını anlamak için pazar araştırması da yapabilir veya pazarlama ekibinizden pazar araştırması yapmasını isteyebilirsiniz. Bunun dışında başka hangi paydaşlarla çalışabileceğinizi görmek için aşağıdaki listeye göz atabilirsiniz.

- Müşteriler

- Son Kullanıcılar

- Üst Düzey Yönetim

- Hat Yönetimi

- İş Süreci Sahipleri

- Hizmet Seviyesi Yöneticileri

- Ürün Yöneticileri

- İş İlişkileri Yöneticileri

- Portföy, Program ve Proje Yöneticisi

- Konu Uzmanları

- İşletme Mimarları

- Standartlar ve Yönergeler Organizasyonu

- Çözüm Sağlayıcılar

- Sistem Mimarları

- Çözüm Mimarları

- Geliştiriciler

- BT Hizmet Sağlayıcıları

- Satıcılar ve Dış Danışmanlar

- Sponsor

- Kalite Güvence Analistleri

- Düzenleyici

Ancak kendinizi bu listeyle sınırlamayın. Projenizi, geliştireceğiniz çözümün türünü ve diğer bağlamsal faktörleri göz önünde bulundurarak, başka paydaşlarınız olup olmadığına bakın ve onlarla performans verimliliği gereksinimleri üzerinde çalışın.

Örnekler:

Aşağıda, paydaşlarla yaptığınız çalışmalarda elde edebileceğiniz performans verimliliği gereksinimlerine ilişkin bazı örnekler verilmiştir:

- Eğitim videosunun sisteme yüklenmesi 5 saniyeyi geçmemelidir.

- Sistemin yeniden başlatılması 90 saniyeden az sürmelidir.

- Sistem yoğun saatlerde aynı anda 1500 kullanıcıya kadar sorunsuz bir şekilde işleyebilmelidir.

- Tüm bilgi ekranları 3 saniyeden kısa sürede yüklenmelidir.

- Uygulama yoğun saatlerde (hafta sonları 11:00–24:00) aynı anda 300 kullanıcıya kadar sorunsuz hizmet verebilmelidir.

- Sistem bir bildirimi 1 saniye veya daha kısa sürede işleyebilmelidir.

Örnek Sorular

Performans verimliliği ile ilgili analiz çalışmalarınızda kullanabileceğiniz bazı örnek sorular aşağıda verilmiştir.

Genel Sorular:

Üst düzey performans verimliliği gereksinimleri analizi hakkında genel bir fikir edinmek için aşağıdaki örnek soruları sorabilirsiniz.

- Yere göre değişen yoğun saatler nelerdir?

- Rutin performans optimizasyonu iş yerine göre nasıl değişir?

- Sistem verimliliği iş yerine göre nasıl değişir?

- Hangi kullanıcıların verimlilik ihtiyacı diğerlerinden daha fazla olmalıdır?

- Hangi performans sınıfları veya kategorileri tanımlanabilir?

- Hangi performans ölçülmektedir?

- Performans ne sıklıkla ölçülmelidir?

- Erişimi sınırlamak için trafik ne zaman ölçülebilir?

- Performans hangi düzeyde kullanımda düşebilir?

- Yoğun dönemlerde kabul edilebilir bozulma nedir?

- Beklenen performansın önündeki engeller nelerdir?

- Performans sorunlarıyla ilişkili riskler nelerdir?

- Performans gereksinimleri iş için ne kadar önemlidir?

Zaman Davranışı:

Bir yazılımın belirli bir görevi veya işlemi gerçekleştirirken yanıt verme süresi, işlem süresi ve verimlilik oranı gibi konulara ilişkin gereksinimleri elde etmek için aşağıdaki örnek soruları kullanabilirsiniz.

- Uygulama ekranlarının maksimum yüklenme süreleri nedir?

- Uygulama ekranları için maksimum yenileme süresi nedir?

- Beklenen (kabul edilen) ortalama yanıt süresi nedir?

- Beklenen (kabul edilen) maksimum yanıt süresi nedir?

- Tepki süresini ölçmek için olası fonksiyonlar nelerdir?

- Sistem yanıt süresi için beklentiler nelerdir?

- Bu performans faktörü ne kadar önemli?

- Beklenen zaman açısından kritik süreçler nelerdir?

- Bu süreçleri zaman açısından kritik kılan nedir?

- Çok fazla zamana ihtiyaç duyulursa, kritik zaman süreçlerinde sisteme ne olur?

- Ne zaman birden fazla kişiye bildirilmelidir?

- Sistem arızaları oluştuğunda kimler bilgilendirilmelidir?

- Ölümcül bir hata oluştuğunda hangi kişilere bildirilmelidir?

- Kimler hangi işlevleri yapmaya yetkilidir?

- Kimin hangi verilere erişme yetkisi var?

- Eşikler aşıldığında kim (rol) uyarı almalı?

- Rutin performans optimizasyonlarını kim yapıyor?

- Sistem beklendiği gibi çalışmadığında kim aranır?

- Kimler sistem performansını gözden geçirmek için raporlar almalıdır?

- Hangi istekler için maksimum yanıt süresi sınırları vardır?

- Hangi istekler için minimum yanıt süresi var?

- Hangi istekler için maksimum ardışık yanıt süreleri vardır?

- (Talepleri zaman içinde sıralı yanıtlar takip eder).

- Hangi talepler için minimum ardışık yanıt süreleri var?

- Maksimum ardışık yanıt süreleri hangi talepler için geçerlidir? (Örneğin, kullanıcı, kullanıcı kimliğini girdikten sonra x saniye içinde parolasını girmelidir).

- Hangi istekler minimum zaman sınırları ile sıralıdır? (Örneğin, kullanıcı, kullanıcı kimliğini girdikten sonraki x saniye içinde parolasını giremez).

- Kullanıcı tarafından belirli bir süre içinde hangi istekler tamamlanmalıdır? (Örneğin, veri girişi, ilk girişten son girişe kadar x saniye içinde tamamlanmalıdır).

- Belirli bir süre sonra kullanıcı tarafından hangi istekler tamamlanmalıdır? (Örneğin, menü seçimi girişi ancak menünün görüntülendiği zamandan itibaren x periyodundan sonra tamamlanabilir).

- Bu kapasite hangi zaman diliminde bekleniyor?

- Özel durumlar işlerken kabul edilebilir yanıt süreleri nelerdir?

Kaynak kullanımı:

Bir yazılımın veya sistemin görevini yerine getirmek için kullanması gereken kaynakların türünü ve sayısını belirlemek için sorabileceğiniz bazı örnek sorular aşağıdaki gibidir.

- Hangi işlemler sağlayıcının yazılımına bağlıdır?

- Sağlayıcının donanımı tarafından hangi verimlilik koşulları getirilebilir?

- Sağlayıcının yazılımı tarafından hangi verimlilik koşulları getirilebilir?

- Performans optimizasyonunu gerçekleştirmek için her bir sahada hangi donanım/yazılım ve insan kaynakları gereklidir?

- Sistemi desteklemek için ne kadar ana bellek gerekiyor?

- Beklenen ortalama donanım yapılandırması nedir?

- Hangi sağlayıcıdan hangi yazılım kuruluşun kontrolü altındadır?

- Metinsel tasarım çalışmaları ne zaman, grafik tasarım çalışmaları ne zaman yapılmalıdır?

- Sistemi desteklemek için ne kadar ikincil depolamaya ihtiyaç var?

- Uygulama için minimum donanım gereksinimleri nelerdir?

- Uygulamanın performans gereksinimlerini karşılaması gerekiyor mu?

- Hangi donanım geliştirmeyi sınırlayabilir?

- Kullanıcı ekipmanı için tasarım değerlendirmeleri için en düşük ortak payda nedir?

- Bilinen kaynak kısıtlamaları nelerdir?

Kapasite:

Yazılım veya sistemin işlem sayısı, işlem boyutu, veri akışı ve veri depolama açısından limitlerini ve kapasitesini belirlemek için aşağıdaki örnek soruları sorabilirsiniz.

- Sistem saatte kaç işlem gerçekleştirebilmelidir?

- Sistemin ne kadar veri depolayabilmesi gerekiyor? Bu kapasite yıldan yıla nasıl değişecek?

- Sistemin yoğun zamanlarda işleyebileceği maksimum eşzamanlı kullanıcı sayısı nedir?

- Sistem aynı anda kaç şeyi işleyebilir ve işleyebilir?

- Faaliyetlerin hacmi nasıl ölçülür?

- Hangi hacimler ve hangi zaman dilimlerinde ölçülür?

- Hangi süreçler büyük miktarda veri gerektirir?

- Her müşteri için ne kadar veri saklanmalıdır?

- Her işlem için ne kadar veri saklanmalıdır?

- Her ürün için ne kadar veri saklanmalıdır?

- Veriler ne kadar süreyle saklanmalıdır?

- Gerçek zamanlı erişim için veriler ne kadar süreyle saklanmalıdır?

Zirve zamanlar:

Aşağıdaki örnek soruları kullanarak yazılımın en aktif ve en yoğun kullanıldığı zamanı belirleyebilirsiniz.

- Yoğun dönemler hafta, ay, çeyrek ve yıl içinde ne zaman gerçekleşecek?

- Yoğun dönemlerin ne kadar sürmesi bekleniyor?

- En yoğun kullanım dönemleri günün hangi saatlerinde gerçekleşecek?

Sistem Yanıtları:

Sistem performans sorunlarının yanıtlarına ilişkin gereksinimleri öğrenmek için aşağıdaki örnek soruları kullanabilirsiniz.

- Uyarı eşiklerine ulaşıldığında sistem nasıl tepki vermelidir?

- Uyarı eşiklerine ulaşıldığında hangi mesajlar gönderilmelidir?

- Belirli kapasiteler aşıldığında nasıl bir yanıt bekleniyor?

- Sistemin kullanıcı isteklerini yerine getirmesi ne kadar sürer?

Kullanım:

Sistemin performansı hakkında kullanım bilgileri almak için aşağıdaki örnek soruları kullanabilirsiniz.

- Sisteme aynı anda erişen tipik kullanıcı sayısı nedir?

- Yoğun dönemlerde eşzamanlı kullanıcı sayısı nedir? Öngörülen gelecekteki kullanım?

- Eşzamanlı kullanıcı sayısındaki sınırlamalar nelerdir?

İzleme:

Uygulamanın performansını izlemek için gereksinimleri almak için aşağıdaki örnek soruları kullanabilirsiniz.

- Sistem nasıl izlenir?

- Sistemin çıktısı nasıl izlenir?

- Sistemin kapasitesi nasıl izleniyor?

- Sistemin tepki süresi nasıl izleniyor?

Kontrol Listesi

Fonksiyonel olmayan ihtiyaç analizi çalışmalarınızda da yukarıdaki örnek performans etkinlik sorularını dikkate alarak analiz çalışmalarınızı yaparken aşağıdaki kontrol listesini kullanarak herhangi bir eksikliğiniz olmadığından emin olmalısınız.

- Geliştirilecek yeni çözümün performans verimliliği gereksinimleri hakkında genel bir fikrim var mı?

- Performans verimliliği paydaşlarımın projede kimler olduğunu belirleyebildim mi?

- Belirlenen tüm paydaşlardan performans verimliliği gereksinimlerini elde edebildim mi?

- Performans verimliliği ile ilgili hassas konuları, esasları ve düzenleyici unsurları belirledim mi?

- Performans verimliliği beklentileri konusunda tüm paydaşlarla (özellikle sponsorlar) aynı sayfada mıyız? (Konsensüs, ortak, paylaşılan anlayış).

- Performans etkinlik analizi ile ilgili sonraki adımları belirleyebildim mi?

Yaygın Hatalar

Aşağıdakiler, performans verimliliği gereksinimleriyle çalışırken en yaygın hatalardır.

- Ürün performans verimlilik testlerinin nasıl yapılacağının belirtilmemesi.

- Eşzamanlı kullanım için performans gereksinimlerinin karşılanmaması.

- Performans gereksinimleri test edilebilir ve ölçülebilir değildir

- İzleme görevlerinin nasıl gerçekleştirileceğinin belirlenmemesi

  • Ürünün sahip olması gereken performans belgesine sahip olup olmadığını belirlememek.

--

--

Kadir Çamoğlu
Kadir Çamoğlu

Written by Kadir Çamoğlu

Kadir Çamoğlu (Ph.D., Computer Engineering) is a problem solver, consultant, teacher, author, practitioner, and architect of system and software solutions.

No responses yet