İçeriğe geç

İnovasyonun ötesinde. Sınırların ötesinde. Etkiye doğru.

Dil
Görünüm

Silemeyeceğiniz fiş

Alman vergi hukuku her kasa işleminin imzalanmasını ve on yıl saklanmasını şart koşar. Silme yoktur. Bu tek cümle, veri tabanının kaderini herhangi bir ürün gereksiniminden fazla belirledi.

Yazar
Yayımlanma
Okuma süresi
4dk

Uyum işinin çoğu, yazılımın yanında duran evrak işidir. Alman yazarkasa hukuku öyle değil. Şemanın içine uzanıp onu yeniden düzenler.

Kural kısa. Bir kasadaki her işlem, sertifikalı bir teknik güvenlik cihazı — bir TSE — tarafından imzalanmalı ve imzalı kayıt on yıl yaşamalı; vergi idaresi ne zaman isterse, öngörülen çıktı biçiminde hazır olmalı.

Bir kez de mühendis gözüyle okuyun. Silme diye bir şey yok.

«Silme yok» bir tasarıma ne yapar

Sıradan bir şeyi düşünün: bir test işlemi. Her sistemin bir hazırlık kipi vardır ve her geliştirici bir noktada çalışıp çalışmadığını görmek için üretime bir test siparişi geçirmiştir.

Bunu burada yapın; o test siparişi on yıl boyunca mali kayıtta kalır. Rahatsız edici değil — kalıcı. Kaldırılamaz, çünkü cihazın bütün amacı hiçbir şeyin kaldırılamaması.

Böylece «test ve canlı ayrıdır» bir teamül olmaktan çıkıp yapıya dönüşür. Bu projede bir kasa cihazı ortamını test ya da canlı olarak beyan eder; bir CHECK kısıtı ve kısmi bir tekil dizin, aynı anda yalnızca bir canlı cihaz olmasını veri tabanının dayattığı bir güvenceye çevirir. Bir el kitabındaki kural değil. Bir alışkanlık değil. Veri tabanının yapmanıza izin vermeyeceği bir şey.

On yılın yarattığı fark budur. Normalde hatayı yakalayan kısıtı yazarsınız. Burada on yılı yakalayan kısıtı yazarsınız.

Bellekten değil, şartnameden derleyin

Mali verinin bir şeması vardır ve o şema yayımlanmıştır. Buradaki istemci onu, alanların adının ne olduğuna dair kimsenin hatırasından değil, API'nin kendisinin sunduğu şartnameden derler.

Alternatifi fark edene kadar bu ukalalık gibi gelir: şartnameyi bir kez okuyan, hatırladığını yazan ve yayına alan bir geliştirici. Testleri geçer, çünkü testler de aynı hafızadan yazılmıştır. Yıllar sonra denetimde, artık kimsenin yeniden kuramayacağı bir biçimde patlar.

Yalnızca üretimin öğrettiği ayrıntılar

İşte bileti hak eden bir tanesi.

İmza zaman damgası cihazdan, güvenlik modülünün beyan ettiği biçimde döner — ve bu, standardın bir sabiti değil, modülün bir özelliğidir. Bu projedeki modül unixTime bildiriyor: sayı olarak, epoch saniyesi. Farklı yapılandırılmış bir modül pekâlâ bir ISO dizesi gönderebilir.

Bu yüzden kod ikisini de kabul eder. Kimse bunu önceden tasarlamaz. Bir fişin üzerine 1970 tarihinin basıldığı ilk seferde öğrenirsiniz ve sonra nedenini dosyaya yazarsınız ki bir sonraki kişi iyi niyetle onu yeniden sadeleştirmesin.

Test paketi için değil, denetçi için yazın

Çıktı, güvenlik modülünün sertifikasını ve açık anahtarını taşır. Biçim bir alanın doldurulmasını istediği için değil, bir denetçinin imzaları çevrimdışı, güvenilir köklere karşı, denetlenen sistemden kendisi için kefil olmasını istemeden doğrulayabilmesi için.

Bunu dışarıda bırakırsanız, bir imzayı denetlemek tam da denetlenen şeye güvenmek anlamına gelir. Biçim buna izin verir. Bu işin anlamı vermez.

Bu ilke çıktının tamamına biçim verir. İdarenin sıraladığı düzende on altı tablodan oluşan bir pakettir — önce ana veriler, sonra günlük kapanış, sonra tek tek kayıtlar — ve derlenemediğinde nedenini söyler. Dondurulmamış bir KDV oranı, eşlenmemiş bir vergi kodu, eksik bir vergi numarası: her biri, yığında bir yerde fırlayan bir istisna değil, sonuca kaydedilmiş bir sorun hâline gelir. Çağıranın işi başarısız denemeyi kaydetmektir, çökmek değil. Sessizce başarısız olan bir çıktı, başarısız olduğunu söyleyenden kötüdür.

Bu neden yalnızca bir Almanya sorunu değil

Aynı işi Mısır'ın e-faturalaması ve Suudi Arabistan'da ZATCA için de yapıyoruz. Biçimler farklı, idareler farklı, son tarihler farklı.

Disiplin farklı değil. Kayıt, kendisini üreten yazılımdan uzun yaşadığı her yerde kaydın kendisi üründür — ve onu yazan kod, yıllar sonra bir tartışmanın ortasında, siz odada olmadan okuyacak birine anlaşılır gelmelidir.

Uyumun kritik olduğu bir proje için bize yazın

Tüm yazılar

Bu sayfada

Bu, sizin sisteminizi nerede bırakıyor?

Bir yazı bir şeyin nasıl çalıştığını anlatabilir; bunun hâlihazırda işlettiğiniz sistem için ne anlama geldiğini söyleyemez. Satışçıyla değil bir mühendisle otuz dakika ve takip dizisi yok.