連続記録をやめて、減らない数字を置いた
家計簿が続かない理由を突き詰めると、「面倒だから」よりも「一度やめたら戻りにくいから」のほうが大きいと思っている。
3日空けた家計簿を再開するのは、始めるより気が重い。空白の3日をどうするか決めないと先に進めない気がして、そのまま触らなくなる。
ふたかけには、この「戻りにくさ」を作らないためのルールがある。サボりを罰しない、というものだ。
ストリークは、途切れた瞬間に人を追い出す
継続を促す仕組みとして一番よく使われるのは連続記録(ストリーク)だ。「12日連続で記録中」と出して、途切れないように動機づける。
これは効く。効くのだが、途切れたときの反動が大きい。
12日積み上げた数字が1日サボっただけで 0 に戻る。このとき人が受け取るメッセージは「また明日から」ではなく「12日ぶんが無駄になった」だ。積み上げが大きいほど、失う痛みも大きくなる。そして一度 0 になると、もう一度12日積む気にはなかなかならない。
つまりストリークは、続いている間は強く効き、途切れた瞬間に離脱を後押しする仕組みになっている。家計簿のように「一生続けたいが、必ずどこかで空く」ものとは相性が悪い。
だから、減らない数字だけを出した
ふたかけがメニュー画面に出しているのは3つの数字だ。
- 累計入力 件数
- はじめて から何日目か
- レシート 枚数
どれも単調に増えるだけで、減ることがない。3日サボっても、1か月空けても、この数字は1つも失われない。空白があっても「はじめて◯日目」は普通に増え続ける。
ストリークの対極として設計した。サボっても失うものが何も無く、やった分だけが見える。
戻ってきたときに、責める数字がどこにも出ていない状態にしたかった。
取り消した記録も、件数からは減らさない
ここに1つ、意図的な仕様がある。
入力した記録を後から削除しても、「累計入力」の件数は減らない。
集計に使う数字であれば、削除したものを数えるのは明確なバグだ。実際、支出の合計や耐性メーターでは削除済みを必ず除外している。
しかしこの3つは集計ではなく、「これまで手を動かした回数」を表している。打ち間違えて消したとしても、そのとき手を動かした事実は消えない。だから減らさない。
これは実装のコメントにも「意図的に除外しない」と明記してある。そう書いておかないと、後から見た人(あるいは半年後の自分)が「削除済みを数えているバグ」だと思って直してしまうからだ。意図してそうしていることは、意図していると書いておかないと、いずれ善意で壊される。
「昨日、支出ありました?」
もうひとつ、継続のための仕掛けがある。
前日の記録が0件のとき、ホームの上に「昨日、支出はありましたか?」という確認が出る。「なかった」を選ぶとノーマネーデーとして確定し、「あった」を選ぶと前日の日付が入った入力画面に直行する。
これは2つの問題を同時に解いている。
1つは、「記録し忘れた日」と「本当に使わなかった日」が区別できない問題だ。家計簿のデータ上はどちらも0件で見分けがつかない。確認に答えてもらうと、ここが分かれる。
もう1つは、日々アプリを開く理由を作ること。ワンタップで終わる用事があると、開くハードルが下がる。
ここでも罰しない原則は守っている。答えなかった日は「不明」のまま放置される。「未回答が3日あります」のような催促は出さない。答えなかったことを咎め始めた瞬間に、これはストリークと同じものになる。
消えたスタンプが復活することがある
正直に書いておくと、この設計には副作用がある。
ノーマネーデーを確定した日に、あとから「やっぱり支出があった」と記録すると、スタンプは消える。そこまではいい。その支出を取り消すと、スタンプが復活する。
厳密に考えれば、これは変だ。一度崩れた確定が、操作の巻き戻しで戻ってくる。
自動で片付ける処理を入れることも検討したが、入れないことにした。「取り消したら元に戻る」は利用者の直感どおりであって、ここで「一度崩れた記録は戻りません」と正しさを主張すると、罰しない原則のほうが崩れるからだ。
仕様の一貫性より、使う人の体験を優先した箇所として、これも「意図的にそうしている」と記録に残してある。
何を数えるかで、アプリの態度が決まる
まとめると、こういうことだと思っている。
どの数字を画面に出すかは、そのアプリが使う人をどう扱うつもりかの表明になる。
減る数字を出せば、減らさないよう努力させる設計になる。増えるだけの数字を出せば、休んでも戻ってこられる設計になる。どちらが正しいということではなく、そのアプリが何のためにあるかで決まる。
家計簿は一生付き合うものだ。10年のあいだには、記録どころではない時期が何度もある。そのたびに 0 に戻される仕組みでは、10年は持たない。
だから、減らない数字にした。