8.2 · Seviye 2 · Öngörücü Proje Yönetimi
Gereksinim türleri
İşlevsel ve işlevsel olmayan gereksinimi ayırır
Proje Yönetimi Akademisi — M08, Kapsam · 1.918 kelime · ≈ 9 dk okuma · 13 dk dinleme
Sahnelerdeki kişiler, firmalar ve projeler kurgusaldır; araştırmalar, standartlar ve kaynaklar gerçektir. Akademi PMI, Scrum.org, Scrum Alliance ya da PeopleCert onaylı bir program değildir; mevzuat içeren dersler hukuki danışmanlığın yerine geçmez.
Sahadan bir an
Salı öğleden sonra, kalite ofisi. Serkan Bey gereksinim listesine ilk dönüşünü yapmış ve Ilgın'la telefonda konuşuyor; hoparlör açık, Selma da masada.
Serkan Bey: G1 ile G3'ü teklif fiyatına koydum. Sis çekişi ve toz için ön kabin, ikisi de kabinin yapacağı işler.
Ilgın: G2 ve G4?
Serkan Bey: Onları "tercihen" diye yazdım. Askı yüksekliği ayarlanabilir olur, gürültü de makul düzeyde kalır.
Selma: Makul ne demek? Derya Hanım bir sınır verecekti.
Serkan Bey: Sınır gelmedi. Sayı olmadan bir şey taahhüt edemem.
Ilgın: Turan Bey'in bir isteği daha var: renk değişiminde kabinin yarım saatte temizlenebilmesi.
Serkan Bey: O da "tercihen" olur.
Serkan Bey listeyi iki parçaya ayırmış: kabinin yapacağı işler bağlayıcı, kabinin nasıl olacağına dair olanlar "tercihen". Ayırma mantıklı, ama sonucu tehlikeli. Sibel'in omzu, Derya Hanım'ın gürültü kaygısı ve Turan Bey'in vardiya planı, teklifin "tercihen" bölümüne düşüyor; yani teslim günü hiç kimsenin sınamak zorunda olmadığı bir yere. Bu ayrımın kendisi değil, ayrılan parçanın ölçüsüz bırakılması sorun.
Kavram
8.1'de gereksinimleri çözümlerden ayırmıştık. Şimdi gereksinimlerin kendi arasındaki en yaygın ayrıma geliyoruz.
Ilgın'ın listesinde ayrım şöyle düşüyor. G1, sisin yüzeye geri çökmemesi, işlevsel: kabinin yapacağı bir iş. G3, parçanın tozdan arındırılması, işlevsel. G2, askı yüksekliği, işlevsel olmayan: kabinin parçayı asma işini nasıl, hangi ergonomi koşulunda yaptığını söylüyor. G4, gürültü, işlevsel olmayan. Turan Bey'in yeni isteği, yarım saatte temizlenebilirlik, de işlevsel olmayan: bakım kolaylığına dair bir özellik.
Ayrımın pratik değeri, iki türün farklı biçimde kaybolmasıdır. İşlevsel gereksinimler zor kaybolur, çünkü kullanıcılar onlardan doğal olarak söz eder: kabin sisi çekmiyorsa bunu herkes görür. İşlevsel olmayan gereksinimler ise sessizce kaybolur. Sibel askının yüksekliğinden ancak sorulunca söz etti; gürültü sınırı hiç yazılmadı; temizlik süresi en son geldi. Kullanıcılar sistemin ne yapacağını tarif etmeye yatkındır; nasıl olacağını ise çoğu zaman, sorun ortaya çıkana kadar söylemez.
İşlevsel olmayan bir gereksinimin kaybolmamasının tek yolu, onu ölçülebilir yazmaktır. "Gürültü makul düzeyde" bir gereksinim değil, bir dilektir; teslim günü kimse onu sınayamaz. "Operatörün çalıştığı noktada gürültü, iş güvenliği uzmanının belirlediği sınırın altında" ise bir gereksinimdir, ama sınır yazılana kadar eksiktir. Serkan Bey'in "sayı olmadan bir şey taahhüt edemem" cümlesi, bu yüzden bir bahane değil, haklı bir taleptir.
Bir de şunu bilmek gerekir: bu ayrım ilk bakıldığında göründüğü kadar net değil. Gereksinim mühendisliği literatüründe "işlevsel olmayan gereksinim" teriminin tanımında bir uzlaşı yoktur. Kimileri onu sistemin özellikleri, nitelikleri ve kısıtları olarak, kimileri yalnızca kalite özellikleri olarak tanımlar; bazı gereksinimler de iki tarafa birden konabilir. G2'yi "kabin parçayı omuz hizasının altında asabilmeli" diye yazarsanız işlevsel, "asma yüksekliği en fazla şu kadar olmalı" diye yazarsanız işlevsel olmayan görünür. Bu yüzden ayrımın amacı her gereksinime doğru etiketi yapıştırmak değil, işlevsel olmayanların, yani en kolay kaybolanların, listeden düşmediğinden emin olmaktır.
Bir köy okulunun kalorifer yenilemesi de iki türü yan yana gösterir. İşlevsel gereksinim açıktır: sistem sınıfları ısıtmalı. Ama projeyi başarılı ya da başarısız kılan çoğu zaman işlevsel olmayan gereksinimlerdir: sınıflar sabah sekizde ders başladığında belirli bir sıcaklığa ulaşmış olmalı, sistemin bakımını köydeki bir usta yapabilmeli, yakıt tüketimi belirli bir bütçeyi aşmamalı. Bu üçü yazılmazsa, sınıfları ısıtan ama ilk derste soğuk, ilk arızada Ankara'dan servis bekleyen ve kış ortasında bütçeyi bitiren bir sistem teslim edilebilir.
Perde arkası
Müfredat bu dersin dayanağını ISO/IEC/IEEE 29148 gereksinim mühendisliği standardı olarak gösteriyor; standart ücretli ve bu ders için okunmadı. Ayrımın kendisi ikincil bir kaynaktan, kavramın tartışmalı yanı ise açık erişimli bir literatür incelemesinden okundu.
Bu tartışma pratik bir sonuca işaret ediyor: ayrımı bir etiketleme yarışmasına çevirmeden, en kolay kaybolan gereksinimleri görünür kılmak için kullanmak.
Yaygın yanılgılar
Yaygın yanlış"İşlevsel olmayan gereksinimler ikincildir; önce sistem çalışsın, gerisi sonra."
Bir projenin başarısını çoğu zaman işlevsel olmayan gereksinimler belirler. Sisi çeken ama operatörün omzunu her vardiya zorlayan, ya da renk değişiminde bir saat temizlik isteyip vardiya planını bozan bir kabin, işlevsel olarak çalışır; ama Turan Bey'in ve Sibel'in gözünde başarısızdır. "Sonra"ya bırakılan bu gereksinimler, teslimden sonra değiştirilmesi en pahalı olanlardır.
Yaygın yanlış"Bir gereksinimin hangi türe girdiğini kesin olarak belirlemek zorundayız."
Literatürde bu ayrımın tanımı üzerinde bile uzlaşı yoktur ve aynı gereksinim farklı yazılışlarla iki türe de konabilir. Önemli olan etiket değil, gereksinimin ölçülebilir yazılması ve listede yer almasıdır. Bir ekip G2'nin hangi türe girdiğini tartışarak yarım saat harcıyorsa, o yarım saati G2'nin ölçüsünü yazmaya harcaması daha değerlidir.
İki sürüm
Salı akşamı Ilgın, Serkan Bey'in dönüşünün ardından listeyi yeniden yazıyor.
Zayıf sürüm
Bağlayıcı: G1 sis çekişi, G3 toz giderme.
Tercihen: G2 askı ayarlanabilir, G4 gürültü makul düzeyde, temizlik kolay.
Not: Tercihen olanlar bütçe izin verirse.
Güçlü sürüm
İşlevsel, bağlayıcı: G1, kabin sisi boyalı yüzeyden uzaklaştırmalı; sınama, deneme partilerindeki pürüz oranı. G3, kabin parçayı boyaya tozsuz sokmalı; sınama, deneme haftasında bir vardiyalık gözlem.
İşlevsel olmayan, bağlayıcı: G2, operatör parçayı yerden en fazla omuz hizası kadar yüksekte asabilmeli; doğrulama, üç operatörle deneme. G4, operatörün çalıştığı noktada gürültü Derya Hanım'ın bu hafta yazacağı sınırın altında; sınır gelene kadar açık madde. G5, renk değişiminde kabin bir operatörle yarım saatte temizlenebilmeli; doğrulama, deneme haftasında süre ölçümü.
Açık madde sahibi: G4'ün sınırı, Derya Hanım, cumaya kadar.
Tedarikçiye not: İşlevsel olmayan gereksinimler teklifte "tercihen" değil, bağlayıcı yer alacak; karşılanamayacak olan varsa, gerekçesiyle ayrı yazılsın.
İlk sürüm ayrımı yapıyor ama yanlış amaçla kullanıyor: işlevsel olmayan gereksinimleri "tercihen" etiketiyle bağlayıcılığın dışına itiyor ve "bütçe izin verirse" notuyla onları ilk kesilecek kalemler hâline getiriyor. "Makul düzeyde" ve "kolay" kelimeleri ise teslim günü kimsenin sınayamayacağı dilekler. Güçlü sürüm iki türü de ayırıyor, ama ikisini de bağlayıcı tutuyor; ayrım yalnızca neyin nasıl doğrulanacağını netleştirmek için var. Her işlevsel olmayan gereksinim bir sayıya ya da bir sınama yoluna bağlanmış: omuz hizası, yarım saat, Derya Hanım'ın sınırı. G4 henüz eksik, ama eksikliği gizlenmiyor; bir sahibi ve bir tarihi olan açık madde olarak yazılıyor. Tedarikçiye not ise asıl riski kapatıyor: işlevsel olmayan gereksinimlerin pazarlık sırasında sessizce "tercihen"e kaymasını.
Bağlam notu
Teklif hazırlayan bir tedarikçi için işlevsel gereksinimler daha güvenli bir zemindir: ne yapılacağı bellidir, fiyatı hesaplanabilir. İşlevsel olmayan gereksinimler ise belirsizlik taşır; bir gürültü sınırını ya da bir temizlik süresini tutturmak, tasarımı değiştirebilir ve maliyeti artırabilir. Serkan Bey'in onları "tercihen" diye yazması bu yüzden kötü niyet değil, riskten kaçınmadır. Ama bu riski kimin taşıyacağı sorusu açık kalırsa, onu sonunda operatörler taşır.
Neyle bileceğiz, sorusu işlevsel olmayan gereksinimlerin tam kalbinde durur. İşlevsel bir gereksinimin karşılanıp karşılanmadığı çoğu zaman gözle görülür: kabin sisi çekiyor ya da çekmiyor. İşlevsel olmayan bir gereksinimin karşılandığını ise ancak önceden belirlenmiş bir ölçüyle bilebiliriz. Gürültü sınırı yazılmamışsa, teslim günü Derya Hanım'ın "çok gürültülü" demesi ile Serkan Bey'in "makul" demesi arasında karar verecek hiçbir dayanak yoktur.
Uygulama
Retro sorusu
Pilot projende ölçüsü hiç yazılmadığı için teslim günü kimsenin sınayamayacağı bir "nasıl olmalı" gereksinimi var mı?
Kapanış
- İşlevsel gereksinim bir sistemin ne yapacağını, işlevsel olmayan gereksinim nasıl olacağını söyler; kullanıcılar birincisine doğal olarak odaklanır, ikincisi ise sessizce kaybolur.
- İşlevsel olmayan bir gereksinimin kaybolmamasının tek yolu onu ölçülebilir yazmaktır; ölçüsü bilinmiyorsa, sahibi ve tarihi olan bir açık madde olarak listede kalır.
- Bu ayrım literatürde tartışmalıdır ve aynı gereksinim farklı yazılışlarla iki türe de konabilir; amacı doğru etiketi bulmak değil, en kolay kaybolan gereksinimleri görünür ve bağlayıcı tutmaktır.
Beş soru
- Serkan Bey'in listeyi "bağlayıcı" ve "tercihen" diye ayırmasının riski nedir?
- Turan Bey'in yarım saatte temizlenebilirlik isteği neden işlevsel olmayan bir gereksinim sayılıyor?
- "Gürültü makul düzeyde" ifadesi neden bir gereksinim değil?
- Bir aile, yaşlı anneleri için evdeki merdivene bir tutunma korkuluğu yaptırıyor. Bir işlevsel ve iki işlevsel olmayan gereksinimi nasıl yazarsın?
- Mairiza ve arkadaşlarının incelemesi, bu ayrımı kullanma biçimimizi nasıl etkilemeli?
Yanıtlar
- İşlevsel olmayan gereksinimleri, yani Sibel'in omzunu, Derya Hanım'ın gürültü kaygısını ve Turan Bey'in vardiya planını koruyan gereksinimleri, teslim günü kimsenin sınamak zorunda olmadığı bir bölüme itmesi. "Tercihen" yazılan bir gereksinim, pazarlıkta ilk kesilecek kalem olur ve karşılanmadığında kimse sorumluluk taşımaz.
- Çünkü kabinin yaptığı bir işi değil, bu işi yaparken nasıl olması gerektiğini söylüyor: bakımının ne kadar kolay ve hızlı olacağını. Kabinin boyama işlevini değiştirmiyor, ama renk değişimlerinde vardiya planını korumak için kabinin taşıması gereken bir özelliği tanımlıyor.
- Çünkü ölçülebilir değil. "Makul" kelimesi teslim günü Derya Hanım için başka, Serkan Bey için başka bir şey anlatır ve aralarında karar verecek bir dayanak yoktur. Bir gereksinim olması için bir sınır, örneğin operatörün çalıştığı noktada belirli bir gürültü düzeyi, ya da bir sınama yolu gerekir. Akla ilk gelen "sayıyı sonra koyarız" düşüncesi, sayı gelmeden teklifin bağlayıcı hâle gelebileceğini unutuyor.
- Örneğin işlevsel: korkuluk, merdivenin bütün boyunca kesintisiz tutunulabilir olmalı. İşlevsel olmayan: korkuluk, annenin el genişliğine uygun kalınlıkta ve kavranabilir olmalı; korkuluk, bir yetişkinin bütün ağırlığıyla yüklendiğinde esnememeli. İkinci ve üçüncü gereksinim, korkuluğun ne yaptığını değil, nasıl olduğunu söylüyor ve teslim günü elle ve yükle sınanabilir.
- İnceleme, kavramın tanımında genel bir uzlaşı olmadığını ve sayısız türün tanımsız biçimde kullanıldığını gösteriyor. Bu yüzden ayrımı bir etiketleme kuralı gibi değil, bir kontrol aracı gibi kullanmalıyız: amacımız her gereksinimi doğru kutuya koymak değil, kullanıcıların kendiliğinden söylemediği "nasıl olmalı" gereksinimlerini aramak ve onları ölçülebilir yazmak.
Sonraki derse köprü
Ilgın'ın listesi büyüdükçe yeni bir soru beliriyor: G3'ün kökü forklift trafiği. Kabin parçayı tozdan arındıracak, ama holün girişindeki tozu azaltmak bu projenin işi mi, yoksa başka bir projenin mi? 8.3, bir projenin kapsam içini ve kapsam dışını açıkça yazan kapsam beyanını ele alıyor.
Anlamadığın bir yer mi var?
Mentor yalnız bu dersin metnine dayanarak cevap verir. Metinde geçmeyen bir şey sorarsan uydurmaz, geçmediğini söyler.