Projelerde nasıl ilerliyoruz?
Bir proje bizde dört adımda ilerler — ilk görüşmeden işletime kadar. Bu sayfa, her adımda hangi teknik çalışma yöntemlerini uyguladığımızı gösterir.
Dört adım — ve her adımda olanlar.
Her adımda, çalışma ilerlemeden önce belirli soruları yanıtlarız. Şirket içinde bu çalışma yöntemlerini Batunet Engineering Method olarak adlandırıyoruz.
- 01
İhtiyacı anlamak, gereksinimleri netleştirmek
İlk görüşmeyi doğrudan yönetimle yaparsınız; projenizi, iş süreçlerinizi ve mevcut sistemlerinizi konuşuruz. Ardından hedefleri ve gereksinimleri yazılı hâle getirir, özel geliştirmenin anlamlı olup olmadığını açıkça söyleriz.
Problemi çerçevelemek
Gerçekte hangi problemi çözüyoruz — ve çözmezsek ne olur?
Herhangi bir çözüm düşünülmeden önce asıl problem, sınırları ve ölçülebilir bir başarı tanımı belirlenir.
Alanı modellemek
Bu sistemin gerçek sınırları nereden geçiyor?
Alan (domain) modellenir ve bağlamlara ayrılır — kesin ve ortak bir dille.
- 02
Çözümü ve mimariyi planlamak
Teknik bir çözüm önerir, kapsamı ve uygulama sırasını belirler, temel kararları gerekçeleriyle birlikte belgeleriz.
Temel kararları vermek
Hangi kararları geri almak pahalıdır — ve bu kararları bilinçli olarak mı verdik?
Taşıyıcı kararlar, değişiklik henüz ucuzken ilk sırada, bilinçli olarak ve belgelenerek verilir.
Kritik yolu sınamak
En zor yol uçtan uca çalışıyor mu?
Çalışan bir iskelet, mimariyi en riskli yol üzerinde kanıtlar — kapsam genişletilmeden önce.
- 03
Geliştirmek ve birlikte kontrol etmek
Testler ve kod incelemeleriyle aşama aşama geliştiririz. Ara sonuçları düzenli olarak sunarız; böylece erken değerlendirip öncelikleri değiştirebilirsiniz.
Adım adım geliştirmek
Her artım tek başına teslim edilebilir, test edilmiş ve geri alınabilir mi?
Kanıtlanmış iskelet üzerinde sistem, doğrulanabilir ve geri alınabilir adımlarla oluşur — ilerleme düzenli olarak görünür.
Dayanıklılığı sınamak
Bu sistem nasıl çöker — ve o zaman ne olur?
Hata senaryoları, yük ve güvenlik varsayılmaz, test edilir. “Çalışıyor” durumu “dayanıyor” durumuna dönüşür.
- 04
Yayına almak ve desteğe devam etmek
Yayına alındıktan sonra bakım, güncelleme, izleme ve geliştirmeyi kararlaştırılan kapsamda üstleniriz. Projeye özel kaynak kod ve dokümantasyon size teslim edilir.
İşletmek ve geliştirmek
Beş yıl sonra biri bu sistemi güvenle değiştirebilecek mi?
Sistemi işletir, izler ve geliştirmeye devam ederiz — ve onu anlaşılır ve değiştirilebilir tutarız.
Her adımda geçerli altı temel ilke.
İnşa etmeden önce anlamak. Pahalı kararlar önce. Zor yolu önce kanıtlamak. İnşa ettiğimizi işletmek.
İnşa etmeden önce anlamak
Geliştirmeye, problem tanımlandıktan ve başarının neye göre ölçüleceği netleştikten sonra başlarız. En pahalı hata, yanlış problem için iyi inşa edilmiş çözümdür.
Önce pahalı kararlar
Geri alınması pahalı olan kararlar azdır. Bunları bilinçli olarak veriyor ve gerekçesini yazıya döküyoruz — ucuz kararlar dikkati tüketmeden önce.
Tahmin yerine geri alınabilirlik
Geleceği tahmin etmiyoruz; değişikliği ucuz tutuyoruz. Her önemli karar, geri alınabilir ya da geri alınamaz olarak sınıflandırılır.
Önce zor yolu kanıtlamak
Risk sonda fark edilmez, başta ortadan kaldırılır. Basit işlevler geliştirilmeden önce en riskli yol uçtan uca çalıştırılır.
Hata durumlarını planlamak
Hata durumunu tasarlıyor ve üretim ortamı bunu yaşamadan önce prova ediyoruz. Hata senaryoları bilinmeyen bir sistem tamamlanmış sayılmaz.
İnşa ettiğimizi işletmek
İşletilebilirlik, son gün yapılan bir devir değil, ilk günden verilen bir tasarım kararıdır. Sistemi yıllarca kendimiz işletecekmiş gibi inşa ediyoruz.
Belgelenmiş olarak kalan kararlar.
Bir projenin hafızası, karar kayıtlarıdır (Architecture Decision Records, kısaca ADR). Her adım bunlara ekleme yapar, her adım bunları revize edebilir. Bir ADR şunları kayda geçirir: bağlam, seçenekler, karar, sonuçlar — ve kararın geri alınabilir olup olmadığı.
Böylece yalnızca bir sistemin ne olduğu değil, neden öyle olduğu da korunur. Gerekçe korunduğu sürece bir sistem yıllar sonra da güvenle değiştirilebilir. Gerekçe kaybolduğunda ise her değişiklik bir risktir.
Bir karar böyle görünür.
Genel bir alıntı — herhangi bir müşteriyle bağlantısı yoktur. Belirleyici kararları kayda geçirdiğimiz format.
- Bağlam
- Ödeme olayları en az bir kez (at-least-once) teslim garantisiyle işlenir. Aynı olayın iki kez teslim edilmesi mükerrer kayda yol açmamalıdır.
- Karar
- Her ödeme bir idempotency anahtarı taşır. Bu anahtar, kayıt ile aynı işlem (transaction) içinde kontrol edilir ve kalıcı olarak saklanır. Bilinen anahtarlar işlem yapılmadan (no-op) onaylanır.
- Sonuçlar
- Mükerrer işleme yapısal olarak engellenir. Anahtar deposu iş hacmiyle birlikte büyür ve bir saklama süresi (retention) gerektirir. Tüketiciler anahtarı iletmek zorundadır.
- Reddedilen
- Mutabakat yoluyla sonradan tekilleştirme — mükerrer kayıtları çok geç fark eder.
Projeniz hakkında konuşalım.
Projenizi kısaca anlatın. İlk görüşmeyi doğrudan yönetimle yaparsınız.
