僕はアプリを作っている時、小さなことは後回しにしながら作ることを意識しています。これは、数年前からずっと意識しているけど、常に頭の中で何回も自分に言い聞かせながら作らないと、ついつい忘れてしまう。

いや、忘れている感覚とは違うかもしれない。小さなことなのに、実際にやっている最中には、「これは細かい事だけどとても重要なことなんだ」と勝手に思い込む力が働いてくるんです。これは、人間たるもの、現在やっている作業は大切なんだというバイアスがかかるからだと思う。

でも、しばらく時間がたった後になると、「あれ、なんであんな小さなことにこだわろうとしていたんだろう。。今振り返ると、別にそこまで時間かけなくてもいいや。。」と振り返って思うことが多い。

しかし、これ難しいんですよ。しばらく時間がたって冷静になるとできるんだけど、その時は難しい。

しばらく時間がたつと、その時には考えてなかったいろいろな情報や視点を織り込んで、より客観的に判断ができるようになり、それは今、時間をかける価値があるかどうかの判断基準の精度が高くなる。でも、やっている最中は情報量も少ないし、視野も狭まっているから難しい。

じゃあ、どうすれば、小さな事を後回しにして、重要なことを優先しながら仕事を進めていけるんでしょうか。

古典的なテクニックとしては、時間制限を設けるというものがあります。時間がない状況に放り込まれると、重要な事はなにかを絶対に考えないといけない。津波が家に迫ってきたと考えてみるとわかりやすい。10時間後くるのか、1時間後にくるのか、10分後にくるのかで、どれを優先するかが変わってくる。

しかし、しかしですよ。これ、頭の中でわかっていても、実際の作業中はやっぱり、「いや、これは小さな事に見えるけど、とても大切なことなんだ。後からじゃダメなんだ!」とついつい考える力が働いてしまう。

最近、Taxnoteのアンドロイド版を作ってるんだけど、こういう場面が多々あります。後から考えると、なんでこんなことにこだわったり、悩んでたんだろうなという場面が。もっとパパッとすっ飛ばして進めていけばよかったと。

後回しでよいところはどんどん後回しにして、重要で外せない部分、今やっておいたほうがいいところからやるように常に意識しているのにそうなってしまう。わかっていても、人間の認知機能として、今やっていること、少しでも手を出したことは重要だと無意識に考えちゃう。

これは、一度でも自分が所持したものには愛着ができて、客観的な評価よりその価値を高くもってしまう心理と同じことが起きているのだと思う。認知心理学では所有効果というらしい。

そんじゃ、どうやってこの、人間本来が持っている認知心理の罠にかからないように、効率よく開発を進めていけばいいんでしょうか。これは自分の脳みそが騙されていると常に意識するしかないんだけど、それだけでは心もとないので補強する理屈を考えてみた。

この時、重要な考え方としては、「判断を保留する理由」という意識を忘れないことなんじゃないかと。

判断を保留する理由

これは後回しでいいなって明らかにわかるケースは簡単なんですよ。単純に飛ばして前に進むだけだから。

難しいのは、後回しにするべきかな、いや、これ今やるべきかな、うーんどうだろ、って悩むケースです。一つの考え方として、現在悩んでいる時点で後回しにしたほうがいいかもしれない。

なぜかというと、現在と、後からでは、判断を下す元になる情報量が圧倒的に違うからです。後からだと、今やってることは重要だというバイアスも消えているし、なにより、新しい情報や知識が追加されるので的確な判断がしやすい。

極端な例でいえば、Taxnoteをアンドロイドに移植する上で、タブバーという概念をどうするか悩んでたんですよ。iOSのようにタブバー作って、ナビゲーションしたいんだけど、アンドロイド公式にそういうライブラリがない。

だから、Githubのオープンソースを使うか悩んでいたんだけど、その一週間後に、Googleが公式サポートライブラリでタブバーのナビゲーションライブラリをリリースしてきた。その時は悩んでいたけど、公式ライブラリがリリースされた時点では、もうこれ使うに決まっているので悩むまでもない。

というわけで、悩んだ時やよくわからない時は判断を保留するメリットは結構でかい。現時点で見えている景色と後から見える景色は全然違うから。逆にいうと、ここは不変だろうとか、ここはまず実装が変わらないであろうというところを探して、まずはそこから手をつけていくのがよいことになる。

アマゾン創業者のジェフベゾスも、ビジネスをする時は10年後も変わらないだろうという基準を常に考えると言ってました。「人間は10年後も商品が速く届いて欲しいだろう」とか、そういう変わらない欲求にフォーカスするんだとか。

重要な部分から小さく始める。これはビジネスでもアプリ開発でも重要な考えなんですが、わかっていても実は実行しにくいというのも意識しておくとよいと思いました。


この記事に関連する話

一番リスクの高い部分から始める
アプリを一気に多言語へ翻訳・ローカライズしたのを若干後悔してる


*確定申告のTaxnoteなど作ってます。自己紹介はこちら。エンジニアもゆる募