見出し画像

0というデータが実は習慣化を助けるという話

なぜエラーなんですか

死んだ魚の数を入力できない。
なぜなのか。

僕は養殖の生産管理サービス(業務システム)を作っています。タイやブリを育てる生産者さんにエサの量や水温を記録してもらい、データ分析を自動化・効率化するような感じです。

最近少しずつお客さんが増えてきた中でとあるお客さんが問い合わせてきたのが冒頭の「入力できない」問題でした。

不具合は普段そこまで多くないのでおかしいなと思って調べてみたら、これは仕様でした。つまりエラーや不具合ではなく、そういうルールでプログラムが組まれていたということです。何を仕様で弾いていたかというと、「0」の記録です。

死んだ魚の数は「正の整数のみ」というのが仕様だったので、「0は正の整数じゃないよね!」という理由でエラーになっていたというわけです。

なぜ0が入力できないといけないのか

原因がわかった僕はお客さんに「すみません、それは仕様です」と最初、素直に伝えました。ゼロをわざわざ入力する必要性が僕にはわからなかったので、そこまで重要な不具合・要望だとは思えなかったのです。だからエラーじゃないですよ、と。

死んだ魚をゼロと入れようが、空白のままにしておこうが、結局計算される合算値は同じです。月間の死んだ数の総和や歩留まりはゼロを入力できなくても計算できる。だったら別に入れなければいいのでは?と思いました。

「ゼロだったら入力しなければ問題ないですよ」

返ってきたのは予想外の返答でした。
「いや、それは分かってるんですよ。ゼロを付けたいのは別の理由です」

その理由は僕にとって目から鱗が落ちるようなものでした。いわく「記録が付いているのか付いていないのかを識別したい」ということでした。要するにnull(記録がない状態・ブランク)と0(0尾だったという記録)を別のものと認識することで作業日報の付け忘れがないかを判別したいということですね。

数としての0 記号としての0

養殖魚の生産性を正しく評価できるようにするためには、その過程で起こる人の記録漏れや記録ミスを素早く発見・改善する必要があります。0には「死んだ魚は0尾ですよ」という数としての意味と、「生簀で死んだ魚がいないか確認しましたよ」という作業記録を示す記号としての意味があるというわけですね。

他の数値入力ではこの2つの意味が両方満たせるのですが、0だけはそうではありませんでした。入力をしなくても数としての意味合いは満たせたからです。本来切り離されることのなかった2つの意味が「nullは0として扱う」という仕様を設けたことで、分断されていたのだと僕は理解しました。

なので、結論はどうしたかというと、もちろん仕様を見直しました。0の入力を許容する=エラーを出さずに記録として残す形に仕様を変更しました。

0は数学的にも面白い数字

ちなみに0って面白い数字だと思っていて、調べてみるとこんな動画を見つけました。実は0というのは数学の歴史上でも数奇なプロセスで発見された面白い数字だったりするんですよね。

バビロニアや古代ギリシア、マヤでも数字自体を表現する仕組みはあったようですが、何もない無を表現する0という概念は実は存在していませんでした。たとえばわかりやすいのがローマ数字。よく思い返すとゼロって表記がないですよね。Ⅰ,Ⅱ,Ⅲ,Ⅳ…というアレです。10も「X」ですよね。

「何もない」0が最初に発明されたのは7世紀(紀元628年)。インドの数学者・天文学者であるブラーマグプタが、その天文に関する著書「Brahmasphuta Siddhanta」(宇宙の始まり)において、「数としてのゼロ」を初めて数学的に取り扱ったそうです。

数としてのゼロを発見したことにより、0(ゼロ)を含んだ表記法で表された数字の計算が行えるようになり、数学や科学は大きく発展してきました。僕たちが提供しているシステムだって、裏側はすべて0か1かの2進数の世界です。

0は習慣の起点である

少し話を戻します。「記号としてのゼロ」を受け入れたことでプロダクトやサービスがどう変わったかみたいな話です。

0を受け入れたことで、実はサポートの仕方が変わりました。どんな状況であっても必ず入力をするということは、データを記録し続けるという習慣化を図る上でも大きな意味があります。

生産管理という僕らがやっている領域はその性質上、即効性のある成果がすぐに出るわけではないという特徴があります。半年~1年はデータを蓄積してもらわないといけません。だからこそ、日々の入力作業の習慣化が重要です。ダイエットも家計簿も掃除も一度サボると、面倒くさくなります。養殖の生産管理も全く同じです。

そしてその習慣の定着状況を可視化する上で、0は実際有用な概念として機能することがわかりました。0を記録するという行動を標準的なものと定義することで、記録を付けるという行動が途切れた点がより鮮明にわかるようになりました。それは言ってみれば、0が習慣の終点を示す道具になっているということです。

時化や台風などの自然状況に左右されることの多い養殖事業において、記録がつかない(入れるとしても0のみ)日があるというのは当然のことです。魚も毎日死ぬわけではありません。そういう日も「今日は記録できるものがないよね」ということを現場・管理部門・経営が一緒に認識を共有できることはコミュニケーション上もメリットがあります。

最後までお付き合いいただき、ありがとうございました。もし記事が面白かったら「スキ」をぽちっとしていただけると嬉しいです笑

X(Twitter)もやってます!

Twitterもやってます。私のプロダクトやサービスに興味を持っていただいた方はフォローいただけると嬉しいです。講演やセミナー、授業などのご依頼もぜひ気軽にメッセージください。
Twitterはコチラ

この記事が参加している募集

仕事について話そう

仕事のコツ

with 日本経済新聞

この記事が気に入ったらサポートをしてみませんか?