ボクココ

個人開発に関するテックブログ

新機能開発における"丁寧さ"か"シンプルさ"かの判断

ども、@kimihomです。

例えば自社サービスを持っているとしたら、リリースしてからが勝負となる。むしろリリースするまでは本当に何も始まっていない状況だ。

リリースしたとしてもエンジニアは顧客の声を聞きながらサービスを改善させていく必要がある。その時にどういった基準で機能を開発するのかは非常に重要なことになる。なぜなら、もしすでに利用している顧客がいるのなら彼らの影響を考える必要があるし、サービスが複雑にならないよう検討する必要があるからだ。この辺りの考え方は以下の記事に以前まとめている。

www.bokukoko.info

今回はより踏み込んで、実際の機能開発についての判断基準について考えてみたい。

顧客にとって本当に必要な機能は何か?

例えば良くあるようなスタートアップガイド。ログインすると色々な説明を一挙にダイアログでされて、強引に理解させようとするあのやり方だ。

f:id:cevid_cpp:20160123105316j:plain

ある人にとっては"より丁寧に説明してあげている"ということで入れるべきだと考える人もいるだろう。その反面、"こういうのはそもそも誰も読まないからあっても無駄"と考える人もいると思う。どちらかというと私は後者の考え方である。それは別に実装が面倒だからという訳ではない。 ユーザーが「このボタンなんだろう。クリックしたろ」って思うような行動の取らせ方とか、それぞれチェックリストがあってクリアさせるみたいなゲーム感覚とか、そうした自主性を育む方法でユーザーがサービスを理解させた方が、より楽しく効果的にスタートアップガイドとしての役割を果たせると考えている。他のサービスがこれで作ってるからウチもそうしようみたいな浅はかな考え方は愚の骨頂なのだ。

他のケースを見てみよう。例えばいつもクリックするようなボタンがあるとする。普段からそのサービスを使い慣れている人にとっては「ここをクリックすれば、あの画面が出てくる」みたいな期待とでもいうような心理が働いている。ある一定の条件下で、ボタンの挙動を変えられると、ユーザーにとってはいつもの感覚と違う違和感を感じることだろう。それがサービスにおいてはより丁寧に仕向けた機能であっても同じことが言える。でも違和感を無くすというのは本当に難しいことで、普通にデザインを変えたところで「前の方が良かった」というユーザーが確実に出てくるのだ。だからどんなに自分たちが改善だと思ってやったとしても、ユーザーにとっては変更自体が改悪と思われてしまうのである。だからこそ、できる限り今まで慣れてきた操作と違和感のない挙動をする機能実装が必要だと考える。丁寧さよりもシンプルさを私は選びたい。

iPhoneのホームボタンを押せば戻れる安心感

iPhone。どんなに機種がデカくなろうとも、今でも変わらぬ機能がある。それが「ホームボタン」だ。どんな状況でもあのボタンを押せば、アプリ一覧に戻れる というのはユーザーにとってiPhoneを使うハードルを圧倒的に下げてくれている。もしあのホームボタンが状況によって通知とかニュースが出てきたりしたら誰もがクソだと言うだろう。

例えば、サービス提供者側からすると、"この状況でホームボタンを押したら、こういうことをさせればユーザーはより便利になるんじゃないか" と思って対応してあげるかもしれない。これが丁寧さの考え。 でもユーザーからしたらまずホームボタンを押してから、自分のやりたいことをやればいいだけなので、そういう対応は余計なお節介にしか感じられない。

iPhone は極端な例ではあるけども、実際のサービス開発では同じようなことがよく起きる。

シンプルによるサービスの見通し

丁寧を意識すると、「こういう時はこうする」ってパターンがどんどん増えてくる。プログラミングで言えば、if文が増えるということだ。もうお分かりの通り、丁寧さはゆくゆくは複雑さに変わり、保守やテストを困難にさせる。新機能を開発するたびに、その丁寧さを実装してしまったところをテストしないといけない。私はテストコードも書くけども、しっかりと画面上で行うテストも必要だと考えている派なので、その分テストの時間がかかる。

得てしてシンプルじゃないサービスは機能開発のたびにそのシンプルさじゃないが故の、機能開発時に検討しなければならない事項や、テスト項目が増える性質を持っている。

それに頭を悩ませて無駄な時間を取られるより、もっとクリエイティブな方法で同じ課題を解決できたら、より生産性の高い開発に時間を取れるだろう。

まさに昔の IE 対応に時間を取られているかのように、丁寧さを意識するとそういう時間が増えてしまう。それってクールじゃないよね。

終わりに

Think Simple. シンプルこそ正義であることはサービス開発のすべてに共通して言えることだと思う。まだ納得のいかない方は、分厚いけど以下の本とかで考えるきっかけを作ってみていただけたらと思う。

Think Simple―アップルを生みだす熱狂的哲学

Think Simple―アップルを生みだす熱狂的哲学