サイドプロジェクトとは
サイドプロジェクト(Side project)とは、本業とは別に個人的に進める開発プロジェクトを意味します。主に開発者が本業以外で自分の興味や能力を向上させるために進めるプロジェクトで、主に個人または小規模チームで進められます。
類似の概念としてはトイプロジェクト(Toy project)があります。トイプロジェクトとは、新しい技術やアイデアを実験するために進めるプロジェクトで、主に個人的な目的で技術検討やアイデア検討のために進められます。
サイドプロジェクトとトイプロジェクトの違いは主に目的にあります。サイドプロジェクトは個人の能力向上やポートフォリオ強化を目的としますが、トイプロジェクトは新しい技術やアイデアを実験する目的で進められます。
| 区分 | サイドプロジェクト (Side Project) | トイプロジェクト (Toy Project) |
|---|---|---|
| 目的 | 実用的な目標(リリース、収益化など) | 技術学習、実験、練習用 |
| 規模 | 比較的大きく長期的に進行可能 | 小さな機能中心、短期的 |
| 完成度 | 製品レベル、実際のユーザーを考慮 | MVPレベル、プロトタイプ形態 |
| 実用性 | 実使用可能、サービス化を考慮 | 個人学習、デモ用途 |
| 例 | アプリ開発、オープンソースプロジェクト、サービス運営 | 新しいライブラリ実験、チュートリアルに沿う |
サイドプロジェクトの重要性
開発者はサイドプロジェクトを通じて、技術と問題解決能力を向上させることができ、ポートフォリオの向上と収益創出を通じて経済的成長にも役立ちます。
- 技術成長
- 新しい技術、フレームワークの実験が可能
- 本業では経験しにくい技術を学ぶ機会
- 問題解決能力の向上
- 実践で発生する問題を解決する経験の蓄積
- エンドツーエンド開発(企画 → 開発 → デプロイ → 運営)の経験
- ポートフォリオ強化
- 履歴書や面接で強みになる
- 実際の成果物(アプリ、ウェブサイト、ライブラリ)で自分の能力を証明可能
- コミュニティとネットワーキング
- オープンソースで共有すると開発者との協業機会が増加
- ブログ、発表資料として活用可能
- 認知度上昇
- 収益創出の可能性
- サイドプロジェクトがスタートアップに発展する事例が存在
- アプリストア、SaaS、広告などで収益化可能
- ポートフォリオ強化を通じてより良い職場への転職が可能、または年収交渉時に有利
ジュニア開発者は技術力とポートフォリオ強化に焦点を置き、シニア開発者は新しい技術導入やネットワーキング、収益創出に焦点を置くと大きな助けになります。
サイドプロジェクトを進めると、開発領域だけでなく、目標設定、プロジェクトおよびスケジュール管理、マーケティング、収益化戦略、サービス運営能力など様々な能力を向上させることができます。このような経験は、開発者として開発能力を向上させるだけでなく、開発以外の領域を理解することができ、これを開発に接続すればより優れた開発者になることができます。
プロ意識
サイドプロジェクトをすべき最も重要な理由は、私たちがプロだからです。
私たちは会社に雇用されたプロです。会社は私たちが持つ技術を活用するためにお金を支払い、私たちはお金を受け取る代わりに私たちが持つ技術を提供することになります。
もし私たちが持つ技術が発展しなければ、当然会社はより多くのお金を支払わないでしょうし、逆に技術発展が速く優れていれば、会社はより多くの金額を支払うことになるでしょう。
「会社で新しい技術を使わないから、新しい技術を習得する機会がない」、「会社の仕事が忙しくて勉強する時間がない」、「うちの会社で使う技術ではないからよく知らない」などの言い訳はプロには似合いません。
このようなプロ意識が最も高いところはスポーツ業界です。私たちは世界的な選手たちを見ることで、なぜサイドプロジェクトをすべきなのか確認できます。
- コービー・ブライアント:早朝4時に起床後6時間以上トレーニング、試合後も数百本のシュートを追加練習
- 大谷翔平:1日10時間以上トレーニング、投手と打者の練習をすべてこなす
- クリスティアーノ・ロナウド:チームトレーニング後も個人トレーニングを追加、水泳、ヨガなど様々な補助トレーニング
彼らも会社に雇用された選手なので、チームの勝利のために会社で決められた練習およびトレーニングを進め、試合に出ます。しかし、彼らはそれ以外にも個人トレーニングなどを通じて自分の技術をさらに発展させています。大谷選手は野球の試合で最高のコンディションを出すために睡眠も徹底的に管理しているそうです。
私たちは果たしてプログラミングを上手くするために睡眠の質も管理しているでしょうか?もちろん、私たちが必ず世界的なプログラマーを目指す必要もなく、プログラミングを上手くするために睡眠の質まで管理する必要はありません。しかし、少なくとも自分の技術を発展させるために努力してこそプロと言えるのではないでしょうか?
サイドプロジェクトはこのためのとても良い手段です。会社で使わない技術を習得したり、会社で使う技術力をさらに高めることができ、新しい技術を実験し、自分の技術を発展させる良い機会です。プロ意識を持っているなら、自分のためにサイドプロジェクトを進めるのは当然の選択と言えます。
サイドプロジェクトを始める方法
サイドプロジェクトは本業と並行しなければならないので、大規模プロジェクトよりは小さな目標から始めるのが良いです。以下はサイドプロジェクトを始める方法についてのガイドです。
- アイデア選定
- 自分が興味のあるテーマを選択
- 日常生活の不便な点からアイデアを見つける
- すでに存在するサービスを改善する
- 目標設定
- プロジェクト範囲を小さく始めて徐々に拡張
- MVP(Minimum Viable Product)方式を推奨
- 必ず完成できる目標を設定
- 技術スタック決定
- 本業で扱えなかった技術を試す
- 本業で使う技術が熟練していないなら、同じ技術スタックを使用して能力を強化
- 個人技術スタック強化を考慮
- 開発進行
- GitHub、GitLabなどを活用したコード管理
- CI/CD適用でデプロイ自動化練習
- テストコード作成を習慣化
- ブログなどの作成を通じたドキュメント化練習
- 共有および拡張
- ブログ、SNS、オープンソース貢献を通じてフィードバックを受ける
- 必要ならチームメンバーを募集して協業進行
- ベータテストを通じてユーザーフィードバックを反映
- 広告やプレミアムモデルを通じた収益化を検討
サイドプロジェクトは自分に必要なものを作ってデプロイし、維持することが重要です。そして固定費用を最小化して継続的に維持できるようにしなければなりません。そうすれば少なくとも自分の生活に役立ち、継続的に維持しながらポートフォリオとして活用できます。また、サービスを運営しながらでしか学べない経験も積むことができます。
毎回サイドプロジェクトを最後まで進められていないなら、最小限の金額(サーバー/ドメイン費用、アプリ開発者登録費など)を先に投資するのも良い方法です。小さな金額でも自分が投資した金額があれば、もったいないと思ってでも最後まで進めるようになります。
継続的に運営しなければポートフォリオに役立たず、運営しながら学べる様々な経験も積めません。したがって、運営費用を最小化して継続的に運営できるようにすることが重要です。また、Google Analytics、Adsense、Google Search Consoleなどを活用してユーザーが増えるのを見ることも、サイドプロジェクトを継続的に運営する大きなモチベーションになります。
サイドプロジェクトを始めると自分のアイデアをサービス化すること、収益化することに目標を置く場合が多いです。もちろん、開発を超えてより大きな視野を持たせてくれるとても良い姿勢ですが、私たちがサイドプロジェクトをする最も根本的な理由は技術力強化にあることを忘れてはいけません。したがって、会社で使う技術を使うか、会社で使わない技術を使って自分の技術を発展させる部分が含まれるようにしなければなりません。
サイドプロジェクトの短所
サイドプロジェクトは多くの長所を持っていますが、それだけ短所も多く存在します。以下はサイドプロジェクトを進めながらぶつかる一般的な短所と解決策についてのガイドです。
時間とエネルギーの消耗
本業と並行しなければならないのでスケジュール管理が難しく、仕事を2回するのと同じなので多くのエネルギーを消費します。
- 職場、学業、個人生活と一緒にしていると疲労が蓄積する
- プロジェクトが予想より長くかかる可能性が高い
- 継続的なモチベーションが必要
小さな目標から始め(MVP方式)、一定の時間ブロック割り当て(例:週末2時間、平日30分)を通じて時間とエネルギー消耗を管理できます。
サイドプロジェクト遂行が本業に影響を与えないように時間とエネルギー管理をしっかりしなければなりません。
モチベーション維持
サイドプロジェクトは初期は楽しいですが、時間が経つにつれて興味を失うことがあります。
- 機能追加、バグ修正など繰り返し作業が退屈に感じることがある
- フィードバックを受ける機会が少ないと途中で諦める可能性が高くなる
サイドプロジェクトを公開的に進め(ブログ、SNS、オープンソース共有)、フィードバックを受けたり、小さな達成感を感じられるように目標を小さく分けて設定することで継続的にモチベーションを与えなければなりません。
収益創出が簡単ではない
ほとんどのサイドプロジェクトは収益化につながりません。
- ユーザーが多くてもビジネスモデルがなければ維持が難しい
- 運営費、サーバー費用などがかかり負担が大きくなることがある
最初から収益化を目標にするよりは有用な製品を作ること、自分の開発力を向上させることに集中し、ユーザーが多くなった後に広告、プレミアムモデルなどで収益化を検討するのが良いです。
技術的負債と保守問題
サイドプロジェクトは新しい技術を学ぼうという目的が強いため、長期的な保守が難しくなることがあります。
- 最初は速く開発しますが、構造が複雑になると保守が難しくなる
- 時間が経つにつれてコードが古くなったり、ライブラリがサポートされなくなることもある
一人で開発しますが、アーキテクチャ、設計も一緒に進めたり、きれいなコードとドキュメント化に気を使えば、後の保守に大きな助けになります。また、あまりにも最新技術だけにこだわらず、長期的に保守可能な技術スタックを選択することも一つの方法で、このような技術選択は後の会社業務にも役立つことがあります。
一人でやると限界がある
すべてを一人でやらなければならないので速度が遅くなることがあります。最初からこれを認識することが良いです。
- デザイン、開発、マーケティングなどすべての役割を担わなければならないこともある
- 協業なしに一人で進めると客観的なフィードバックを受けにくい
開発しているコードをオープンソースで公開したり、コミュニティを通じて公開的かつ継続的にフィードバックを受けたり、サイドプロジェクトを一緒にする同僚や知人を見つけて一緒に進めることができます。または一人で速く進められる小さな目標から始めるのも良い方法です。
失敗する可能性が高い
ほとんどのサイドプロジェクトはユーザーなしに終わります。
- ユーザー流入がないか、反応がなくて途中で諦める場合が多い
- 完成しても維持するモチベーションがなくなることがある
最初から大規模プロジェクトを目標にせず、小さな成功を経験することに目標を置くのが良いです。また、失敗しても学んだ点を記録し、次のプロジェクトまたは会社業務に活用するのも良い方法です。
サイドプロジェクトが自分のための製品を作るなら、少なくとも1人のユーザーを確保でき、自分の生活に便利さを提供できます。また、運営費を最小限にすれば、ポートフォリオとして継続活用できるので、失敗しても資産として残すことができます。
成功するサイドプロジェクトのためのヒント
成功するサイドプロジェクトのためのいくつかのヒントを紹介します。
- 目標設定
- 自分に必要な製品を作ってみてください。
- 使ったことのない技術を使える製品を作ってみてください。
- 自分が使っている技術をより深く理解できる製品を作ってみてください。
- プロジェクトおよびスケジュール管理
- 目標を小さく分けて設定してください。
- スケジュールを柔軟に管理してください。
- モチベーション維持
- 自分だけの楽しい要素を追加してみてください。
- コミュニティやブログ、知人に進捗状況を共有してみてください。
- シンプルに始める
- 完璧な製品を目標にしないでください。
- まず一つの機能が動作する製品を作ってください。
- 今すぐ始めてください。
- 一定のルーティン維持
- 定期的に実行できる時間を確保してください。
- 週末、通勤時間など自分だけのルーティンを作ってみてください。
- 失敗を恐れない
- ほとんどのサイドプロジェクトはユーザーが一人もいません。
- サイドプロジェクトは失敗しても学びが残ります。
- 自分だけの製品を最初から最後まで作ってみるだけでもとても大きな成果です。
私がサイドプロジェクトを進めながら経験したことや学んだ点が気になる方は、私のサイドプロジェクトストーリーを参考にしてください。
おすすめの本
皆さんはすでにサイドプロジェクトを進めるための十分な開発能力があります。したがって、開発能力だけでなく、プロジェクトを成功的に遂行できる視野と能力を育ててみてください。
- リーン・スタートアップ(エリック・リース)
- スタートアップ・マニュアル(スティーブ・ブランク)
- アイデアの不敗の法則(アルベルト・サヴォイア)
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Dekuが開発したアプリを使ってみてください。Dekuが開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。






