Yazılım projelerinde en pahalı hatalar kod yazılırken değil, kod yazılmadan önce yapılır. Bunların başında da süreci kâğıt üzerinde görmeden geliştirmeye başlamak gelir.
Neden haritalamak gerekiyor
Bir süreci konuşarak anlatmak kolaydır; çizerek anlatmak zordur. Zor olmasının nedeni, çizimin boşlukları görünür kılmasıdır. "Sonra onay alınıyor" cümlesi konuşurken akıp gider; kutu olarak çizildiğinde "kimden?", "reddedilirse ne oluyor?", "ne kadar sürede?" soruları kendiliğinden ortaya çıkar.
Basit bir haritalama yöntemi
Karmaşık notasyonlara ihtiyacınız yok. Dört sütunlu bir tablo çoğu süreç için yeterli:
- Adım — ne yapılıyor
- Kim — hangi rol yapıyor
- Girdi / Çıktı — hangi bilgi geliyor, hangisi üretiliyor
- Kural — hangi koşulda ne olur
Bu tabloyu süreci fiilen yapan kişiyle birlikte doldurun; yöneticisiyle değil. Yönetici süreci nasıl olması gerektiğini anlatır, uygulayan kişi nasıl olduğunu.
İstisnaları ayrı yazın
Her sürecin bir "normal akışı", bir de gerçek hayatı vardır. Haritanın değeri büyük ölçüde istisnaları yakalamasından gelir:
- Onaycı izinde olduğunda ne oluyor?
- Müşteri siparişi kısmi iptal ettiğinde?
- Fatura kesildikten sonra fiyat değiştiğinde?
- Stok yetmediğinde sipariş bölünüyor mu?
Bu sorular geliştirme sırasında sorulursa, cevapları yeniden yazım maliyetiyle gelir. Analiz sırasında sorulursa yalnızca bir satır not olur.
Mevcut hâli mi, olması gereken hâli mi?
İkisini de çıkarın, ama ayrı ayrı. Önce mevcut durumu olduğu gibi yazın — verimsizlikleriyle birlikte. Sonra hedef süreci çizin. Aradaki fark, projenin gerçek kapsamıdır.
Bu iki çizim birbirine karıştığında ortaya, kimsenin uygulamadığı ideal bir süreç ve onu karşılamayan bir yazılım çıkar.
Harita ne zaman yeterli olur
Haritanın tamamlandığını anlamanın pratik bir ölçütü var: süreci hiç bilmeyen birine haritayı verdiğinizde, o kişi soru sormadan işi yürütebiliyorsa harita bitmiştir. Sorular geliyorsa, o sorular yazılımda karşınıza çıkacak boşluklardır.
Süreç haritası çıkarmak birkaç güne mal olur. Çıkarmamak ise çoğu zaman birkaç haftalık yeniden geliştirmeye. Bu, yazılım projelerinde getirisi en yüksek hazırlık çalışmasıdır.