Bir emeklilik şirketinin içinde çalışmamış pek çok mühendis, BES'teki en zor operasyonun günlük NAV hesaplaması ya da belki devlet katkısı mutabakatı olduğunu varsayar. Yanılıyorlar. En zor operasyon, rakip bir şirketten ayrılıp size yıllarca birikmiş bakiye, katkı geçmişi, hak ediş süreleri ve sizin oluşturmadığınız, gerçek zamanlı olarak doğrulayamayacağınız vergi pozisyonlarıyla gelen bir katılımcıyı kabul etmektir.
Bir transfer-in dosyası pipeline'ınıza düştüğünde, bir kayıt almıyorsunuz. Bir iddia alıyorsunuz. Önceki şirket şunu öne sürüyor: bu kişi Y ay boyunca X lira ödedi, Z lira devlet katkısı kazandı, şu tarihten beri sistemde ve şu kadarı hak edilmiş durumda. EGM nihayetinde bu rakamları doğrulayacak ya da çürütecek — ama "nihayetinde", pipeline'ınızın karar vermek zorunda olduğu an değildir.
Kör Uçtuğunuz Pencere
Transfer dosyasının geldiği an ile EGM mutabakatının tamamlandığı an arasında, sisteminiz birkaç geri alınamaz karar vermek zorundadır:
- Gelen katılımcının hangi sözleşme tipine eşleneceği
- Katkıların devlet katkısı uygunluğu için nasıl yaşlandırılacağı
- Giriş tarihinin orijinal BES giriş tarihi mi yoksa transfer tarihi mi olduğu (bunlar aynı değildir ve cevap hak ediş matematiğini değiştirir)
- Önceki şirketin halihazırda talep etmiş olduğu kısmi yıl devlet katkılarının nasıl ele alınacağı
- Gelen nakde karşılık vereceğiniz paylar için maliyet bazının ne olacağı
Bunların hiçbiri müzakere edilebilir değil. Katılımcı ertesi sabah giriş yapıp bir bakiye görmeyi bekliyor. Operasyon sözleşmenin aktif olmasını bekliyor. Mevzuat her kuruşun hesabının verilmiş olmasını bekliyor. Ve siz tüm bunları, yazarı sizinkinden tamamen farklı şema varsayımlarına sahip bir payload üzerinde gerçekleştiriyorsunuz.
Gelen Dosyanın Sessizce Varsaydıkları
Arızalar asıl burada yaşıyor. Transfer dosya formatı kağıt üzerinde standartlaştırılmıştır. Pratikte her şirket kendi operasyonel geçmişini alanlara kodlar.
Prodüksiyonu bozarken bizzat şahit olduğum birkaç örnek:
- Devlet katkısı yıl kovaları: Bir şirket katkıları, ödeme tarihine göre hizalanmış takvim yılı kovalarında saklar. Bir diğeri tahakkuk tarihine göre hizalar. Bunları kendi kovalamanıza topladığınızda, yıllık devlet katkısı tavanını aşmış gibi görünen bir katılımcı elde edersiniz ve doğrulamanız meşru bir transferi reddeder.
- Hak ediş sayacı semantiği: Gelen "sistemdeki yıl" alanı, kesintisiz BES üyeliği anlamına gelebilir veya askıya alma dönemleri hariç aktif dönemlerin toplamı anlamına gelebilir. Aşağı akıştaki hak ediş motorunuz ilkini varsayıyorsa, altı aylık bir boşluğu olan bir katılımcı varış gününün ilk gününde aniden tamamen hak edilmiş hale gelir.
- Fon geçmişi granülerliği: Bazı şirketler fon başına toplam bakiyeleri gönderir. Diğerleri tüm pay alım geçmişini gönderir. Gelecekteki çıkışlar için maliyet bazı hesaplamanız hangisini aldığınıza bağlıdır ve dosya size bunu her zaman söylemez.
- Askıya alınmış sözleşme dönemleri: Önceki şirkette ödenmemesi nedeniyle dondurulmuş bir sözleşme, aktif olarak işaretlenmiş halde gelebilir. Sisteminiz, katılımcının atıl olduğuna inandığı bir sözleşmeden mutlu mesut yönetim ücreti almaya başlar.
- Kimlik kayması: TCKN eşleşir ama isim alanında bir evlilik soyadı ya da diğer şirketin hiç almadığı yıllarca süren KPS güncellemelerinden kalan bir transliterasyon varyantı bulunur. İsim eşleştirme doğrulayıcınız KYC denetimine kadar kimsenin okumadığı yumuşak bir uyarı fırlatır.
Bunların hiçbiri transfer dosyasındaki bug'lar değil. Bunlar, ikisi de EGM şartnamelerine tam uyumlu iki emeklilik şirketinin aynı yasal gerçekliği aynı şekilde kodladığı varsayımındaki bug'lar.
EGM Mutabakatı Sizin Güvenlik Ağınız Değildir
İçgüdü şöyle demektir: rahat olun, EGM mutabakat yapacak ve her tutarsızlık yüzeye çıkacak. Bu doğru ama işe yaramaz. EGM mutabakatı size rakamların eşleşmediğini söyler. Hangi tarafın haklı olduğunu söylemez ve siz çözmeye çalışırken katılımcının deneyimini dondurmaz.
EGM bir devlet katkısı uyumsuzluğunu işaretlediğinde, siz çoktan pay ihraç etmiş, çoktan ücret kesmiş, katılımcıya çoktan bir bakiye göstermiş ve muhtemelen çoktan kısmi bir çıkış talebini işlemiş olursunuz. Bunlardan herhangi birini geri sarmak manuel operasyon işi, katılımcıya yazılı açıklama ve bazı durumlarda kendi aşağı akış mutabakat problemini yaratan bir düzeltme bildirimi gerektirir.
Doğru zihinsel model şudur: EGM nihai gerçek kaynağıdır ve sizin pipeline'ınız bu boşluktan sağ çıkacak kadar savunmacı olmak zorundadır.
Gerçekten İşe Yarayan Şeyler
Bu ingestion yüzeyinin sorumluluğunu birden fazla prodüksiyon döngüsünde üstlendikten sonra, ayakta kalan kalıplar göz alıcı değil:
- Her gelen alanı bir gerçek değil, bir iddia olarak ele alın. Ham gelen değeri yorumlanmış değerinizin yanında sonsuza dek saklayın. EGM üç hafta sonra anlaşmazlığa düştüğünde, size ne söylendiği ile sizin ne hesapladığınızı bilmeniz gerekir.
- Ingest sırasında geçmişi sıkıştırmayı reddedin. Önceki şirket aylık granülerlik gönderdiyse, sırf şemanız yıllık tercih ediyor diye yıllığa toplamayın. Gelecek ilk mevzuat sorusu için bu granülerliğe ihtiyacınız olacak.
- Karantinaya alın, reddetmeyin. Doğrulamada başarısız olan bir dosya göndericiye geri dönmemelidir. Operasyonun, katılımcı 48 saatlik bir boşluk fark etmeden meseleyi karara bağlayabileceği bir bekletme durumuna düşmelidir.
- Giriş tarihi belirsizliğini açık hale getirin. Her sözleşme hem orijinal BES giriş tarihini hem de sizinle olan sözleşme başlangıç tarihini ayrı, sorgulanabilir alanlar olarak taşımalıdır. Hak ediş, devlet katkısı uygunluğu ve ürün geçiş kuralları bunların her biri için farklı birini seçer ve seçim, saklı bir prosedürün içine gömülmüş değil, kodda görünür olmalıdır.
- Kutlamadan önce EGM ile mutabakat yapın. Transfer, dosya işlendiğinde tamamlanmaz. EGM rakamları doğruladığında ve iç durumunuz eşleştiğinde tamamlanır. O zamana kadar sözleşme, kısıtlı operasyonlarla geçici bir durumdadır.
Altta Yatan Ders
Transfer-in problemi, bildiğim en net örnektir: emeklilik veri işinin neden bir CRUD problemi olmadığı. Siz kayıt tutmuyorsunuz. Farklı operasyonel geçmişlere sahip taraflarca öne sürülen iddialardan derlenen ve nihayetinde doğruyu hükme bağlayacak bir düzenleyiciye karşı, bir kişinin emekliliği hakkında yasal bir pozisyon koruyorsunuz.
Ayakta kalan pipeline'lar, yazarlarının ingestion kodunun ilk satırından itibaren bir gerçekler sistemi değil, tartışmalı iddialar sistemi yazdıklarını anlamış olduğu pipeline'lardır. Bozulanlar ise bir CSV görüp sütunların dokümantasyonda söylendiği anlama geldiğini varsayan mühendisler tarafından yazılanlardır.
Neredeyse hiçbir zaman öyle değildirler.