個人開発で知っておいた方が良かったこと2
過去に個人開発で知っておいた方が良かったことという記事を書いた続きになる。
1. プログラミング言語について
プログラミング言語についての正解はないがベターな選択肢はある。まず一番最初に選択肢はその言語を書くとテンションが上がること。
個人開発ではモチベーションが上がりずらい時は必ず発生するので単純にモチベーションが上がる言語というのはそれだけで採用する理由になる。
次にプログラミング言語よりもサービス集中したいのであればTypeScriptとNode.jsの組み合わせをおすすめする(実行環境はBunでもDenoでも良い)
理由としては、
- 各サービスのSDKのサーポートが手厚い
- Node.js自体の実行スピードが結構速い
- メモリ使用量がそこそこ低い
- 非同期処理でメインなのでアクセスに対してさばける
- 純粋な静的言語ではないが型を指定しやすい
- Webアプリの場合はフロントとバックで言語による頭の切り替えが少ない
- 生成AIの学習量が多いので提案するコードの品質が良い
個人開発では5の恩恵が結構重要。理由としては個人開発の辛いところでQAを一人で行う必要があるから。
ただ型があると最低限のケアレスミスはコンパイルエラーで検出してくれるので開発効率が良い。
最近ではやはり7も重要で、仕事でSwiftを書くのですがやはりTypeScriptのコードの方が学習量が多いので有利に感じる。
デメリットとするのであれば標準のエラー処理が面倒なのと、バックエンドに関してはオブジェクト指向系の言語の方がコード量がコンパクト?(フレームワークの影響もあるかも)になりやすい。
2. やる気は有限である
サービスを10個も20個も作る人もいるが個人的にはこれはかなり特殊な人で普通の人であれば3~4個サービスが滑るとやる気は失う。
とくに自分が納得してリリースしたサービスであればいいが、自分で無理矢理ひねり出したサービスで失敗すると特に徒労感が大きくなる。
そのため個人的には無理矢理ひねり出したアイデアのサービスであれば作らない方が良い。それならいつか自分が良いと思えるサービスが思いつくまで待つ方が良い。
ただしそれでも個人開発をしたいのであれば次に思いついたサービスを速く出せるように共通となる処理をまとめたり、デザインのコンポーネントを整理することに時間を割いた方がいい。
3. 経費をケチりすぎると時間対効果が悪い
以前自分はサービスの維持費が安くなることが良いと書いた。
ただ本音で言うと月額1万円ぐらい出せるのであればそれに越したことは無い。というのも極端に安い維持費にしようとすると色々なサービスをピタゴラスイッチのように横断して使用するケースが多いので、単純に開発で調査・調整のコストが上がるので時間がかかる。
もし自分がフリーランスであれば恐らくその時間で働いた方が費用対効果は良いし、また会社に所属したとしてもその時間を家族や別の時間に使う方が良い。
とくにデータベースがお金がかかりやすいのでRDBではなくFirestoreのようなNoSQL系で組んだりするケースがある。
ただ実際に運用してみるとスキーマの設計・セキュリティに時間がかかるので、ガチガチに運用フローが固まっているケースやNoSQLを使用しないとキツいケースでなければ使わない方が良い。
とにかく言いたいのはお金が理由でNoSQLで組まない方が良い。
4. ニッチな需要と自分が使う
個人開発で開発するテーマはよく「ニッチな需要と自分が使う」と言われるがこれは言うは易く行うは難しである。
まず自分が使うというのは外さない方が良い。これは以前も書いたが他の人に提供するとなるとヒアリングや調査が極めて大変なためである。そのため自分が使って自分で必要か判断できるのは大きなアドバンテージだからだ。
また自分が好きなこともあまりやらない方が良い。というのは個人開発するような人は元々好奇心が強いタイプであるので、好きなことが変化しやすく飽きやすい。また好きであっても毎日は別に関わりたくなかったというのもある。
次にニッチな需要があるというのは正論であるが、実際にじゃあどう見つけるのとなる。そもそもニッチであるのに需要がどのくらいなのか調べるのが難しい。
そのため個人的にはこのサービスを使う人を自分とフィーリングが合いそうか、もしくは自分が応援したい属性であるかを考えるといいかもと最近は思うようになって需要があるかどうかは次の方法で検証できる。
5. 新コンセプトではなくて既に売られている者の改良版を出す
例えば飲食店を立ち上げてようとして完全個人の創作料理の店を出すのは何となく失敗しそうであるというのはわかるだろう。それよりも世に出回っているジャンルの飲食店を立ち上げてしまった方がお客様も期待値の調整がしやすい。
これもサービス開発に言えて新コンセプトのサービスを個人でやるのはかなりハードルが高い。もちろん10年くらい結果でなくも広めたいという心意気があるのであればそちらの気持ちを優先した方がいいだろう。
個人的には最初は有名なサービスのプラグインなど拡張サービスがいいのではと思う。理由としてはユーザー像が固まりやすいし、集客するにも分かりやすいからだ。もちろん過去のTwitter APIの値上げのようにプラットフォームの影響が受けやすくなってしまうが、だからこそ一般的な企業への参入障壁になる。
とにかく言いたいのは難しいユーザーヒアリングで買うかどうかの調べるのではなく、既に販売実績があったり、ユーザー像がはっきりしているサービスの方が良い。
6. 全振りして開発しても思ったほど結果は出ない
個人開発で本業を止めて全振りして開発する人もいるが経験上あんまり結果は良くない。確かに開発スピードは上がるが最初の2~3週間ぐらいであり、その後はダレてくる。というのも毎日誰とも交流がなく単調に開発するとやはり飽きてくるのと、貯金も減っていくプレッシャーもあって精神的にも良くない。
そもそも個人開発のサービスの最大の強みは急激な売上を目指さないで長期的に運用すること、売上やアクセス数の目標はすぐに改善するものではないのでそれを目的にするとキツくなる。
ただ確かに集中して進めたい時もあるので、その場合は連休と休みを申請して1~2週間集中して進む方が効率良く進む。
Discussion