“Yazılım Projelerinde Gereksinim Analizi” adlı yazı dizimize devam ettiğimiz bu yazımızda gereksinimleri toplarken kullandığımız yöntemler üzerinde duracağız. Gereksinim toplama konusunda çeşitli makale ve kitaplarda bu kavramın İngilizce’de “analysis“, “collecting“, “gathering” ya da “trawling” gibi kelimelerle ifade edilmeye çalışıldığını görüyoruz. Gereksinim toplama kavramı aslında bu ifadelerin tümünü kapsayan bütünleşik bir süreçtir. İş süreçlerinin çözümlenmesi, beklentilerin toplanması, ihtiyaçların derlenmesi bu sürecin birer parçasıdır. Amaç, kişilerin beyin kıvrımlarında gizlenen gereksinimlerin gün yüzüne çıkarılmasıdır. Bu yazımızda bunun için kullanılan yöntemlere kısaca değinmeye çalışacağız.
Gereksinm toplama konusunda en pratik olan ve bu yüzden belki de en çok edilen yöntem yüz yüze yapılan görüşmelerdir. Bu yöntemde paydaşlar ile mülakatlar yapılır ve bu mülakatlarda gereksinimler üzerine konuşulur. Genellikle soru-cevap şeklinde devam eden bir süreçtir. Çalışmanın verimliliği açısından sorulacak sorular oldukça önemlidir. Bu nedenle mülakat öncesinde mutlaka bir hazırlık yapılmalıdır.
Çoğu zaman gereksinimler üzerinde farklı paydaşların farklı fikirleri olacaktır. Bu tür durumlarda birbirinden bağımsız mülakatlar yapmak yerine fikirlerin açıkça ortaya konup kararların alınabileceği toplantılar düzenlemek daha verimli olacaktır. Toplantıları verimli geçebilmesi için öncesinde mutlaka toplantı gündemi katılımcılara bildirilmeli, kısaca yapılacak çalışmanın niteliği hakkında ön bilgilendirme yapılmalıdır. Toplantı konusu ile ilgili olarak karar verici mercilerin toplantıya katılımı mutlaka sağlanmalıdır. Toplantı süresince toplantı gündemi dışına çıkılmaması için azami gayret gösterilmelidir. Toplantı sonrasında ortaya çıkan aksiyon, karar ve varsayımlar açıkça belirtilmelidir.
İş süreçlerini analiz etmenin en sağlıklı yolu, mevcut süreci gözlemlemek ve hatta bu süreçte rol almaktır. “Çıraklık” olarak tabir edebilecğimiz bu yöntemde analist, tıpkı ustasını izleyen bir çırak gibi yapılan işi gözlemler. Sorumlu personelin gözetiminde işleyişe bizzat dahil olur. Böylece mevcut işleyişi birinci elden örenmiş olur. Bu yöntem, kelimelerle ifade edilenden daha fazlasını görme imkanı verdiği için oldukça yararlıdır.
İnsanların doğal ortamlarında çok daha rahat oluşu, yardım severlik, önemsenme güdüsü ya da ben bilirimcilik duygularıyla girişecekleri öğretme çabası gereksinimleri toplamak için bulunmaz nimetlerdir. Öte yandan çıraklık zaman alan bir süreçtir. Bu nedenle hangi konularda bu yönteme başvurulacağına dikkatli karar vermek gereklidir. Örneğin önceki yazılarımızda üzerinde durduğumuz su dağıtım otomasyonu için çağrı merkezi kullanıcıları ile böyle bir çalışma yapmak büyük yarar sağlarken, cep telefonuna gelen sms’e göre dağıtım yapan personelin yanında çıraklık yapmanın herhangi bir getirisi olmayacaktır.
Mevcut süreci gözlemlemek her zaman doğru gereksinimleri elde etmeye imkan vermeyebilir. İnsanlar sürekli aynı işi aynı şekilde yapmaya başladıklarında yeni yöntemlere karşı istemsiz bir körlük oluşur. Herhangi bir sorun çıkmadığı müddetçe iş süreçleri üzerinde pek kafa yormazlar. İyi, mükemmelin en büyük düşmanıdır. Bu nedenle gereksinimleri ortaya çıkarabilmek için temel konularda çalıştaylar düzenlemenin büyük faydası vardır. Bu çalıştaylarda konunun uzmanı kişilerle birlikte mevcut süreçler masaya yatırılır. Süreçteki kırılgan noktalar ve dar boğazlar tespit edilir. Çözüm ve iyileştirme önerileri tartışılır. Çalıştaylar, geliştirilen ürünün getireceği marjinal fayda açısından oldukça önemlidir.
Akıl akıldan üstündür. Bu nedenle gereksinimlere farklı bakış açılarıyla yaklaşmak, problemin ve dolayısıyla çözümün farklı yönlerini görebilmek için uygulanabilecek yöntemlerden biri de beyin fırtınası seanslarıdır. Bu seanslarda kişiler adeta sesli düşünerek fikirlerini ortaya koyarlar. Böylece farklı bakış açıları geliştirilmiş olur. Beyin fırtınaları, özellikle ketum paydaşların konuya dahil olabilmesini sağlamak açısından oldukça faydalıdır.
Başta beyin fırtınası seansları olmak üzere toplantılarda simültane bir içimde konudan konuya atlanılabilir, bir konu tam anlamıyla netlik kazanmadan onunla ilintili farklı bir konuya geçilebilir. Çünkü insan zihni, kavramları birbirleriyle olan ilişkileri ile bütünleşik bir şekilde tanır. Bu tür durumlarda konu bütünlüğünü sağlamak için mind map‘ler kullanmak yararlı olabilir. Mind map’ler Ana konu çevresinde kümelenmiş alt başlıkları ve kavramları birbirleri ile ilişki içerisinde tutan ağaç çizenekleridir. Gereksinim analizinde mind map kullanmanın oldukça büyük faydası vardır.
Gereksinimler toplanırken bazı konularda bazı grupların (örneğin müstakbel kullanıcı kitlesinin) görüşlerine ihtiyaç duyulabilir. Bu gruplar onlarca ya da yüzlerce kişiden oluşabilir. Bu kişilerin tümünü bir araya getirmek çok olası değildir. Bu tür durumlarda önceden hazırlanmış formlar ve anketlerden yararlanılabilir.
Hali hazırda kullanılmakta olan bir uygulamanın ikamesi için yapılan çalışmalarda mevcut uygulama incelenerek ve sunduğu yetenekler tespit edilerek gereksinimler hakkında fikir sahibi olunabilir. Bu yönteme reverse engineering adı verilir. Reverse engineering, gereksinim analizi için tek başına yeterli olmasa da faydalı olacağı aşikardır.
Bir başka faydalı çalışma da konuyla ilgili literatür taraması, araştırma yapılması ve mevcut dokümanların incelenmesidir. Böylece probleme ilişkin bir takım şablonlar ve çözümler tespit edilebilir. Senaryolar genel geçer kalıplara benzetilebilir. Metaforlardan yararlanılabilir. Çeşitli personalar (aktör profilleri) ve prototiplerden yararlanılabilir. Bu çalışmalar problemi ve çözümünü somutlaştıracağı için hem iletişim daha kolay sağlanabilecek, hem de yanlış anlamaların önüne geçilebilecektir.
Gereksinim toplama sürecinde wiki sayfaları, bloglar, forumlar ve hatta koridor duvarlarına asılan A3 kağıtlardan bile faydalanılabilir. Bazen yararlı fikirler insanların aklına en olmadık zamanlarda gelebilir. Bu fikirlerin paylaşımını sağlayacak ortamlara kolay bir erişim sunmak son derece önemlidir.
Gereksinim analizinde güncel teknolojinin sunduğu fotoğraf, video ve ses kayıt cihazlarından da yararlanılabilir. Tabi ki bu tür durumlarda paydaşların da karşılıklı onayını almak nezaket gereğidir. Bazı kişiler video ve ses kaydı mevzu bahis olduğunda tedirgin olup geri çekilebilirler. Bu gibi durumlarda kişilerin tercihlerine saygılı olmak gerekir.
Gereksinim toplamak, çok yönlü beceri ve büyük sabır isteyen bir süreçtir. Bu nedenledir ki analysis, collecting, gathering, trawling gibi farklı kelimelerle ifade edilir. Bu süreçte en önemli rolü üstlenen analist, aynı zamanda sürecin verimli bir şekilde ilerlemesini sağlamakla görevli bir katalisttir. Analistin görevini en iyi şekilde yapabilmesi için kullanabileceği yöntemleri sıralamaya çalıştık. Unutulmamalıdır ki her bir proje bir diğerinden farklıdır. Kullanılacak yöntemlerin seçiminde bu durumu göz önünde bulundurmak da oldukça önemlidir.