Düzenleyiciler eğri üzerinden not vermez. Tek bir hatalı TCKN nedeniyle reddedilen bir GEV dosyası, sistemik veri bozulması nedeniyle reddedilenle aynı sonuçtur — pencereyi kaçırdınız, bir açıklama borçlusunuz ve uyum ekibinden biri şu anda okumak istemeyeceğiniz bir mektup yazıyor. Yıllarca yasal pipeline'ları eş zamanlı olarak çalıştırdıktan sonra — sigorta için GEV ve HAYMER, sınır ötesi vergi raporlaması için FATCA ve CRS ve haftalık Merkez Bankası bildirimleri — sıfır hata toleransının operasyonel olarak gerçekte ne anlama geldiği konusunda güçlü bir görüşüm var.
Bu bir kalite hedefi değildir. Ciddiye aldığınızda sizi başka türlü vermeyeceğiniz kararlara zorlayan mimari bir kısıttır. Uyum çerçeveleri ne'yi tanımlar. Nasıl'ı, üretim verisiyle temas ettiğinde ayakta kalacak şekilde neredeyse hiç tanımlamazlar.
Doğrulamayı Bir Aşama Olarak Görmeyi Bırakın
Gördüğüm — ve birden fazla kez devraldığım — en yaygın mimari, doğrulamayı pipeline'ın sonuna yakın bir adım olarak ele alır. Çek, dönüştür, doğrula, gönder. Bir kayıt sonda doğrulamayı geçemediğinde üç kötü seçeneğiniz olur: at, manuel düzelt veya gönderimi geciktir.
Üçü de süreç kılığına bürünmüş operasyonel başarısızlıklardır.
Doğrulama, kendi başına bir aşama değil, her aşamanın bir özelliği olmak zorundadır. Somut olarak:
- Giriş noktasında şema dayatması. Kaynak sisteminiz null TCKN'li veya hatalı VKN'li bir poliçe kaydı üretebiliyorsa, bunu kaydın pipeline'ınıza girdiği sınırda yakalayın; lineage'ın bulanıklaştığı üç hop aşağıda değil.
- Aşamalar arası tip sözleşmeleri. Her dönüşüm adımı neyi kabul ettiğini ve neyi ürettiğini deklare eder. Aşağı yöndeki bir aşama 10 haneli VKN bekliyor ve 11 hane geliyorsa, pipeline sessizce çıktı dosyasında değil, geçişte yüksek sesle başarısız olur.
- Dönüşüm sırasında referans kontrolleri, sonrasında değil. HAYMER için poliçe verisini eşlerken her foreign key — acente kodu, şube kodu, ürün kodu — referans veri setine karşı uçuş halinde çözümlenir. Bozuk bir referans bir pipeline hatasıdır, bir gönderim hatası değil.
Değişim felsefidir: hatalar sonda bulduğunuz şeyler değildir. Pipeline'ın yayılmasına izin vermediği şeylerdir.
Mutabakat Kancaları Pazarlık Konusu Değildir
Her yasal gönderimin uyuşması gereken bir sayısı vardır. GEV için bu, poliçe yönetim sisteminden üretim raporlarıdır. FATCA ve CRS için müşteri master'ı ve varlık defteridir. Merkez Bankası için genel muhasebe defteridir.
Gönderiminizi göndermeden önce yetkili kaynağına mutabakat sağlayamıyorsanız, kumar oynuyorsunuz demektir.
İşe yarayan operasyonel desen:
- Her pipeline yalnızca gönderim dosyasını değil, aynı zamanda bir mutabakat artefaktı üretir — düzenleyicinin önemsediği boyutlara göre (şube, ürün, dönem) ayrıştırılmış sayımlar, toplamlar, hash toplamları.
- İdeal olarak farklı bir kişinin sahip olduğu ayrı bir süreç, aynı sayıları yetkili kaynaktan çeker ve karşılaştırır.
- Gönderim, mutabakatın geçmesine bağlıdır. İstisna yok. "Önümüzdeki ayın gönderiminde düzeltiriz" yok.
Ekiplerin bunu kaynak sistem yavaş olduğu için veya mutabakat sorgusunu yazmak zor olduğu için atladığını gördüm. İkisi de gerçek sorunlar. İkisi de doğrulamadığınız bir dosyayı göndermek için kabul edilebilir bir neden değil. Mutabakat her gönderimde çalıştırılamayacak kadar pahalıysa, cevap onu daha ucuz hale getirmektir, atlamak değil.
Rollback, İhtiyaç Duymadan Önce Var Olmak Zorundadır
Çoğu ekip ilk ihtiyaç duyduklarında rollback protokollerinin olmadığını keşfeder. O zamana kadar artık çok geçtir.
Yasal pipeline'lar için rollback üç somut anlama gelir:
- Her gönderim, sürümlenmiş girdilerden yeniden üretilebilir olmalıdır. Geçen ayın 15'inde GEV dosyasının nasıl göründüğünü ve nedenini bilmek istiyorsam, onu tam kaynak anlık görüntülerinden ve onu üreten tam kod sürümünden yeniden inşa edebilirim. Bu, gönderim zamanında kaynak verisinin anlık görüntüsünü almayı ve kod sürümünü etiketlemeyi gerektirir. Opsiyonel değil.
- Düzeltmeler belgelenmiş bir protokolü takip eder. Gönderim sonrası bir hata keşfettiğinizde — ki keşfedeceksiniz — net bir yol vardır: etkilenen kayıtları tespit et, bir düzeltme dosyası üret, deltayı belgele, gerekirse düzenleyiciye bildir. Bunu ilk yapışınız bir panik olmamalıdır.
- Her şeyi yeniden çalıştırmadan bir gönderimi düzeltilmiş bir veri setine karşı yeniden çalıştırabilirsiniz. Sorun bir referans tablosundaysa, referansı düzeltir ve yeniden üretirsiniz. Pipeline bunu destekler çünkü bunun için tasarlanmıştır.
Çoğu Çerçevenin Görmezden Geldiği İnsan Katmanı
Uyum belgeleri kontrolleri tanımlar. Kontrollerin gerçekten işlemesini sağlayan operasyonel alışkanlıkları nadiren tanımlarlar. Pazarlık etmeyeceğim birkaç tane:
- Cuma öğleden sonra gönderim yapılmaz. Sistem umursadığı için değil, bir şey başarısız olursa düzeltebilecek insanlar gidiyor olduğu için. Gönderimleri ekibin tam olduğu zamanlara planlayın.
- Bir kişi gönderir, başka biri doğrular. Doğrulama mutabakat artefaktına karşı beş dakikalık bir kontrol olsa bile, ikinci çift göz, ilkinin aylar önce görmeyi bıraktığı şeyleri yakalar.
- Her ret bir regresyon testi olur. FATCA bir batch'i pasaport numarasında boşluk olduğu için reddettiğinde, o tam vaka her sonraki batch'te çalışan bir test haline geldi. Pipeline hataları unutmaz.
- Takvim disiplini. Yasal son tarihler hareket etmez. Gönderime hazır olmanın iç son tarihi en az 48 saat önce, düzenleyici son tarihten öncedir. Son tarih günü saat 16:00'da gönderim dosyasını test ediyorsanız, zaten başarısız oldunuz — sadece henüz bilmiyorsunuz.
Uyum Çerçeveleri Nerede Yetersiz Kalıyor
Çerçeveler — iç denetim kontrol listeleri, ISO tadında kalite el kitapları, standart "veri yönetişimi" çıktıları — hataların gözden geçirme ile yakalandığı bir dünyayı tanımlar. Döngüde düşünmek için zamanı olan bir insan varsayarlar. Pratikte, 200.000 satırlık bir gönderim dosyasına bakan bir kişi bunu anlamlı şekilde gözden geçiremez. Pipeline'ın kendisi kontrol olmadıkça gözden geçirme tiyatrodur.
Bu, çoğu uyum ekibinin direndiği kısımdır, çünkü kulağa denetimi kaldırıyormuşsunuz gibi gelir. Kaldırmıyorsunuz. Denetimi gerçekten işlev görebileceği yere taşıyorsunuz — pipeline tasarımına, aşamalar arası sözleşmelere, mutabakat kapılarına, rollback protokolüne. İnsan incelemesi, veri üzerinde bir kontrol değil, sistem üzerinde bir kontrol haline gelir.
Sıfır hata toleransı ulaşılabilirdir. Daha çok çalışarak ulaşılabilir değildir. Hataları en başta üretmeyi reddeden sistemler tasarlayarak ve bu kısıtın girişten gönderime kadar her mimari kararı şekillendireceğini kabul ederek ulaşılabilirdir. Bunu kabul ettiğinizde iş netleşir. Kabul edene kadar, yazmak istemeyeceğiniz bir mektuptan kötü bir batch uzaktasınız.