こんにちは、時短ギア管理人の清光です。

コードは書けない現役の営業ですが、AIと一緒に、現場が毎日使う業務システムを1年以上つくり続けてきました。

入力したはずの数字が、いつの間にか古い値に戻っていた。そんな経験はありませんか。

共有ファイルでも社内システムでも自作ツールでも起きますし、犯人は「操作を間違えた人」ではないことがほとんどです。

この記事では、自動保存が上書き事故を起こす仕組みと、私が実際にやった対策を紹介します。

読み終わるころには、自分が使っている仕組みが危ない側かどうかを判定できるようになります。

入力が消える時間の流れをイメージした、砂時計とキーボードのあるデスク
入力が消えるのは、たいてい保存の作り方が原因

入力した金額が、勝手に0円へ戻っていた

私が自作している業務ツールで、実際に起きた事故です。

入力してあったはずの金額が0円に戻っていて、あやうくその見積がお客様に渡るところでした。

最初に疑ったのは、もちろん人の操作です。誰かが消したのだろう、と。

ところが、消した人はいませんでした。

画面の前にいた人は、金額とはまったく別の項目を1つ触っただけだったんです。

原因は「毎回ぜんぶ送る」自動保存だった

調べてみたら、原因は保存の作り方そのものでした。

その自動保存は、どこか1つを触るたびに、画面の全項目をまとめてサーバへ送る作りだったんですよね。

1台だけで使っている間は、これでも何の問題も起きません。事故になるのは、もう1台が加わったときです。

Aさんが金額を入力して保存する。そのときBさんは、金額がまだ空だったころの画面を開いたままにしている。

ここでBさんが、金額と関係のない項目を1つ触ります。

すると保存が動いて、Bさんの画面にある「空の金額」ごと、全項目がまとめて送られます。

Aさんの入力は、エラーも警告も出さずに消えます。Bさんは、自分が何を上書きしたのか知りません。

いちばん怖いのはここで、画面上はずっと正しく見えているということなんです。

「全部送る」と「変わった分だけ送る」の違い

専門用語を抜きにすると、保存のやり方は大きく2つに分かれます。

比べる点 全部送る保存 変わった分だけ送る保存
保存で送る中身 画面のすべての項目 直前に触った項目だけ
1台だけで使うとき 問題なし 問題なし
2台で同時に開いたとき 古い画面の値で全体を上書き 触っていない項目は無事
事故に気づけるか エラーが出ないので気づけない そもそも起きにくい

身近な例だと、Googleスプレッドシートを2人で同時に開いても相手の入力は巻き戻りません。変更されたセルだけが送られているからです。

逆に、同じファイルをそれぞれのPCにコピーして直し、あとから片方を上書き保存すると、もう片方の作業は丸ごと消えます。

これが「全部送る」の正体です。自動保存が付くと、その上書きが誰にも気づかれないまま静かに起き続けます。

上書き事故を防ぐ3つの対策

PCとスマホの2台で同じ画面を開いて上書き対策を確かめる場面

私がやったこと、そして今も使っている判断の順番はこの3つです。

  1. まず「何を送っているか」を見る。犯人捜しの前に、保存が動いたときサーバへ何が飛んでいるかを確認します。全項目が並んでいたら、その時点で当たりです。
  2. 変わった項目だけ送る形に変える。触った項目とその新しい値だけを送るようにすれば、開きっぱなしの古い画面が他人の入力を巻き込むことはなくなります。
  3. 直したあと、2台で同時に開いて試す。1台で試すと必ず成功してしまうので、確認になりません。片方を古い画面のまま放置して、もう片方で入力してから試します。

コードが読めなくても、1番はAIに頼むだけで確認できます。私が実際に投げている文はこれです。

いまの自動保存は画面の全項目をまとめて送っていますか
実際に送っている中身をそのまま見せてください
そのうえで「変わった項目だけ送る」形に変える案を
まだ実装しないで箇条書きで出してください

最後の「まだ実装しないで」が効きます。先に案を見て合意しておくと、作り直しがほぼ無くなるんですよね。

私の遠回り。応急処置を3回くり返した

正直に書くと、根本を直すまでに私は3回、応急処置をしています。

「この項目だけは送らない」という例外を1つ足す。しばらくすると別の項目で同じことが起きて、また例外を1つ足す。

3回目でようやく気づきました。例外は減らずに増え続けるし、増えるほど「どの項目が守られているか」を誰も把握できなくなります。

最初にハマったのがここで、目の前の1件が消えると、つい一番小さい直し方を選んでしまうんです。

今の目安は、同じ形の応急処置が2回目になったら手を止めて根本を見る。これだけにしています。

次に出てくる疑問に先回りで答えます

Q. 1人でしか使わないツールなら気にしなくていい?

基本は大丈夫ですが、条件が1つあります。

同じ人でも、PCとスマホで同じ画面を開きっぱなしにしていれば、それは2台ぶんです。

Q. エラーが出ないのに、どうやって見つければいい?

「たまに消える」系は、操作からデータが確定するまでを1本の線に描くと早く絞れます。

その切り分けの手順はたまに消える不具合の切り分け方法にまとめてあります。

Q. 市販のシステムを使っている場合は?

作りそのものは変えられませんが、運用側で減らせます。

編集画面を開きっぱなしにしない、共有データを直す前に一度開き直す。この2つだけで、古い画面のまま保存する場面はかなり減ります。

まとめ

  • 入力が古い値に戻るのは、操作ミスではなく保存の作りが原因のことが多い
  • 「全部送る」自動保存は、開きっぱなしの古い画面が他人の入力を巻き込む
  • 送るのは変わった項目だけにする。直したら2台で同時に開いて確かめる
  • 同じ形の応急処置が2回目になったら、根本に手をつける合図

ここまでやると、消えた入力を探して打ち直す時間と、「本当に保存されたか」を毎回不安に思う時間がまるごと消えます。

私の場合は、確認のために画面を開き直す癖が無くなっただけでも、1日の細切れの手間がだいぶ軽くなりました。

今日はここまで。

この記事が、あなたの時間を少しでも価値に変えるお手伝いになれば嬉しいです。

それでは、また次の時短ハックでお会いしましょう。

自作している業務システムのことや、お仕事のご依頼はお問い合わせからどうぞ。