個人開発するエンジニア「個人開発していてもなかなかモチベーションの維持ができない。開発していてもいつも途中でやめてしまう。モチベーションを保つ方法はないかなあ…」
そんな疑問に答えます。
この記事の内容
個人開発でモチベーションを維持する方法を解説します。
記事の内容は以下になります。
- リリースまでの期間を短くする
- 技術的に難しすぎることはやらない
- 途中で「このサービスは誰も使わないかもしれない」と思ってもやめない
書いている人の実績
- 個人開発を開始してからリリース後10年間サービスを運用
- サービスは現在月間PV700万
- 収益は月50万円オーバー
それでは見ていきましょう。
リリースまでの期間を短くする
リリースまでの期間は最長で3ヶ月、できれば1ヶ月以内を目標にしましょう。
あまり長いと必ず途中でモチベーションがダウンします。断言します。
モチベーションがダウンする前にリリースしてしまうことが最大のコツです。
例えば1日で完成できるサービスであればたいていの人はリリースできます。
世の中の個人開発のほとんどがリリースまで行かない最大の理由は開発期間が長すぎることです。これは10年間個人開発を続けている僕が断言します。
とは言え、前述した例え話のような1日でリリースできるサービスなんてなかなかありません。
そこで、最適な開発期間を考えると、僕の経験上1ヶ月〜3ヶ月が適切な期間になります。
これ以上長いとリリースまで持っていくことが極端に難しくなります。
ここの期間を決めてしまえば、あとは自分が取れる時間と期間をかけ算すれば費やせる工数が計算できます。
平日2時間+土日:合わせて10時間=週20時間
リリースまで1ヶ月の場合=20時間×4週間=80時間
リリースまで3ヶ月の場合=20時間×12週間=240時間
これぐらいの工数におさまるようにスコープを調整しましょう。
あれやこれやと機能を盛り込みたい気持ちは分かりますがリリースしてから入れましょう。
ソーシャルログインはGoogleだけでいいです。
管理画面なんて最初はいらないです。SQLかGUIツールでデータをグリグリいじりましょう。僕のサービスは10年やってて未だに管理画面はないです。
開発できる時間を確保する
そもそもそんなに時間が取れない方は、まず時間を確保する方法を検討しましょう。
平日は定時ダッシュです。定時に帰れないのであれば朝に時間を確保しましょう。
土日は予定は無しです。友達の誘いはシャットダウンです。心配しなくても3回も連続で誘いを断れば誘われなくなります。
個人開発は友達を無くすことだと思いましょう。
個人開発のリリースはそんなに甘くはありません。
ここまでやってようやくリリースまで持っていけます。
平日は死ぬ気で時間を取って、土日はフルで使うぐらいの意気込みで挑みましょう。
1ヶ月だと大きなサービスは開発できない
確かに1ヶ月程度(上の計算で80時間)だと大きなサービスを開発できないかも知れません。
しかし、壮大なWebサービスを個人開発で最初から構築しようと思うことが間違いです。
まずは機能を最小限に絞ってリリースして、色々やりたいことはリリースしてから後のお楽しみに取っておきましょう。
「最初から大きなサービスにしておかないと誰も使ってくれないかも知れない」
大丈夫です。
あのGoogleでさえも最初にあった機能は検索だけです。
Twitterも140文字のつぶやきだけです。
facebookも大学の小さなコミュニティのために開発されました。
その後、ユーザーのニーズと必要に合わせて機能を増やしていったのです。
技術的に難しすぎることはやらない
よくあるパターンとして、初めて使う技術を盛り込んで調べてる途中にモチベーションが落ちるパターンです。
例えば、普段PHPとMySQLとApacheとCentOS(いわゆるLAMP)で開発をしているのに、
「よーし、色々勉強したいから言語はJavaを使おう。フムフム、JavaのフレームワークはSpringBootがよいのか、じゃあそれで。そうだ、AWSもさわっちゃうぞー。あ、NoSQL使ったこと無いからDBはMongoDBだ!」
はい、150%リリースできません。
初めて使う技術は全体の1割〜2割までにとどめましょう。
なぜならば、今まで使ったことのある技術ばかりでも、自分一人で全部やるとなると分からないことは山ほど出てきます。
使い慣れた、手になじんだ道具(技術)を選択することが成功への第一歩です。
個人開発=”モノ作り”と勉強は分けて考えるべき
個人開発をしながら新しい技術を学びたい、その気持ちは分かります。
しかし個人開発と勉強は分けて考えるべきです。
その理由は開発スピードを確保するためです。
未知の技術で開発スピードを確保できる超天才エンジニアなら話は別ですが、ほとんどの人はスピードが落ちます。
ちなみに僕は超凡人エンジニアです。なので未知の技術だと3日経ってもアウトプットが無いことはザラです。
こうなるとモチベーションもクソもありません。控えめに言ってやる気ゼロです。
動くものが何も出来上がらないのに、モチベーションを維持できる人はなかなかいません。
このことは以下の記事でも取り上げていますので、興味があれば読んでみてください。
途中で「このサービスは誰も使わないかもしれない」と思ってもやめない
これは個人開発あるあるです。
「これ、誰が使うんだろう…」
僕もいつも思います。最初に盛り上がっていても必ず思います。
そこで諦めたら試合終了です。
僕も同じことを思いますが、僕のサービスは10年間使い続けられていて、今では月間ユーザー数は50万人以上です(Google Analytics調べ)
そんな時は一度立ち返って、そもそも何のためにWebサービスを個人開発しているのか思い返してみましょう。
10万人に使ってもらえるサービスを作るために始めたのであれば、リリースしなければ一人のユーザーにも使ってもらえません。とにかくリリースしましょう。
Webサービスを個人開発した実績を作りたいから始めたのであれば、個人開発はリリースして初めて実績になります。とにかくリリースしましょう。
Aさん「いつも家で個人開発しているけどいつも途中でやめてしまってまだリリースしたことない」
Bさん「個人開発でWebサービスをリリースして2年間運用している」
どちらの実績に重きを置くかは言わずもがなです。
大事なことなので何度も言います。
とにかくリリースしましょう
リリースすれば勝手に動いてくれるのがWebサービスの最大の魅力
そして、一度リリースしてしまえば放っておいても動き続けるのがWebサービスの最大の魅力です。
ブログのように頑張って毎日書かなくても、ほぼノーメンテで毎日勝手に動き続けてくれます。
いつどんなものが世の中でヒットするかは、今のご時世では全く読めません。
自分が作ったサービスがひょんなことで時流に乗ることがあるかも知れません。
「あー、俺が考えていたサービスと同じようなことが流行ってる…最後まで開発してリリースしておけばよかった」
そんなことを思っても時既に遅しです(そこから開発を再開できる気概があれば別ですが)
本当に誰も使ってくれなかったとき
本当に誰も使ってくれなくても、損をするのは取得したドメイン費用と契約したサーバ費用ぐらいです。
その対価として得られるものはWebサービスを個人開発で作ったという最高の自信と実績です。
サービスが使われないことは失敗ではありません。
サービスをリリースできないことが最大の失敗なのです。
まとめ
- リリースまでの期間を短くする
- 最大で3か月、なるべく1ヶ月以内におさまるようにスコープを小さくする
- 技術的に難しすぎることはやらない
- 未知の技術は全体の1割〜2割におさえる
- 個人開発=”モノ作り”と勉強は分けて考える
- 途中で「このサービスは誰も使わないかもしれない」と思ってもやめない
- そもそも何のために個人開発をしているのか立ち返る
- リリースしなければ一人のユーザーにも使われない
- 誰にも使われないことは失敗ではない、リリースできないことが最大の失敗
モチベーションの管理は簡単ではありません。
この世にサービスとして姿を見せずに消えていったコードは山のようにあるでしょう。むしろそっちの方が多いと思います。
コードをサービスに進化させて世の中に出せるかどうかはあなた次第です。
これを読んだらすぐにコードを書いてください。そしてリリースしてください。
それが僕からの願いです。
そして、リリースしたらTwitterで教えてください。
すぐに見に行きます。感想も書きます。
早くあなたが作ったサービスを僕は見たいです。
それではよき個人開発ライフを!