KAZENAKAZENA
Semua tulisan

Kami menyimpan 'tanpa masa berlaku' dan 'belum diperiksa' di kolom kosong yang sama

6 Oktober 2026 · Taro — Pendiri KAZENA

Pada 1 Oktober saya menghitung nilai-nilai yang disimpan perangkat lunak kami untuk terhubung ke layanan luar. Ada 11. Untuk 8 di antaranya, kami tidak bisa menjawab kapan nilai itu dibuat. Yang memulai penghitungan ini adalah sebuah pemberitahuan yang sudah datang 2 minggu sebelumnya.

Pemberitahuan itu datang pada 16 September. Salah satu layanan yang kami hubungkan menghentikan token yang tidak pernah kedaluwarsa, dan menggantinya dengan token yang habis masa berlakunya dalam 60 hari. Saat membacanya, saya pikir saya sudah paham apa yang harus dikerjakan. Buat token baru, lalu siapkan prosedur untuk menggantinya setiap 60 hari. Pekerjaannya terlihat kecil, jadi saya menandainya untuk dibaca nanti dan menutupnya.

Alasan saya menundanya mungkin ada pada kata yang saya pakai. Di kepala saya, ini saya sebut pekerjaan pembaruan. Pembaruan adalah prosedur, dan prosedur bisa menunggu sampai ada waktu luang. Padahal ini bukan prosedur. Ini kabar bahwa sebuah asumsi yang kami biarkan apa adanya selama lebih dari 2 tahun telah dicabut dari luar.

Pada 1 Oktober saya mulai mengerjakannya dan berhenti di pertanyaan pertama. Token yang kami pakai sekarang dibuat kapan? Saya mencari catatan kami sendiri dan hanya menemukan 1 baris di dokumen pengaturan: tempelkan nilainya di sini. Tanpa tanggal. Akhirnya saya membuka konsol penyedia layanan untuk memastikannya. Umurnya lebih dari 2 tahun. Selama 2 tahun itu, kode kami tidak pernah sekali pun menanyakan umur nilai tersebut.

Maka saya memeriksa sisanya dengan cara yang sama. Rincian dari 11 nilai tadi begini. Penyedia menetapkan masa berlaku pada 4 nilai dan tidak menetapkannya pada 7 nilai. Dari 4 yang punya masa berlaku, tanggal pembuatannya hanya tercatat untuk 1. Sisanya hanya bisa diketahui dengan membuka konsol atau bertanya kepada orang yang membuatnya.

Di tengah penghitungan, saya menemukan 1 yang sudah kedaluwarsa. Bukan nilai produksi, melainkan yang dipakai koneksi untuk pengujian. Masa berlakunya habis pada akhir Juli. Kami tidak menyadarinya karena pemeriksaan yang memakai nilai itu dibuat sedemikian rupa sehingga kegagalan tidak dinyatakan sebagai kegagalan. Ketika autentikasi gagal, pemeriksaan itu dilewati dan hasil keseluruhannya tetap tertulis berhasil. Selama lebih dari 2 bulan, pemeriksaan itu terus berhasil tanpa memeriksa apa pun.

Ada yang teringat oleh saya. Pada Agustus, E mengabari bahwa notifikasi percobaan tidak sampai. Ia sudah bersama kami sejak awal berdirinya perusahaan, tinggal di sebuah kota kecil agak jauh dari Jakarta, dan sejak dulu ialah yang menjaga pengujian di perangkat nyata serta pengiriman di lapangan. Kami mengirim ulang lewat jalur produksi, pesannya sampai ke ponselnya, dan kami menutup perkara itu di situ. Yang sampai itu melalui jalur yang berbeda. Tidak ada yang bertanya mengapa jalur satunya tidak sampai.

Inilah bagian yang paling penting kali ini. Di dalam data kami, pernyataan bahwa penyedia tidak menetapkan masa berlaku dan pernyataan bahwa kami belum memeriksa masa berlakunya tersimpan sebagai kolom kosong yang persis sama. Keduanya sama-sama tidak berisi nilai, jadi tidak bisa dibedakan. Yang satu adalah ucapan penyedia, yang lain adalah pengakuan bahwa kami tidak tahu. Artinya berlawanan, tetapi disimpan dalam bentuk yang sama.

Bisa dipakai selamanya juga bukan sifat yang kami miliki. Itu janji yang terus dijaga pihak lain, dan janji bisa dihentikan kapan pun mereka mau. Token tanpa masa berlaku bukan berarti masa berlakunya tidak ada, hanya saja masa berlakunya belum ditentukan. Dilihat begitu, pemberitahuan tadi bukan kecelakaan. Itu hal yang wajar terjadi.

Ada 3 hal yang kami perbaiki. Pertama, setiap nilai yang kami simpan kini membawa tanggal pembuatannya, tanggal berakhirnya, dan tempat ia dibuat. Jika penyedia tidak menetapkan masa berlaku, kami menulis tidak ditetapkan, bukan membiarkannya kosong. Dengan begitu, yang kosong hanyalah yang belum kami periksa, dan orang yang membacanya nanti bisa menghitung berapa yang masih tersisa.

Kedua, sisa harinya kini ditampilkan di tempat yang dilihat orang. Jika tersisa kurang dari 14 hari, 1 baris muncul di bagian atas layar pengaturan. Tetapi layar pengaturan bukan layar yang dibuka setiap hari. Peringatan yang diletakkan di tempat yang tidak dilihat siapa pun sama saja dengan tidak ada peringatan, jadi baris yang sama juga kami masukkan ke email pemeriksaan yang sampai kepada kami setiap pagi.

Ketiga, kami berhenti memperlakukan kegagalan autentikasi sebagai sesuatu yang boleh dilewati. Bahkan pada koneksi pengujian, kalau kami tidak bisa masuk, sekarang kami katakan tidak bisa masuk. Rancangan yang diam-diam meneruskan apa yang sebenarnya tidak lolos itu kami buat dengan maksud baik. Mungkin kami ingin tidak mengganggu orang yang sedang menjalankannya. Kenyataannya, ia membuang pemeriksaan selama 2 bulan tanpa sepatah kata.

Kekeliruan berpikir yang sama ada juga di layar yang dilihat pengguna. Setelah sambungan ke layanan luar dibuat, kami hanya menampilkan kata tersambung. Kami menulisnya sebagai laporan atas sesuatu yang sudah terjadi, tetapi orang membacanya sebagai pernyataan tentang masa depan. Sekarang kami menampilkan tanggal terakhir sambungan itu dipastikan, dan bila masa berlakunya diketahui, tanggal itu juga. Memang lebih panjang dibaca daripada kata tersambung, tetapi pembacanya bisa menentukan sendiri kapan perlu memeriksanya lagi.

Terakhir, ada yang ingin kami minta. Jika di layar KAZENA ada tampilan yang membuat Anda tidak tahu itu merujuk pada waktu kapan, tolong beri tahu kami. Tampilan yang hanya bertuliskan selesai biasanya adalah tempat kami melewatkan tanggal saat kami memeriksanya.

Ceritakan pendapat Anda

Kesan setelah memakai aplikasi KAZENA, hal yang perlu diperbaiki, fitur yang Anda harapkan — kalau Anda pemilik usaha kecil-menengah atau pekerja lepas di Indonesia atau Filipina, suara Anda-lah yang paling ingin kami dengar. Pesan dalam bahasa Indonesia atau Inggris akan dijawab oleh rekan kami yang benar-benar memahami pasar lokal. KAZENA Books sudah dipastikan hadir di Filipina dan Indonesia — dan jika perusahaan Anda ingin menghadirkannya di negara-negara lain sebagai mitra kerja sama, atau tertarik membeli sistemnya, kami dengan senang hati menunggu kabar Anda. Kami juga menerima pengembangan sistem baru. Tim kami kecil, jadi tidak selalu bisa langsung mulai — tetapi yang kami bangun membawa kualitas buatan Jepang dan tetap dekat dengan cara bisnis berjalan di sini, satu proyek demi satu.

Hubungi saya

Tulisan lainnya