踊る犬.netブログ (旧)

37signals著Getting Realは個人開発者のバイブルだ

今回は「Getting Real: The Smarter, Faster, Easier Way to Build a Successful Web Application」という本を紹介したい。
これは2011年に発売された、ウェブアプリを成功させるための方法論の本。
37signals社という、BasecampRuby on Railsを開発した有名な会社が書いた。
5年前の本とはいえ、技術依存の話はほとんど無いので現在でも充分すぎるほど通用する内容。
この本を読んで、特に共感したり大事だと思った箇所を紹介する。

※引用項は、特に断りのない限り同著からのものとする。

タダで手に入る

残念ながら邦訳はされていない。でも慣用句が控えめの平易な表現で綴られているので、読みやすいと思う。

※訂正: 日本語訳版もありました

こちらからメーリングリストに登録するだけでPDFがダウンロードできるのでぜひ。
Kindle版もあるのでメモや読みやすさ重視の方はそちらを購入するといい。

自分が欲しいと思ったものを作れ

If you’re having this problem, it’s likely hundreds of thousands of others are in the same boat.

“もしあなたが問題を抱えているなら、同じボートに乗った人がほかに何十万人といる可能性が高い”

これは自分でも強くそう思う。自作アプリで話題になったものは全て自分が強く欲しいと思って作ったものばかりだ。
その経験や上記の引用から言えることは、自分はそれほど特別ではないということ。
なぜなら、もしよっぽど大衆からかけ離れたライフスタイルや価値観を持っていたら、そもそも自分のニーズは人と共有し得ない。
だからもっと自分の感性や捉え方に自信を持っていい。

「より少ない」ことは良いこと

Do less than your competitors to beat them.

“競合に勝つために「より少なく」やれ”

小さくシンプルなことはとても良い。
「より少ない」ことは、コスト面と使いやすさの面において重要な意味を持つ。
機能を詰め込み過ぎることは以下のような問題を孕む。

Evernoteが開催したカンファレンスでユーザーから「私はEvernoteを長年使用してきて、とても愛しています。でも、私は最近になってEvernoteで出来ることのほんの5%しか使っていなかったことに気付いたんです」と言われた

あなたが今付けようとしているその機能は一体何%のユーザに向けたものなのか、深く意識したほうがいい。
多機能過ぎることの弊害のもう一つは、ユーザに混乱を招くことだ。
あなたはAdobe製品をマニュアル無しで使いこなすことができるだろうか?

一つの機能を追加することに隠されたコストを、みんな見落としがちだ。
機能はさらなる機能を引き連れてくる
実装したら、次にプロモーション用のスクリーンショット、ツアーページ、FAQやマニュアル、利用規約なども見なおさなければならないだろう。
その機能は、本当にそのコストに見合うものか?よく考えた方がいい。

機能要望は忘れろ

If it’s really worth remembering, they’ll remind you until you can’t forget.

“もし本当に覚えておく価値があるなら、彼らが忘れないように思い出させてくれるだろう”

最初の返事は「いいえ、まだ」だ。
あなたが注力すべきは、皆が切に願っている機能のみだ。
もしその要望がずっとついて回っていることに気づいた時、はじめて深く検討しよう。

自分の経験を思い返してみても、機能要望を注意深く見ればそれは「他社製品でも出来る機能」であることがほぼ全てだ。その発想は無かった!と驚かされたことは一度もない。
もし機能要望だけをひたすら実装していたら、ついには特徴のない他社のコピー製品が出来上がるだろう。
これが、機能要望を二の次にすべきもう一つの理由だと個人的に思う。

まとめ

37Signalsの考え方は、スタートアップにありがちな「スケール至上主義」とは一見かけ離れたものだ。
その本質は「本当に大事なことにいかに注力するか」ということに一貫していると思う。
個人開発者にとって「無駄」は時に死活問題にもなりうる。だからバイブルとして何度も読み返したい著書と言えるだろう。

この「Getting Real」は気付きが多すぎてとても書ききれない。
自分の理解を深めるためにも、パート2に続けようと思う。