10年個人開発を続けたら40歳を超えても現役でいられた
こんにちは zane です。
今年で42歳になりましたが、現役のフリーランスエンジニアです。今でもコードを書き続けられているのは、個人開発で培った経験と、そのプロダクト自体の貢献が大きいです。業界平均はわかりませんが、たぶん報酬的には頂いている方だと思います。
今まで、10個前後のプロダクトをつくり、中には出資頂く機会にも恵まれたりもしました。ただ、やっぱり1人でプロダクトをつくるのは、骨の折れる作業です。。。始めたばかりのころは、未完のまま投げ出すこともしばしばでしたが、自分のルールが確立されたことで、最近は確実に完走できるようになってきました。
今回は、それを10個のメソッドとしてまとめてみました!
何つくってんの?
最近は、ドラッグ&ドロップで WordPress を API 化するヘッドレスCMS「Collections」を作っています。フル TypeScript、RDB で動いて、そしてオープンソースです!
ヘッドレスCMS は国内でも先行例はありますが、クラウドサービスのみで WordPress からのスイッチングに課題があると考えています。
過去には、ITnews というエンジニア向けメディアで出資頂いたり
独自ドメイン無料のブログサービスも運営していました。
こちらは、もう色々な不幸が重なってしまい、最速でサービスを閉じてしまいました。。。
ご迷惑をおかけし申し訳ないです🙏
個人開発のメリット
もう数多くの記事で書かれていますので、ここでは触れません。続けることは筋力トレーニングと同じで、少しずつ長い期間で大きなメリットをもたらしてくれます。
逆にデメリットは・・・ないです!挙げるとしたら、掛けた時間への投資ですが、別の言い方をすれば「経験」と言えます。自分は元証券マンですが、これほど費用対効果の高い投資は、なかなか無いですね〜
10のメソッド
前置きが長くなりました、さっそく本題にはいりましょう。完走に必要な要素は以下の10個です。
- エンジニアの強みを理解する
- 誰の課題を解決するか明確にする
- 日々のノルマはつくらない
- 開発の期限をつくる
- 競合は事前に調べて徹底的にパクる
- 良い伴走者を見つける
- うかつに新しい技術に手を出さない
- Issueの重要度は死ぬか死なないか
- センセーショナルなローンチは期待しない
- 必ず公開する
📌 1. エンジニアの強みを理解する
最近はノーコードで、非エンジニアでもプロダクトが作れる時代になりましたが、やはりエンジニアの強みは製造コストをかけずに、長く作り続けられることです。
いまや先人によって、みんなが欲しいと思うサービスはほぼ開発し尽くされていてます。ので、いきなりブレイクするものをつくるのは無理ゲーです。個人と比べ資金のある企業でも、必ず予算があります。「資金が尽きるか」「人気がでるか」を過ごす中で、個人が淡々と作り、改良を続けられるということは圧倒的な強みです!
個人的には、流行りの分野に後追いするより、長い時間をかけて価値が生まれるプロダクトに賭けるほうが良いかも〜と思っています。
📌 2. 誰の課題を解決するか明確にする
これを決めておくと、プロダクトは作りやすくなります。だいたいは
- 自分のため
- 身近な誰かのため
- 課題を持つ知らない誰かのため
に絞られるかなと。後に連れて母数が大きくなるので、プロダクトはスケールしやすいですが、同時に共通する課題を見つけるのも難しくなります。
個人開発経験が浅いうちは、自分または身近な誰かのためのプロダクトをつくるのが良いと思います。「作ったらすぐに見せてフィードバックをもらう」というフレーズは、誰もが一度は耳にしたと思います。もちろん、疑う余地のない正解なのですが、完走を目指す我々が同じ戦略を取ると「要らない」「使わない」で、メンタルを折られて退場しかねないです。
ですので、はじめのうちは作り上げたことに満足するのをゴールにすべきです。
📌 3. 日々のノルマはつくらない
自分が試した方法でうまくワークしなかったのは「毎日コードを書く」とか「今週やりきる」など、自分にノルマを課すことです。正直色々言い訳できるし、やらない行動を正当化することは簡単です。とはいえ未達だと、人は少なからずモチベーションが低下していくものです。
なので、それよりはるかに「作りたいという」モチベーションを高く維持させることのほうが大切です。完走に重要なことは、作ること自体を楽しむことです😊
📌 4. 開発の期限をつくる
前項のノルマを作らないに対して、開発はリミットをつくります。
個人開発にとって最大の敵は、「飽き」と「諦め」です。
どんなに高いモチベーションをもって挑んでも、必ずこのどちらかが訪れます。作るのに手間がかかるサービスは別ですが、長く時間をかければ良いものができると思うと、そうではない気がします。欠点が目について、直したり、最悪作り直したりと、どんどんリリースすることに恐怖を感じてきます。そして、グチャグチャやってる間に飽きてリリースしないで終わります。
ですので、これらのプレッシャーがくる前にリリースしてしまいましょう〜
目標は半年以内、1年以上かけたらやばい! と思うと丁度よいです。
📌 5. 競合は事前に調べて徹底的にパクる
個人開発にとってモチベーションの維持が大切なのは理解して頂けたかと思いますが、逆にもっともモチベーションを落とす瞬間ってなんでしょうか?
「世の中にないと思って始めたら、似たサービスを見つけた」
です。もう、今までの努力が一瞬で吹き飛ぶほどの衝撃です!
しかし、残念ながらこれは事前調査不足です。。。
新しいアイデアが思いついて「今すぐ開発したい」という興奮する気持ちをグッと抑えて、GitHubで同じソフトウェアを探しましょう。見つかったからといって、新たに作ることに価値がないわけではないです。むしろ、競合の課題点を改善したら魅力あるプロダクトになります。
そして、共通する箇所は徹底的にパクる。2、3個、言語や作りが似ているものを見つけておくと、実装上で悩むポイントや、前提の知識をショートカットできます。
📌 6. 良い伴走者を見つける
1人で開発していると「こんなサービス使わくね」とか、リリースすることに恐怖を感じてきます。なので、ときどき誰かに壁打ちすることも大切です。
このとき、プロダクトの成功体験のある人がベストですが、同じ個人開発者でもGood!!
逆に、聞きやすい身近な人への相談は避けたほうが良いです。ユーザーは良いものは知ってるけど、体験しないと分からないです。ですので、結果的に目につく問題の指摘とか「使わないなー」で終わってしまいます。
もし、身近に相談できる人がいなくても個人開発者は、同じ属性の人が好きなので、相談を持ちかけて嫌な気持ちをする人は少ないと思います。
📌 7. うかつに新しい技術に手を出さない
エンジニアの陥りやすい罠、その1です。
得意な領域であればあるほど、新しい技術とかツールを導入したくなりますが、無駄に学習コストがあがって完走の妨げになります。サービスを作る上で死んでしまうこと以外は、新しい技術に手を出さないのが吉です。それでなくても、リリースに向けて普段やらない作業がたくさん出てきますので。
📌 8. Issueの重要度は死ぬか死なないか
エンジニアの陥りやすい罠、その2です。
個人開発の場合は、コストがかかりません。また、職業柄、仕様の手戻りやバグを潰したくなり、余計な時間を消費します。これでは、いつまで経ってもリリースできません。
普段はJIRA等をつかって 超高
高
普通
低
超低
とか、イシューのステータスを管理しますが、個人開発においては 死ぬ
か 死なない
かの2択です。
エンジニア的思考でバグを残したままリリースするのは苦しい思いもありますが、完走のために割り切ります。ないと死ぬ機能かあると死ぬバグ以外は、すべてバックログに放り込みましょう〜
📌 9. センセーショナルなローンチは期待しない
無風は怖いです。1年かけてつくった上での無風は堪えます。
そして、忍び寄るバーンアウトもすさまじい...😱
ローンチはゴールではなく、あくまで長いロードマップの最初の到達点と考えましょう。
大事なのは、出したあと改善を続けること!
小出しにすると、アイデアがパクられると思う方もいますが、画期的なアイデアはなかなか降ってこないです。むしろ、ユーザーが少しずつ増え、改善を繰り返す中で見つけられるものなので、気にせずのびのびと発信してくださいー
📌 10. 必ず公開する
ずっと運営し続ける必要はないです。1つか2つ記事にして、残すだけでも十分。記録として残り、自分の中で区切りもできれば、達成感も生まれます。
大事なのは、使える形にして世の中に放り込むことです!
最後に
個人開発は楽しいです!!学習意欲の根源みたいなものです。
ぜひ、誰かに新たな体験を届けましょ〜
では Happy Coding!!
Discussion