2016年4月1日
私がどのようにして180日で180個のウェブサイトを作り、YC フェローシップ・ファウンダーになったか
本記事は、原著者の許諾のもとに翻訳・掲載しております。
私はY Combinatorの2016冬季フェローシップに選ばれたスタートアップのテクニカル・ファウンダーです。たった3年前にはコーディングのことを全く知らなかったことを思うと、すこしシュールにも感じられます。この記事は、私はどのようにして現状に至ったのか、そこから何を学んだかのストーリーです。
180日で180個のウェブサイト – 背景となる話
私は、180日で180個のウェブサイトを作ることでコーディングを独習しました。1日1サイトの設立で、私の6か月は完全に費やされました。「このプロジェクトに挑むために私が仕事をやめた」という事を聞くと人はよく驚きましたが、私が仕事をしながらコーディングを学ぶ方法はないという事を私は分かっていたのです。
私はかつてある種の…ファインアーティストでした。なにかを作るのが好きで、それゆえにファインアートを勉強するのをやめました。芸術は私にとって、何かを構築・創造するはけ口を提供してくれるものでした。若い楽観でいっぱいの頭と、大量の奨学金ともに、私は芸術系の大学院に逃げ込みました。2年間を芸術作品の制作に費やし―自分の内なる声に従い、またそれを探しながら―卒業したときには、私は無一文でした。私はお金を得る必要があり、「芸術作品を作る自由時間も得られるだろう」との思いからバーテンダーを始めました。
美術学修士号の修了制作発表として、パフォーマンスの一部を行っているときの私
私は間違っていたのです。私のフォーカスを分割してしまうことで、私は作りたい芸術作品を作るのがとても難しくなってしまっていました。私は決して芸術作品を作ることを本当に「やめた」わけではありませんが、創作活動に全てを費やすこと出来なくなると、創作意欲の空虚を埋めるために他の事をやり始めました。ターニングポイントは、友人のiPhoneアプリのUI/UXの仕事を手伝った時でした。それ以来、私はそれに魅了され、自由時間を使って複数のテック系プロジェクトを手伝うようになりました。
ものごとのデザイン側に従事することは面白かったのですが、より多くの事をしたくなりました。自分が仕事をしている対象について、ほんとうに「作りたく」なったのです。しかし、どうやって?私は、「自分を全て何かに捧げないと、それは自分のものにならない」ということを分かっていたため、仕事をやめ、コーディングを学ぶことを決めたのでした。すぐに仕事をやめるには十分なお金はありませんでしたので、その直後の数か月はただお金を得ることだけに照準を当てました。十分なお金がたまった時、コーダーになるという自分の夢を叶えるために仕事をやめました。
180日で180個のウェブサイト – やってみることで学ぶ
最初、私には計画はありませんでしたが、「もしコーディングを学ぶのに成功したければ、可能な限りたくさんのコードを生み出すべき」ということは分かっていました。まず大きなRailsプロジェクトに飛び込むことを考えましたが、初心者からするとこれはとても気力をくじくものでした。そこで、まず手始めには小さいウェブサイトを大量に作るところから始めようと思いました。しかし、幾つ作ればよいのでしょう?5個?10個?50個?
自問自答しました。「1日1個、それも毎日小さなサイトを作れば、いくつ作れるだろう?」その時、頭に浮かんだのは180という数字でした。これは総じて狂った数字にも思えましたが、同時に素晴らしいチャレンジでもあると考え、自分のためにいくつかのルールを設けることにしました。1日1個、毎日ウェブサイトを作り、それを180日続け、毎日各サイトについて短いブログ記事を書き、全てのコードをGitHubに公開すること。
私が1日1個のウェブサイトを毎日作ることにしたのは、そうすることで、毎日何かを終わらせ、次の日に何かを始める必要が生じるからでした。毎日何かを終わらせることは自分自身に達成感を与えてくれると思いましたし、デッドラインを作ることは小さな物事で詰まっていられないことを意味していました。自分が行う範囲において、何が起こっているかを全て理解することは重要ではないと考えたのです。
このプロジェクトで最初に作ったサイトはとてもくだらない物でした。丸一日かかって作った最初のウェブサイト、それはこのプロジェクトに関するホームページ、 https://jenniferdewalt.com でした。いま振り返ると、何故これを作るのにそんなに時間がかかったのかわかりませんが、一日中答えを求めてGoogle検索し続けていたことは覚えています。毎日少しずつ物事を学びました。 Day 30 – Silly Kitty ではCSSで狂気じみたものを作りましたし、 Day 69 – Leave a Note ではRailsのとてもシンプルなアプリも作りました。さらに、プロジェクトの終了までには、 Day 178 – How We’re Feeling でNode.jsのサイトも作りました。
180ウェブサイト・プロジェクトの構造により、私は高速に成長することが出来ました。しかし、多くの人は「一日で本当のウェブアプリなんて作れるはずがない!本当にフルスタックな開発はもっと複雑だ!」と指摘しました……そして、その指摘は正しいです!そこで、180個のウェブサイトを作り終えた後は、 YumHacker を作ることにしました。
YumHacker – 本当のものを作る
180ウェブサイト・プロジェクトを終えた後は、多くの事について少し知れてはいたのですが、熟練した技能というものは何もありませんでした。私は「フルスケールのウェブアプリを構築する、というのはどういうものか」を学びたくなり、YumHackerという、レストランを見つけるウェブサイトを作ることにしました。これは基本的には、食べ物のためのソーシャルネットワークです。YumHackerを作ることで、多くの新しいことを探求することになりました。最小限使えるプロダクトを作るだけでも、APIアーキテクチャや位置情報、クライアントサイドのMV*アーキテクチャ、メモリ管理など多くの事を学ぶ必要がありました。
YumHackerのようなフルのウェブアプリを作ることは、一日で作るプロジェクトとは違ったものでした。私はYumHackerを成長させたかったのです。最小限の機能をリリースしたとき、得られたフィードバックは雑多な物でした。多くの人がこのプロダクトを好きだと言ってくれましたが、アナリティクスを見ると数字は良くありませんでした。コーディングを学んだ時と同様、私にはコーディングとは全く関係しない新たなチャレンジ群が生まれたのです。
YumHackerのポイントは「どのようにして完全なウェブアプリを作るかを学ぶ」という事だったので、私は既にその目的は達成していました。しかし、プロダクトやそのグロースへの挑戦ができると思い、プロジェクトを続行することにしました。当時、食べ物のソーシャルネットワークを作ることは人々にとって共感されるものでないことは自分にとって明らかでした。そこで、YumHackerをむしろ食べ物のBuzzFeedのように作り変えることを決めました。SEOやコンテンツマーケティングについて学び、ロングテールのSEOを実現しました。このやり方は機能しましたが、Google上のランキングでの進行は…実に…遅かったのです!ウェブサイトを成長させる試みは楽しかったのですが、食べ物のメディアカンパニーを作ることに私はそこまで熱意はありませんでした。そこで、YumHackerをやめて、自分が熱中できるプロジェクトに参加することにしました。
Wit.ai – グロースハッキング
YumHackerを始めることにした時、そのゴールはフルスタックの開発に慣れることでした。しかし、その過程で、グロースハッキングにも興味が出ました。どちらを追求すべきかわかりませんでした。どのような役職があるかを知るために、たくさんの小さなスタートアップと契約し、最終的に非常に困難な決断をすることになりました。素晴らしいFinTech会社でのフルスタックのRuby on Rails開発の役職と、基本的に「Siri-as-a-service」といえる Wit.ai でのグロースの役職の両方をオファーされていました。ビジョンに共感し、会社の成長を助けたいと思ったため、Wit.aiを選ぶことにしました。
Hack The Northハッカソンの開会式でWit.aiを紹介
Wit.aiに私がいた期間はとても短いものでした。私が参加してからわずか5か月後にWit.aiがFacebookに買収されたのです。この買収は私にとってビタースイートなものでした。一方では、私がその成長を助けた会社が成功して終了しましたが、その一方で、毎月の継続的な成長が見て取れるようになったばかりで、勢いがあったのです。Facebookのために本当に働きたいとは思えませんでしたし、Facebookもちぐはぐなグロースハッカーを求めてはいないと思いましたので、最終的に私はささやかな退職金をもらって袂を分かちました。
Zube – 会社を設立
Wit.aiを離れてから、 Zube という開発者向けプロジェクトマネジメントツールを作ることにしました。このアイデアはWit.aiの開発チームとともに働いていたころの経験から来ました。そのチームではGitHubのissueのマネジメントに苦労していたのです。約1か月のコーディングののち、共同設立者のAaronを説得して参加してもらい、この会社が生まれました。
会社を設立するということは、私の過去のどのプロジェクトとも違うものでした。人が欲しがるものを作るのに悩まされなければなりませんし、顧客と密接に仕事をすることに興奮を見出さなければなりません。また、会社を設立することは、そのゴールがずっと抽象的である点においても過去のプロジェクトとは異なっていました。最初の資金を獲得すること、最初の社員を雇う事、ベンチャーキャピタルの協力を得ること、株式公開など、過程には多くの物事がありますが、それらはただのマイルストーンにすぎません。Zubeのゴールはいくつかのマイルストーンに達することではありません。我々のゴールは開発チームを幸せにすることで、これはあるひとときに制約されるものではないのです。
どんなスタートアップもそうであるように、Zubeには起伏がありますが、Zubeをやることで、私は好きなこと全てをやることを求められますし、心が休まります。YCのコミュニティは私の旅路の大部分でした。Paul Grahamのエッセイのおかげで私はアントレプレナーシップの追求心を鼓舞されましたし、Hacker Newsコミュニティはコーディングを学ぶときに大変励みになる物でした。そして、Wit.aiは素晴らしいチームから学ぶ機会を私に与えてくれました。そして今、現在のYCフェローシップの一部として、サポートしてくれるアドバイザーと同僚の素晴らしいネットワークを多く我々に与えてくれています。
最後に
コーディングを学んだりアントレプレナーになりたければ、自分自身の方法を見つけなければなりません。しかし、ここで私は4つのアドバイスを差し上げたいと思います。
1. 仕事をやめよう (目的を持って)
キャリア変更か起業かを問わず、もし大物になりたいと期待するのであれば、成功したければ自分のゴールに向かって100%照準を合わせる必要があるでしょう。いくつかの点において、大きな飛躍が必要になりますし、仕事をやめる必要が生じます。これは、決して「あばよ!」なんて言ってただ仕事をやめればいい、という意味ではありませんし、プランを決めて、どのようにそれを実行するかを明瞭にすべきです。
2. 小さなことに詰まらないように
路上の小さなデコボコに立ち往生してしまう事は容易にあります。大事なのは、骨折ってでも進捗を生むために進み続けることです。自分自身を前進させ続けられることを全てやりましょう。
3. 自分の好きなことをやろう
自分がほんとうに熱意を持っているものをやっているんだ、ということを確認しましょう。自分の仕事対象を信じないと、成功するのは難しくなります。
4. Find your peeps
自分が共感できる人の周りに身を起きましょう。そうしないと非常に孤独になりますし、道中で必要なときにアドバイスと愛を与えてサポートしてくれる人々のネットワークを持つことで、あらゆることが違ってきます。
Discuss on Hacker News
株式会社リクルート プロダクト統括本部 プロダクト開発統括室 グループマネジャー 株式会社ニジボックス デベロップメント室 室長 Node.js 日本ユーザーグループ代表
- Twitter: @yosuke_furukawa
- Github: yosuke-furukawa