ボクココ

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

サービス開発で意識すべきこと

ども、@kimihomです。

はじめに一番意識しなければならないことを言いたいと思う。

"シンプルに作ろう。"

f:id:cevid_cpp:20151109211659j:plain

"何を作るか"の注意点

"何を作るか"というときにどうしても陥りがちな問題がある。"あればいいよね"な機能を作り過ぎてしまう点である。"あればいいよね" を突き詰めたサービスは、最終的に大量のメニュー画面で埋め尽くされたサービスとなる。誰も使わない機能を1ヶ月かけて作るような無駄な仕事をすることになる。そんな適当な開発をしてるくらいなら違う仕事をしていた方が良かったというオチが待っている。

他の例として"あればわかりやすいよね" がある。ここにこのボタンを入れればよりわかりやすくなる。そういう議論だ。その行く先は、文字やアイコンだらけのサービスとなっていく。わかりやすいために作ったのが、返って複雑さを増したサービスを作ってしまうのだ。

無駄な開発プロジェクトは、最初はあまり気付きにくい。最初はサービスがシンプルな状態なので、確かにそうかもなと思って誰も反論できないのだ。複雑なサービスを作り始めてしまったらそれが最後。あらゆるコードが絡み合って出来上がったサービスに後戻りは不可能。作り直し以外方法がなくなる。無駄な機能を作ると、テストが無駄に増える。その分メンテナンスにも時間が増える。誰も使わない機能のためにテストをするなんて惨めなこと、誰もしたくないだろう?

こういった事例はスタートアップよりも大きな組織で開発プロジェクトをやろうとすると起きる可能性が高い。誰も本気でサービスのことを考えられていないとそうなる。特に思いついたアイディアをただ適当にいうだけの人がプロデューサーだとそのサービスは絶対に成功しないと考えている。

サービス開発者が考えなければならないこと

作る前に「これはサービスを使っている人が必ずなければならない機能なのか」を常に考えよう。あなたが"必ず必要だ"と勘違いしている機能を考える必要はない。

他と重複するようなことを作ろうとしていないか。そんなことをしなくても解決できる方法がないのか。そうした疑いの目を常に向けることこそが未然に防ぐための唯一の方法である。このことがわかってないプロデューサーがいたらそれはアウトだ。言われるがままにエンジニアはそれを作らされ、誰も喜ばないサービスができあがる。それだけは避けてほしい。

人はなぜiPhoneに惹かれるのか。それは一貫したシンプルさではないかと私は思う。統一性のあるアイコン、メニュー、そしてホームボタンという唯一のメインボタン。サービスもそうした統一感を追求すべきであり、わかりやすさのために戻るボタンやメニューボタンを入れたらそれは逆効果になる場合もあるのだ。

プログラミングでもDRY(Don't Repeat Yourself) とあるように、それはサービス開発でも同じことなのだ。徹底した共通化こそが一貫性を生み、シンプルなサービスとしてクオリティ、デザイン、使いやすさすべてが整ったサービスができあがるのである。

"本当の改善は機能を追加することではない、削ることだ。" ということを肝に銘じつつサービス開発を続けていきたいと思っている。