個人開発は誰にでもできる!6つの「個人開発って大変そう。だって〇〇でしょ?」に答えてみた
はじめに
ごあいさつ
こんにちは、zomysan です。私はフロントエンドエンジニアとしてソーシャルPLUSでチーム開発をしていますが、趣味の開発にも取り組んでいます。チーム開発・個人開発いずれかに興味のある方、ぜひTwitter(X)でフォローしていただけると嬉しいです!
この記事について
この記事では、「個人開発って大変そう。だって〇〇でしょ?」という疑問・困りごとに対し、私なりに答えていきます。個人開発はとても楽しいものですが、私自身、数年前まで「自分には個人開発なんかできるはずがない」と思っていました。そういった重たい気持ちを吹き飛ばす記事になっていたら嬉しいです。
答えた「〇〇でしょ?」の具体的な内容は以下6件です。気になるところからどうぞ 👍
- 「個人開発って大変そう。だって時間足りないでしょ?」
- 「個人開発って大変そう。だってモチベーション保てないでしょ?」
- 「個人開発って大変そう。だって1人でやらないといけないんでしょ?」
- 「個人開発って大変そう。作るもの思いつかないし」
- 「個人開発って大変そう。だってセキュリティとかクラウド破産とか怖いでしょ?」
- 「個人開発って大変そう。だって簡単なものじゃ使ってもらえないでしょ?」
想定読者
- サービスやアプリを作ってみたい人
- 作り始めたはいいけど、なんとなく頓挫してしまった人
- キャリアチェンジや転職のために何か作りたいが、何を作っていいかわからない人
- その他、個人開発に興味のある人
サービスの紹介
個人開発者を名乗るにあたって、作ったものについての紹介をしておきます。リリースした中でいちばん広く使われているサービス「shovel」は、Discord で動く読み上げBotです。
shovel は2019年にリリースされ、今年で運営は6年目に入りました。夜間のピークタイムでは利用コミュニティ数は1万件以上になるなど、Discordの読み上げBotとしては大きな規模のサービスです。
いまではこのように大きなサービスになりましたが、はじまりは自宅PCで動く小さなコードでした。当時のことを思い出しながら、昔の私も思っていたような「個人開発って大変そう。だって〇〇でしょ?」に答えていきたいと思います。楽しんでいただけると嬉しいです。
「個人開発って大変そう。だって〇〇でしょ?」に答えていく
前置きが長くなりましたが、本文に入っていきます。こちらは私なりの考え方ですので、「自分はこう考える!」といくことがありましたら、ぜひ記事やコメント、Xなどで教えてください。
「個人開発って大変そう。だって時間足りないでしょ?」
時間はぜんぜん足りないけど、それでも大丈夫
個人開発ではチームにエンジニアが1人(あなたです)しかいないうえに、そのエンジニアはだいたいフルタイムで働けない(状況によるとは思いますが)ので当然時間は足りません。そのうえそのエンジニアはすべてを一人でやるために不得意なことで苦労したり、知らないことを勉強することに時間をとられたりします。
でも、時間が取れないことはじつは大した問題ではありません。
亀の歩みでも、ずっと続けていればそのうちゴールに辿りつきます。諦めなければ最後になにかは完成します。平日1日30分なんとか捻出すれば、1年間でだいたい100時間になります。100時間あれば、ちょっとしたアプリなら動く状態になりますよね。もちろんスピード感が必要なジャンルもあるでしょうが、自分のために作るものだったらのんびりやっても構わないでしょう。
ただ、これにはゆっくりでも行きたい方向に進むよう方向づける工夫が必要だとは思います。モチベーションの項でも触れますが、やりたいことの管理や段階的なゴールを設けるなど、うまく継続しつつ、こなしたい仕事に取り組めるよう整えることが必要でしょう。
時間をかけるべきところとそうでないところを見極めることも必要ですが、せっかくの自分一人で取り組むプロジェクトです。チーム開発ではできないような細かいこだわりを発揮するのもまた個人開発の楽しみかもしれません。
「個人開発って大変そう。だってモチベーション保てないでしょ?」
自制心もやる気も意志の力も全てなくても大丈夫
「個人開発をリリースまで持っていく」と聞くと、鉄のような自制心、強い意志、溢れるやる気がないといけないんでしょう?と思ってしまいますが、実はそんなことはありません。大切なのは自分という存在をうまいこと操って開発に誘導することです。
ではどうやってうまいこと操るかですが、ポイントは3つに絞れます。
- 「内発的動機付け」と「外発的動機付け」というそれぞれの動機付けによる目標を持ち、どんな状況でも開発に向かう気を起こさせる
- 大変なときほど焦る気持ちをおさえてしっかり休む・しっかり遊ぶことでリフレッシュする
- タスクを細分化することで長期戦の中でもマイルストーンを定め、細かく達成感を得る
それぞれについては先日別記事にて解説しましたので、詳しくは以下の記事をごらんください。
「個人開発って大変そう。だって1人でやらないといけないんでしょ?」
チーム開発と比べてもちろんやることは多いが、得られる経験値も多い
個人開発では得意分野ややりたいこと以外のアレコレもすべて自分でやらなければなりません。時間がないことも大変ですが、苦手な領域、未知の領域に挑戦しなければならないことにも苦労します。いっぽうで、チーム開発では他の人が担当する部分も個人開発ではすべて自分が経験します。専任職種で身につくような高度なスキルや専門性がそのまま身に付くわけではもちろんありませんが、自分の責任で意思決定する経験は貴重です。
たとえば、技術選定も自分でやりますし、大きな設計方針の決定も自分でやります。そして、その結果それらが有効に働いたり、はたまた負債になったり、そういった結果も自分で受け止めます。また、仕様を決めるのも自分で、実装するのも自分なので、ポジティブな反応もネガティブな反応もすべて自分の責任で受け止められます。
「すべて自分の責任」と書くと重く響きますが、実は逆です。すべて自分の責任で進めることができるからこそ、コントロールが効きやすく、ストレスも少ないのです。
とくに経験が浅いうちは、大きな意思決定をする機会はなかなかありません。ですが、個人開発ではその難しさや重要さを実際に体験できるため、自分でコントロールできる楽しさを学ぶ絶好の機会にもなります。
「個人開発って大変そう。作るもの思いつかないし」
開発から離れて生活を見渡し、文句の多い人になってみよう
何を作ろうかな?と考えてみてもなかなか出てきません。私のおすすめは「文句の多い人」になってみることです。「間違っているのは世界のほうだ」という考え方を持つのが大事です。私が「個人開発のテーマにするために何か人の役に立つサービスを作りたい、何かないか」という思いからスタートしていたら、私自身も読み上げBotを思いつかなかったかもしれません。
私はもともと「文句の多い人」です。友達とゲームをしているとき、友達がチャットを打っても気づかないことや、ゲームを中断してDiscordを開く手間が不便に感じました。そうした「小さな不便」から、「誰か代わりに読んでよ」と思ったのがきっかけで、「shovel」を作りました。
文句の多い人は敬遠されがちですが、そんな人たちが気づく「声なき不便」こそ、世界をより良い場所にするためのヒントになるのだ、と思っています。(自己弁護も少し入っていますが…)
「個人開発って大変そう。だってセキュリティとかクラウド破産とか怖いでしょ?」
リスクについての不安にとらわれないために、まずは小さく始めよう
「shovel」は冒頭で紹介したように大きな規模のサービスになりましたので、それなりの運用コストがかかっています。しかしこうなった理由は、私が「個人開発サービスをやるぞ!」と意気込んではじめたわけではなく、自分が使うためのツールを作ることから始めたからだと思います。最初から今払っているような規模のコストがかかると思っていたら、始められなかったことでしょう。
広く公開するサービスを作ることではなく、自分のためのツールを作ることを目標としてはじめた私は、最初のハードルを小さく設定できました。そこで向き合わなかった「インフラ」「セキュリティ」「コスト」といった問題はあとからわたしに降りかかったわけですが、動き出してしまえばあとは続けるだけです。1つ1つ、問題に対応しながらサービスを育てることができました。
もちろんどんなに小さくてもセキュリティやコストを無視して良いわけではありませんが、大規模なものを扱うよりはリスクが小さくなります。まず自分や身近な友人のためのものを作り、修正や改善をすこしずつ重ねる経験を積むところから始めるのがオススメです。
「個人開発って大変そう。だって簡単なものじゃ使ってもらえないでしょ?」
実装難易度は関係ないし、アイデアより行動が大事
「こういうものがあればいいなと思ったし自分は使いたいけど、こんな誰でも思いつくことではサービスにはならないだろうな」、という人は多いですが、諦めるのは早いです。作るのが簡単だとわかっていても、実際に作る人は思った以上に少ないからです。
サービスがサービスとして成り立つためには以下の3ステップがあります。
- 必要だと気づくこと
- それを実装すること
- 信頼感のあるサービスとして提供しつづけること
上記の3ステップの「3」まで達成できる人はあまり多くありません。まず、自分や他人の困りごとに気づいて「なんとかしよう」と思う段階である程度絞られます。続いて、「なんとかしよう」と思ったとしても、実際に動くものを作り上げるところでもまた絞られるでしょう。そして、作ることはできたとしても、多くの人にサービスとして信頼してもらえるよう、ブランディングや堅実な運営を積み重ねることまでする人は一握りです。
つまり、そこまでやる気持ちがあれば、十分にサービスとして戦えるということです。実装難易度は関係ないですし、簡単だからといって必要な人全員が手を動かすわけではありません。
実際、冒頭で紹介したように「shovel」は大きなサービスですが、やっていることの本質としては技術的に難しくありません。Discordのテキストチャンネルから文字列を受け取って、それを音声ファイルに変換し、Discordの音声チャンネルに流すだけの繰り返しです。複数のフレームワークやツールを組み合わせているに過ぎず、経験豊富なソフトウェアエンジニアなら数日で実装できる内容でしょう(もちろんサービスを運営するうえでの魅力づけや安定性向上のためにメインの機能以外にさまざまな工夫は入れていますが)。
あとがき
個人開発をするにあたっての懸念や不安感を少しでも取り除けたでしょうか?「いやいやそれでもこういうハードルが…」というご意見があれば私なりに答えてみますので、ぜひ教えてください。
たくさんのハードルはありますが、本文でも触れたとおり、個人開発はものすごくやりがいがあり、たくさんの経験を積める楽しい趣味です。この記事を読んだ方に「ちょっとした開発からでもやってみようかな」と思ってもらえたら最高です!
Discussion