Özel Yazılım Projesinde İhtiyaç Analizi Nasıl Yapılır?
İçindekiler
- Önce problemi tanımlayın
- Mevcut süreci adım adım çıkarın
- Kullanıcı rollerini belirleyin
- Verinin kaynağını ve yaşam döngüsünü çıkarın
- Entegrasyonları isim olarak değil işlem olarak yazın
- Özellikleri iş hedefiyle ilişkilendirin
- İş kurallarını ayrı yazın
- Kabul koşulları oluşturun
- Fonksiyonel olmayan gereksinimleri unutmayın
- Kopyalanabilir özel yazılım ihtiyaç analizi şablonu
Özel yazılım projesinde ihtiyaç analizi, özellik listesi hazırlamaktan daha geniş bir çalışmadır. Amaç, işletmenin bugün hangi süreci nasıl yürüttüğünü, sorunun nerede oluştuğunu ve geliştirilecek sistemin hangi koşullarda başarılı kabul edileceğini netleştirmektir.
"CRM yapılacak", "panel lazım" veya "Excel yerine sistem istiyoruz" gibi ifadeler başlangıç noktasıdır. Teknik kapsam değildir.
Önce problemi tanımlayın
Çözümü tarif etmeden önce mevcut problemi yazın.
Zayıf tanım:
Sipariş takip yazılımı istiyoruz.
Daha kullanışlı tanım:
Siparişler e-posta ve Excel üzerinden takip edildiği için durum güncellemeleri farklı dosyalarda kalıyor, operasyon ekibi güncel kaydı bulmak için manuel kontrol yapıyor.
İkinci tanım, yazılımın hangi sorunu çözmesi gerektiği konusunda daha fazla bilgi verir.
Mevcut süreci adım adım çıkarın
Süreci ideal haliyle değil, bugün gerçekten nasıl yürüdüğüyle belgeleyin.
Örneğin:
- Talep e-posta ile geliyor.
- Satış çalışanı Excel'e kaydediyor.
- Yönetici fiyatı onaylıyor.
- Operasyon ayrı dosyaya bilgi giriyor.
- Müşteriye durum e-posta ile bildiriliyor.
- Tamamlanan iş muhasebeye aktarılıyor.
Her adım için şu bilgileri toplayın:
- İşlemi kim yapıyor?
- Hangi araç kullanılıyor?
- Hangi veri giriliyor?
- Sonraki adımı ne tetikliyor?
- Nerede bekleme oluyor?
- Hangi hatalar tekrar ediyor?
- Hangi istisnalar var?
Kullanıcı rollerini belirleyin
Tek bir "kullanıcı" çoğu özel yazılım için yeterli tanım değildir.
Örneğin:
- Yönetici
- Satış
- Operasyon
- Muhasebe
- Saha çalışanı
- Müşteri
- Bayi
Her rol için yetkileri ayrı yazın.
| Rol | Görebildiği veri | Yapabildiği işlem | Yapamaması gereken |
|---|---|---|---|
| Satış | Kendi müşterileri | Teklif oluşturma | Finansal rapor silme |
| Operasyon | Aktif işler | Durum güncelleme | Fiyat değiştirme |
| Yönetici | Tüm kayıtlar | Onay ve rapor |
Bu çalışma hem arayüz hem güvenlik mimarisi için temel oluşturur.
Verinin kaynağını ve yaşam döngüsünü çıkarın
Yazılımda hangi verilerin tutulacağını yalnızca alan listesi olarak düşünmeyin.
Her kritik veri için şu soruları cevaplayın:
- Nereden geliyor?
- Kim oluşturuyor?
- Kim değiştirebilir?
- Hangi sistemlere gönderiliyor?
- Ne kadar süre saklanıyor?
- Silinebilir mi?
- Geçmiş değişiklikler tutulmalı mı?
Örneğin müşteri adresi CRM'den geliyor, sipariş sırasında güncelleniyor ve ERP'ye gönderiliyorsa üç sistem arasındaki sahiplik netleşmelidir.
Entegrasyonları isim olarak değil işlem olarak yazın
"ERP entegrasyonu" kapsamı belli bir gereksinim değildir.
Bunun yerine:
Onaylanan sipariş, müşteri kodu ve ürün satırlarıyla ERP'ye aktarılacak. ERP'den oluşan sipariş numarası özel yazılımda ilgili kayda geri yazılacak.
gibi işlem tanımı gerekir.
Entegrasyon için kontrol edilecekler:
- API mevcut mu?
- Kimlik doğrulama yöntemi nedir?
- Veri formatı nedir?
- Hata durumunda ne olacak?
- Tekrar deneme yapılacak mı?
- Aynı kayıt iki kez gönderilebilir mi?
- Test ortamı var mı?
Özellikleri iş hedefiyle ilişkilendirin
Her özellik için "neden gerekiyor?" sorusunu sorun.
| Özellik | Çözdüğü problem | Kullanıcı | İlk sürüm? |
|---|---|---|---|
| Otomatik görev atama | Manuel dağıtım gecikiyor | Operasyon | Evet |
| PDF raporu | Müşteri rapor istiyor | Yönetici | Değerlendir |
| Koyu tema | Tercih | Tüm kullanıcılar | Hayır |
Bu tablo, kapsam büyürken öncelikleri korumaya yardımcı olur.
İş kurallarını ayrı yazın
Özel yazılım projelerinde en fazla belirsizlik çoğu zaman ekranlardan değil iş kurallarından çıkar.
Örnek:
- 10.000 TL üzerindeki teklifler yönetici onayı ister.
- İptal edilmiş sipariş sevkiyata gönderilemez.
- Operasyon çalışanı yalnızca kendine atanmış işleri kapatabilir.
- Müşteri kaydı silinemez, pasif yapılabilir.
Bu kurallar kodlanabilir seviyede açık olmalıdır.
Kabul koşulları oluşturun
"Özellik çalışıyor" yerine test edilebilir koşul yazın.
Örneğin:
Özellik: Yeni müşteri oluşturma
Kabul koşulları:
- Yetkili kullanıcı müşteri adı ve telefonuyla kayıt oluşturabilir.
- Telefon alanı zorunludur.
- Aynı telefonla ikinci kayıt oluşturulursa kullanıcı uyarılır.
- Kayıt başarılı olduğunda müşteri listesinde görünür.
- Yetkisiz kullanıcı müşteri ekleme ekranına erişemez.
Bu koşullar geliştirme sonunda neyin teslim edildiği konusunda ortak referans oluşturur.
Fonksiyonel olmayan gereksinimleri unutmayın
İhtiyaç analizi yalnızca özelliklerden oluşmaz.
Ayrıca şu konular da değerlendirilmelidir:
- Güvenlik
- Performans
- Yedekleme
- Yetkilendirme
- Denetim kayıtları
- Mobil kullanım
- Tarayıcı desteği
- Dosya saklama
- Veri hacmi
- Eş zamanlı kullanıcı
- Dil ve ülke gereksinimleri
- Erişilebilirlik
Örneğin aynı sistem 5 kullanıcı ile 500 eş zamanlı kullanıcı için farklı teknik kararlar gerektirebilir.
Kopyalanabilir özel yazılım ihtiyaç analizi şablonu
1. PROBLEM
Bugün hangi sorun yaşanıyor?
Sorun kimleri etkiliyor?
Sorunun iş üzerindeki etkisi nedir?
2. MEVCUT SÜREÇ
Başlangıç olayı:
Adımlar:
Kullanılan araçlar:
Manuel işlemler:
Beklemeler:
Sık hatalar:
İstisnalar:
3. KULLANICILAR
Roller:
Her rolün yetkileri:
Rol bazlı veri görünürlüğü:
4. VERİ
Tutulacak ana kayıtlar:
Verinin kaynağı:
Veriyi güncelleyen taraf:
Saklama / silme ihtiyacı:
5. ENTEGRASYON
Bağlanılacak sistem:
Gönderilen veri:
Alınan veri:
Tetikleyici:
Hata senaryosu:
6. İLK SÜRÜM
Zorunlu özellikler:
Sonraki sürüm:
Kapsam dışı:
7. KABUL KOŞULLARI
Başarılı senaryo:
Başarısız senaryo:
Yetki kontrolü:
Beklenen çıktı:
8. OPERASYON
Hosting:
Yedekleme:
Destek:
Bakım:
Raporlama:
İyi bir ihtiyaç analizi, projedeki tüm belirsizliği ortadan kaldırmaz. Ancak hangi konuların net, hangilerinin araştırılacak veya karar verilecek durumda olduğunu görünür hale getirir. Bu da teklifin, mimarinin ve geliştirme sırasının daha sağlıklı oluşturulmasını sağlar.
Benzer bir konuda yardım mı lazım?
Projenizi anlatın, nereden başlayacağımızı birlikte bulalım.
