Yaklaşım

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.

Proje süreci

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

İlkeler

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.

Hafıza

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.

Örnek belge

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.

Architecture Decision RecordAlıntı
ADR-014Kabul edildiÖdemeleri mükerrer işlemleri önleyen (idempotent) olarak işlemek
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.