Gereksinimleri Doğru Anlamak

Gereksinim Nedir?

Teknik bir çalışmaya başladığınızda gereksinim analizi yapmak çok önemlidir. Bu işlem, yazılımın iş dünyasına etkisini, müşterinin ne istediğini ve son kullanıcının nasıl etkileşimde bulunduğunu anlamak üzerine kuruludur.

Nasıl Oluşur?

Yazılım mühendisleri (bazen analist olarak da anılır) ve diğer proje ortakları (yöneticiler, müşteriler ve son kullanıcılar) gereksinimleri doğru anlamaya katkıda bulunurlar.

Neden Önemlidir?

Gösterişli ancak yanlış çözümü üreten yazılımlar hiç kimsenin ihtiyaçlarına hizmet edemez. Bu nedenle yazılım tasarımına başlamadan önce müşterinin ne istediğini iyi anlamak, bilgi sistemlerinin oluşturulmasında çok önemlidir.

Hangi adımlarla yapılır?

Gereksinimleri anlamaya ön analiz ile başlanır. Ön analiz, çözüm sağlanacak problemin doğasını ve kapsamını anlamaya yardımcı olur. Başladıktan sonra proje paydaşları nelere ihtiyaç olduğunu ortaya koyar.

Ardından detaylı analize geçilir. Bu aşamada gereksinimler daha ince işlenir ve detaylandırılır. Proje paydaşları problemi yada ihtiyacı tanımladıkça, müzakereler ortaya çıkar. Yapılacak olan işlerin öncelikleri / önem derecelerinin neler olduğu belirtilir.

Sonuçta belirtilen ihtiyaçlar yada problemin standart bir yaklaşım içinde ortaya konur. Yapılan gereksinim analizi sonucunu gözden geçirilmesi ve geçerliliğinin doğrulanması geliştirme ekibi ve proje paydaşlarının aynı ihtiyaçlardan bahsettiğinin anlaşılması için çok önemlidir.


Ürün nasıl ortaya çıkar?

Gereksinim analizinin amacı, sorunun çözümü için gerekli olan ihtiyaçların dokümantasyonudur. Bu işlem, kullanıcı senaryoları, fonksiyonlar, yetenekler listesi, gereksinim modeli gibi birçok çıktının sonucunda oluşur.

Doğru yaptığımızdan nasıl emin oluruz ?

Gereksinim analizi çıktıları proje paydaşları tarafından gözden geçirilir ve bu sayede anlatmaya çalışılan ihtiyaçların doğru anlaşıldığından emin olunur.

Önemli Uyarı : Çok şey değişebilir?
Tüm paydaşlar gereksinim analizinde hemfikir olsa bile, ihtiyaçlar proje geliştirme sürecinde de değişebilir. Bu durumda değişikliklerin nasıl yönetileceği konusunda da proje paydaşları arasında bir anlaşma olmalıdır.

Kaynak : Software Engineering A Practitioner’s Approach Seventh Edition (Roger S. Pressman)