スピードを捨てる: 成長期の個人開発アプリを頓挫させないための戦略

スピードを捨てる: 成長期の個人開発アプリを頓挫させないための戦略

スピードを捨てる: 成長期の個人開発アプリを頓挫させないための戦略

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 HappinessA happy programmer is a productive programmer. We optimize for happiness and you should too. — DHH幸福に焦点を当てる幸せなプログラマーは生産的なプログラマーだ。僕らは幸福に最適化しているし、君もそうすべきだ。 — DHH

よりよいものを継続して作るためには、より楽しめる環境づくりが大切です。「これがリリースできたら・・」「ここさえ乗り越えられたら・・」という考え方は心身を摩耗させるやり方です。結果に執着せず、今を楽しみましょう。

みなさんの個人開発の参考になれば幸いです。

ぜひお試しを — https://www.inkdrop.app/

Read more

なぜ体を壊してまで個人開発を頑張るのか?自尊心の欠如や過集中癖と向き合う

なぜ体を壊してまで個人開発を頑張るのか?自尊心の欠如や過集中癖と向き合う

どうもTAKUYAです。最近、個人開発を頑張りすぎて体調を崩してしまいました。アトピーが猛烈に悪化して、QoLが著しく下がってしまいました。まだ療養中ですが、毎日1万歩以上歩いて、徐々に回復しつつあります。 この過ちを繰り返さないためにも、自分は一体何が原因で頑張りすぎてしまうのか?という事について深堀りして考えてみたいと思います。また、個人開発におけるメンタルヘルスはあまり語られていないトピックだと思います。本記事が、同じように仕事を頑張りすぎてしまう人の助けになれば幸いです。 TL;DR * なんとなく続けていたソフト開発が自分を救った * 原体験が歪んだモチベーションを生んでしまった * 親が引くほどの過集中癖がある * 生得的な直せないバグと考えることにする * アプリの成功に関係なく、自分をあるがままに受け入れる * 挫折しないのは、なんだかんだで前向きだから * ユーザさんから「休め!」と叱咤された * 人生は長い。個人開発なんかで死ぬな 自己の原体験について振り返ってみる 個人開発だけで生活するようになって、かれこれ8年ぐらいが経ちます。こう

By Takuya Matsuyama
ユーザサポートの問い合わせを装った攻撃が怖すぎた

ユーザサポートの問い合わせを装った攻撃が怖すぎた

どうもTAKUYAです。個人開発をしていてアプリの知名度が上がってくると、作者個人(あるいはサイト管理人)を狙った攻撃というのをたまに受けます。つい先日も、怖すぎるメールを受け取ったのでシェアします。 件名: Cookie consent prevents platform access Hello, I cannot access use the store. The cookie consent notice keeps appearing and nothing happens once I approve or try to close it, so I’m unable to interact with the website. Please provide guidance on

By Takuya Matsuyama
万年ペーパーの自分が車の運転を楽しめるようになった理由

万年ペーパーの自分が車の運転を楽しめるようになった理由

どうもTAKUYAです。大学の入学前に免許を取って以来ずっとペーパードライバーで、都市生活では出来る限り運転は避ける生活を送っていた。事故を起こせば人を◯してしまう可能性もある代物を日常的に運転するなんて考えられなかった。 そんな自分に転機が訪れたのは、結婚して大阪に戻った事と、子供ができた事、そしてアウトドアに興味を持った事だ。大阪近辺だと箕面とか野勢、神戸、丹波篠山などが日帰りでドライブしやすい距離だ。それで、恐る恐るタイムズのカーシェアで時々ではあるが運転するようになった。 他の車も生きた人間が運転しているという驚き まず運転していて気づいたのは、他の車にも生きた人間が運転していると言う点だ。そんなのは当たり前だろと思うかもしれないが、結構新鮮な発見だった。Grand Theft Autoなどの現代をモチーフにしたゲームをプレイすれば分かるが、NPCの車の動きは鈍臭いのでガンガンぶつかる。プレイヤーの進行を予測した動きなどしないからだ。 しかし現実では相手も事故りたくないので、お互いに動きを読み合い、譲り合って運転する。ルードな運転手もたまにいるものの、どちらかがよっぽ

By Takuya Matsuyama
禅的思考: なぜInkdropはMarkdown独自拡張をしないのか

禅的思考: なぜInkdropはMarkdown独自拡張をしないのか

InkdropはMarkdownのノートアプリですが、Markdownの独自拡張は「絶対にやらない」と決めていて、それがアプリの哲学になっています。 Markdown(厳密にはGitHub-flavored Markdown)の強みは、ソフトウェア業界標準で広く使われてい緩い文書フォーマットという所です。 アプリの独自記法を加えてしまったら、あなたの書いたノートはたちまちそれらと互換性がなくなります。 「独自記法を加えた方が便利な機能が付けられるだろう」と思うかもしれません。もちろん実際Markdownは完璧な書式ではないため、必要な場面はいくつかあります。例えば画像のサイズ指定方法が定まっていない、など。それでも自分は、ノートの可搬性を第一にしてきました。その裏には禅にまつわる哲学があります。 日本の文化は周りの環境と対立するのではなく、溶け込もう、馴染ませよう、共生しようとする傾向があります。窓の借景、枯山水、建築の非対称性、茶室のシンプルさ、侘び寂びなどあらゆるところで見られます。 絵画における「減筆」の手法を例にとって説明します。 これは、描線を最小限に抑えながら絹や紙の

By Takuya Matsuyama