食堂は、注文を手書きの伝票に書いて回していました。その日の記録は、閉じたあとに人が打ち直して初めてデータになります。
やったことは1つだけです。「後から打ち直す」という工程を、まるごと消しました。その場で打てば、それがそのまま記録になります。
人が打ち直す工程が、記録とタイムラグの両方を生んでいた。
3つの出口(分析・帳簿・会社全体の売上)は、どれもこの記録を読むだけ。書き込むのはレジだけにしてある。
現場で使うものは、機能の多さではなくタップの回数で決めています。89品目を6つに分けて、押すだけで会計が終わります。
カテゴリのタブから品目をタップするとカートに入る。学生・社会人など値段違いは同じカードにまとめてある。
お預かりを入れるとおつりが出る。誰が来たか(所属・分類・来店回数)は、忙しければ後回しでいい。
閉店後は金庫の現金を金種ごとに数えるだけ。その日の売上から計算した「あるはずの金額」との差が出る。
実際の売上やお客さまの情報は1件も入っていません。本番のレジとは別のコピーを用意して、 クラウドにつながる部分をまるごと外してあります(差し替えたのは1ファイルだけ)。 品目名と値段だけは実物です。お店に出ているものなので。
ここがこのページの本体です。動くものを作るのは難しくありません。難しいのは、間違いに気づけない壊れ方をしないことです。
席で打った注文が、レジ側で誰かが伝票を切るたびに消えていました。エラーは出ません。ただ無くなります。
もう1つ、伝票番号の採番を待ってから記録していたのも悪手でした。待っているあいだにアプリを閉じると、その1件がどこにも残りません。
・届いていないなら、届いていないままにする。「無かったら空」という既定値を書かない
・消していいのは人が消した印があるときだけ。印のない消失は事故として扱い、端末側を残す
・番号の発行を待たない。先に記録して、番号は後から直す
金額のボタンを続けて押すと、先に押したほうが消えることがありました。10回押して9回入る。現場では連打がふつうに起きるので、売上が少しずつ減っていきます。
・カートの更新は「いまの中身を受け取って、新しい中身を返す」形しか受け付けないようにする
・会計を確定する瞬間は、画面が持っている値ではなく保存済みのデータを読み直す
この手の不具合は、実機で再現するのがとても難しい。2台のタブレットを同時に触って、たまたま同じ瞬間に押さないと起きないからです。
・「直った」と言う前に、まず壊れることを再現する。再現できない修正は、直った証拠がない