スピードを捨てる: 成長期の個人開発アプリを頓挫させないための戦略
MarkdownノートアプリのInkdropを一人で作っています。去年の頑張りのお陰で幸いにも月間20万を超える収益化に成功しました。アイデア出しから収益化までの道のりはこちらに書いた通りです。
さて、今後このサービスを継続して成長させていくためには、立ち上げ期とは少し異なる戦略が必要です。それは、課金してくださっている顧客を守る事です。なぜなら、ノートアプリの本質は知見の管理だからです。長く使うほどその価値が発揮されます。なので、当初から事業の継続性は最重要視していますが、運用・保守面においてもより一層気を配らせていく必要があります。
本稿では、個人開発における事業立ち上げ後の成熟化に向けた心構えや戦略について考えたことを書きたいと思います。
勢いに任せるのは限界がある
立ち上げ当初はとにかく勢いを大事にしました。頻繁に新バージョンをリリースして、ブログを書いて、盛り上がりを演出しました。開発では、テストを書かずにスモークテストのみでユーザさんと一緒にデバッグしていく攻めの手法を採りました(詳しくはこちらの記事を参照)。マーク・ザッカーバーグが言った “Done is better than perfect.” の理念の実践です。幸いにもそのアプローチが功を奏して、一定数の課金ユーザを獲得できました。
一方、この戦略はスピード至上主義なのでとにかく体力と気力を使います。たとえ適度に休みを取っていても長続きしない戦略です。カーブを無視してずっとアクセルをベタ踏みしているようなものだからです。いずれ体を壊して燃え尽きてしまうでしょう。あるいは成長を焦るあまりスキが生じて、先般のコインチェックに起きた仮想通貨盗難のような事態に陥りかねません。大事なデータを預かる身として、あれは他人事とは思えない事件です。
今使ってくださっているユーザさんは、立ち上げを支えてくださったこのプロジェクトのパトロンと言っても差し支えないと思います。みなさんのお陰で、腰を据えてじっくりと取り組む余裕ができました。アプリを更に成熟させていくために、ここでスタートダッシュからロングランニングのペースにギアチェンジしたいと思います。
成長するにつれて襲ってくる焦りやプレッシャーと向き合う
成長期の戦略について語る前に、まずメンタル面で自分の身に何が起こっているのかをシェアしたいと思います。
ユーザ数の増加に伴って、機能要望も増えました。ありがたい反面、はやく期待に応えなければ、というプレッシャーになっているのも事実です。また、個人開発では「納期」が明確に無いというのも実は落とし穴になり得ます。納期がないということは、リリースは早ければ早いほうが良いという事になります。ですが1つのリリースが終わってもやることは無限にあるので、焦りと相まってペース配分が狂いがちになります。さらにライバルアプリとの競争もあります。気づけば、ずっと何かに追われるように毎日を過ごしています。
好きで始めたプロジェクトが自身を苦しめるのは本末転倒です。コンソール画面を開いて、「ああ、しんどい。やりたくない」と思ったら一度立ち止まる必要があります。好きなことを追い立てられてやるのは奇妙です。何か大事なことを疎かにしまっていることに気づく必要があります。
僕はもともとせっかちなので何事も「早く、早く」と考える癖があります。そのせいかストレスを溜めやすい体質で、それが体調にもしばしば影響を及ぼします。このままでは潰れてしまいかねないので、今降り掛かっているこの焦燥感やプレッシャーと上手く付き合っていかなければなりません。
こういった悩みは職種を問わずよくある話なのではないでしょうか。どうやら僕も例に漏れず、「フリーランスで個人開発だから気楽でいいね」とは行かないようです。
ゆっくり・じっくりペースでストレスを軽減する
前述の通り、サービスの成長に伴ってプレッシャーや焦燥感が自分に見舞われていることが分かりました。その原因を整理すると以下の通りです。
- 期待に応えたいという気持ち
- 納期の無い開発計画
- ライバルとの競争
- せっかちな自分の性格
このストレスから、楽しいはずの開発が苦痛になりつつあります。このままでは燃え尽き症候群になりかねません。最初に述べたとおり、このサービスは継続的に提供することが本質的価値で、続けることに大事な意味があります。そのためには心身のストレスを軽減する事が第一です。そこで考えたのが「ゆっくり・じっくり戦略」です。
この「ゆっくり・じっくり戦略」は、その名の通りペースを今までより少し落として、焦らずじっくり課題に取り組むという戦略です。スピード戦略の派手な活動は負担が大きいのでやめます。その代わり、サービスとしての深みを目指して、結果を焦らず、今喜んでくださっているユーザさんを更に満足させることにじっくりと取り組みます。具体的には:
- リリースの頻度を落として中長期的目線で開発する
- ゆるく計画を立てる
- ライバルを相手にしない
- ゆっくり動作を普段から心がける
以降より詳しく説明します。
リリースの頻度を落として中長期的目線で開発する
フォーラムで機能要望やバグ報告があると、早いときは数時間以内に対応していました。このように機能追加や修正の速さをウリにしてきましたが、これをやめます。すべての対応を緊急レベルでするのはこの段階では過剰対応です。一部では、バージョンアップが頻繁すぎて鬱陶しいという声も上がっていました。
表面的な機能追加ばかりを急ぐことにも副作用があります。それは、コードベースが徐々に汚くなりメンテ性が失われることです。目先の対応ばかりにとらわれると、古いコードの変更が難しくなります。まるで高く積み上げられたブロックの塔のように。この問題はニコニコ動画の開発難航など、身近なサービスにも見られます。
リリースを急がない代わりに、中長期的目線で開発します。例えば、JavaScriptのプログラムに静的型付けのFlowを段階的に導入します。そして軽めのテストも書きます。カバレッジはこだわりません。既にプロダクションでの動作実績があるからです。レグレッションをある程度防ぐことがFlowとテスト導入の目的です。完璧は目指しません。また、モバイル版とデスクトップ版のコードを丁寧に共通化して、コードの分散を回避します。一部をGitHubに公開しています。セキュリティの更なる強化も検討しています。具体的には、End-to-end encryptionの導入です。
このように、機能的には一見変化がありませんが、堅実な成長を助ける取り組みを行います。リリースのペースを落とすことで、ユーザさんから「対応まだですか?」と言われることが増えるかもしれません。その時は正直に今取り組んでいることを伝えて、理解してもらえるように尽くします。 “I appreciate the feedback but I did it this way because …” という感じで。期待にすぐ応えられないからといって、罪悪感にかられる必要は全くありません。ひいてはユーザさんのためになるからです。
ゆるく計画を立てる
受託開発では契約に対して納期という明確なデッドラインがあります。それに向けてペース配分をすればいいので、よっぽど逼迫したスケジュールでないかぎりストレスで潰れることはありません。
個人開発でもスケジュールをざっくり引くことにします。Inkdropではロードマップを公開していますが、その各項目の納期をそれぞれ設けます。問題は、その納期をタイトにしてしまう事です。僕は先述の通りせっかちなので、余裕を持ったスケジュールを引くよう意識する必要があります。
また、早く終わったからといって空いた時間を別のタスクで埋め尽くすのを出来るだけやめます。余剰時間は余暇や勉強の時間にあてたり、視野を広げることに使います。
ライバルを相手にしない
プログラマー向けのノートアプリというのは、個人の好みが強く出るタイプのアプリです。新しいアプリが日々続々と登場しています。中には、Inkdropのユーザを奪おうとする好戦的なプロジェクトも見られます。サービスを運営する中で、彼らは嫌でも自分の目に飛び込んできます。
しかし次のBasecampのDHH氏の言葉のように、ライバルを気にしすぎることは視野狭窄を生みます。
Overanalyze other products and you’ll start to limit the way you think. — “Getting Real” by DHH
もともと自分のこだわりを実現するために作ったアプリです。今のユーザさんはそこに共感してくださった方々です。競合アプリと張り合うと、無駄な機能が増え、互いに似通っていきます。こだわりは薄れて、良さが失われるでしょう。
自分のアプリが世界で一番などとは思っていません。どのアプリを使うかは好みの問題です。ニッチのマーケットでお互いを潰し合うのはナンセンスです。ユーザを奪い合うより、マーケットを大きくするほうが建設的ではないでしょうか。だからInkdropはライバルと戦わないことに決めました。
ゆっくり動作を普段から心がける
焦り癖を直すには、普段から落ち着いた言動を心がける事が有効でしょう。この自分のせっかちな性格は後天的なものです。大人になってから感情の癖はすぐに直すのが難しいかもしれませんが、出来ないことではないでしょう。
「浅い川はせわしなく流れて、深い川はゆっくりと流れる」という言葉があります。結果を出すことに執着するのは、負担が大きく長続きしません。深みのあるクオリテイを求めるには、時間をかけてゆっくり取り組む過程が必要不可欠だということです。
ゆっくり動作は、素早い動作よりも高度な芸当です。僕は10代〜20代の頃バンドでドラムをやっていました。初心者の頃、本番のライブになると緊張してついテンポが走ってしまうことがよくありました。テンポの遅い曲ほどタイミングを合わせて叩くのが難しい。歌や他の楽器でもそれは同じだと聞きます。
山登りでは小休止が重要と言われています。1時間歩いて、10分休む。その方が、休みを取らずにがんばる登り方よりもずっと早く山頂に立てます。
ビジネスの世界では、速いことが正義です。とにかく取引を効率化・高速化することで今日の経済にまで発展させてきました。ファストフードやファストファッションなど、高速で大量に消費されるものが僕らの周りには溢れています。なのでとにかく速ければ良いのかとつい思ってしまいがちです。しかし一方で、ワインや梅干しのように時間をかけたほうが良いとされるものもあります。革製品の経年変化もまた然り。時間をかけて作られたものには、深みがあり、一朝一夕では真似出来ない魅力があります。
僕はこれまで仕事に速さを追求してきましたが、30代は深みを追求するフェーズかもしれません。まだまだ成長できそうです。まずは言動から直していきます。
作ることを楽しむ
本稿では、好きなことを長く続けるために考えた戦略をまとめました。最後に、 DHH のこの言葉を紹介したいと思います:
Optimize for Happiness
A happy programmer is a productive programmer. We optimize for happiness and you should too. — DHH
幸福に焦点を当てる
幸せなプログラマーは生産的なプログラマーだ。僕らは幸福に最適化しているし、君もそうすべきだ。 — DHH
よりよいものを継続して作るためには、より楽しめる環境づくりが大切です。「これがリリースできたら・・」「ここさえ乗り越えられたら・・」という考え方は心身を摩耗させるやり方です。結果に執着せず、今を楽しみましょう。
みなさんの個人開発の参考になれば幸いです。
- Twitter: @craftzdog