KAZENAKAZENA
記事一覧へ

「期限なし」と「調べていない」を、同じ空欄で持っていた

2026年10月6日 · Taro(KAZENA代表)

10月1日に、我々のソフトが外部のサービスにつなぐために保管している値を数えました。11個ありました。そのうち8個は、いつ作ったものなのかを我々が答えられませんでした。数え始めたきっかけは、2週間前に届いていた1通の通知です。

通知が来たのは9月16日でした。連携しているサービスの1つが、期限の無い認証トークンの発行をやめる、というお知らせです。これからは60日で切れるものに置き換わります。読んだときに、やることは分かったつもりでいました。トークンを新しくして、60日ごとに入れ替える手順を作る。作業として小さく見えたので、私は後で読む印を付けて閉じました。

後回しにした理由は、たぶん言葉のほうにありました。頭の中でこれを更新作業と呼んでいたからです。更新は手順です。手順なら、手が空いたときにやればいい。実際にはこれは手順ではなく、我々が2年以上そのままにしていた前提が、外から取り消されたという知らせでした。

10月1日に手を付けて、最初の質問で止まりました。いま使っているトークンは、いつ作ったものか。社内の記録を探すと、設定の手順書に1行だけ書いてありました。値をここに貼る、という手順で、日付はありません。結局、相手のサービスの管理画面を開いて確かめました。2年以上前でした。この2年のあいだ、我々のコードはこの値の年齢を一度も尋ねていません。

それで、ほかの値も同じように調べました。先に書いた11個の内訳はこうです。相手の側が期限を定めているものが4つ、定めていないものが7つ。期限が定められている4つのうち、作った日を我々が記録していたのは1つだけでした。残りは、管理画面を開くか、作った本人に聞くかしないと分かりません。

数えている途中で、すでに切れているものが1つ見つかりました。本番ではなく、試験のための接続に使う値です。7月の下旬に期限が来ていました。気づかなかったのは、その値を使う確認が、失敗しても失敗と言わない作りだったからです。認証に失敗すると、その確認は飛ばされて、全体としては成功したという表示になります。2か月以上のあいだ、その確認は何も確認せずに成功し続けていました。

思い当たることがあります。8月に、Eから通知のテストが届かないという連絡がありました。彼は創業のころから一緒にやっている仲間で、ジャカルタから少し離れた町にいて、実機でのテストと現地での配信をずっと見てくれています。我々は本番の経路から送り直して、彼の端末に届いたので、そこで終わりにしました。届いたのは別の経路です。届かなかったほうの理由は、誰も聞きませんでした。

今回いちばん効いた気づきを書きます。我々のデータの中では、期限が定められていないということと、期限を調べていないということが、まったく同じ空欄として置かれていました。どちらも値が無いので、見分けがつきません。片方は相手が言っていることで、もう片方はこちらが知らないことです。意味は正反対なのに、同じ形で保存されていました。

ずっと使えるというのも、こちらが持っている性質ではありませんでした。相手が続けてくれている約束です。約束は、相手の都合でやめられます。期限の無いトークンは、期限が存在しないのではなく、期限がまだ決まっていないだけでした。そう考えると、今回の通知は事故ではなく、ふつうに起きることです。

直したことを3つ書きます。1つ目は、保管している値ひとつずつに、作った日と、切れる日と、どこで作ったかを一緒に持たせました。相手が期限を定めていない場合は、空欄ではなく、定めなしと書きます。これで、調べていないものだけが空欄として残り、我々がまだ見ていない値がどれかを、あとから読む人が数えられます。

2つ目は、残りの日数を人が見る場所に出すことにしました。期限まで14日を切ったら、設定の画面の上に1行出ます。ただ、設定の画面は毎日開くものではありません。警告を置いた場所を誰も見ないなら、置いていないのと同じです。だから、毎朝こちらに届く確認のメールにも、同じ1行を入れました。

3つ目は、認証の失敗を飛ばしてよいものとして扱っていた箇所をやめました。試験のための接続でも、入れなかったときは入れなかったと言います。通らなかったものを黙って通す作りは、書いたときには親切のつもりでした。止まらないほうが使う人の邪魔をしない、と考えていたのだと思います。実際には、2か月分の確認を無言で捨てていました。

同じ考え違いは、使う人に見せている画面にもありました。外部のサービスとつないだ後、我々はその画面に連携済みとだけ出していました。過去にあったことの報告のつもりで書いた言葉ですが、読む人は、これからも使えるという意味で読みます。いまは、最後に接続を確かめた日付を一緒に出しています。期限が分かっているものは、その日付も出します。言葉としては長くなりましたが、いつ確かめ直せばいいかを、使う人のほうで決められます。

最後にお願いがあります。KAZENAの画面に、いつの時点のことなのか分からない表示があれば、教えてください。済とだけ書いてある表示は、たいてい我々が確かめた日付を省いたところです。

あなたの声を聞かせてください

KAZENAのアプリを使った感想、直してほしいところ、「こんな機能が欲しい」という提案——インドネシアやフィリピンの中小企業オーナーさん、フリーランスの方の声こそ、私たちが一番聞きたいものです。インドネシア語・英語のメッセージには、現地を知り尽くした仲間が応えます。また、KAZENA Booksはフィリピンとインドネシアでの展開がすでに決まっています。それ以外の国で一緒に展開してくださるパートナー企業様、システムのご購入をご検討の企業様も、お気軽にご連絡ください。新しいシステム開発のご相談もお受けしています。少人数のチームのため、すぐの着手をお約束できないこともありますが——日本品質(メイド・イン・ジャパン)のものづくりで、現地の商売に寄り添う開発を、一件ずつ丁寧に。

お問い合わせへ

他の記事もどうぞ