İçeriğe geçSkip to content
Tüm YazılarAll Articles
2 dakika okumamin readKişisel GelişimPersonal Growth

Gereksinim Analizi: Kod Yazmaya Başlamadan Önce Sorulması Gereken Sorular

Yeni bir özellik veya proje talebi geldiğinde hemen editörü açıp kod yazmaya başlamak yerine, kapsamı ve uç durumları netleştirmek için sorduğum kritik soruları paylaşıyorum.

  • Kariyer
  • Analiz
  • Problem Çözme
  • Proje Yönetimi

Yazılım projelerinde en pahalı hata, yanlış anlaşılmış bir gereksinimi günlerce uğraşıp kusursuz şekilde kodlamaktır. Görev tanımı gelir gelmez hemen IDE'yi açıp kod yazmaya başlamak üretkenlik gibi görünse de, başta sorulmayan birkaç soru işin sonunda tüm yapıyı silip baştan yazmaya neden olabiliyor. Bu yüzden kod yazmadan önce kısa bir analiz turu yapmayı standart bir alışkanlık haline getirdim.

1. "Mutlu Yol (Happy Path) Dışında Ne Olacak?"

İstekler genellikle her şeyin yolunda gittiği senaryo üzerinden anlatılır: "Kullanıcı formu doldurur, ödeme alınır ve kayıt oluşur." Oysa yazılımcının asıl işi istisnaları düşünmektir:

  • Ödeme başarılı oldu ama veritabanına yazarken bağlantı koptuysa ne olacak?
  • Kullanıcı aynı butona üst üste iki kez tıklarsa ne olacak?
  • Beklenen harici API yanıt vermezse kullanıcıya ne gösterilecek?

2. Veri Hacmi ve Ölçek Beklentisi Nedir?

Bir listeleme ekranı tasarlanırken o tabloda 50 kayıt mı olacağı yoksa 500.000 kayıt mı olacağı, yazacağınız sorgudan önbellekleme stratejisine kadar her şeyi değiştirir. Baştan veri büyüklüğünü ve kullanım sıklığını sormak, ne eksik mühendislik (under-engineering) ne de aşırı mühendislik (over-engineering) yapmanızı sağlar.

3. Yetki ve Görünürlük Sınırları Kimde?

"Bu veriyi kimler görebilir, kimler düzenleyebilir ve silme işlemi gerçekten veritabanından silmek mi (hard delete) yoksa pasife çekmek mi (soft delete)?" sorusu, projenin ortasında veri modelini değiştirmek zorunda kalmamak için ilk gün netleştirilmelidir.

Sonuç

Kod yazmaya başlamadan önce harcanan 20 dakikalık netleştirme ve soru sorma süreci, geliştirme aşamasında harcanacak 20 saatlik geri dönüşü (rework) önler.

Bu yazıyı faydalı buldunuz mu? LinkedIn'de takip ederek yeni yazılardan haberdar olabilirsiniz.Found this article helpful? Follow me on LinkedIn to stay updated on new posts.

LinkedIn'de Takip EtFollow on LinkedIn