個人開発ってスキルアップするにはいいって聞くけど大変そう・・
開発経験が少なくはじめて個人開発をやる場合、どういった感じで何から始めたらいいのかわからない、そう思っている方は多いのではないでしょうか。
ITエンジニアとしてスキルや知識を身に付けるためには、資格試験のようなインプットよりも実務に近いカタチで手を動かした方が効果的である点については別の記事で触れました。
そもそも何のために資格を取ろうとしているのか、あなたは『資格沼』にハマっていませんか?
心当たりがあって気になる方はこちらの記事を参考にしてください。
では、実際にどのようなカタチで手を動かすのが良いのでしょうか。
そのひとつの方法としておすすめしたいものに、個人開発があります。
この記事では、ITエンジニアが個人開発をする際のポイントやそのメリット・デメリットなどについて僕の体験も交えながら解説します。
ぜひ個人開発をする際の参考にしてくださいね。
開発経験のない40代ITエンジニアの戦い方(キャリア形成のやり方)について詳しく知りたい方は、こちらの記事をチェックしてください。
また、40代前後になると、技術的なスキル以上にマネジメントを意識したインプットも必要です。
ビジネスで必要とされる基礎知識やその学習方法について詳しく知りたい方はこちらの記事をご覧ください。
ITエンジニアの個人開発とは何か
個人開発とは、自分の興味に基づいて行う開発活動のことです。
会社の業務とは関係なく、個人が自分のプライベートな時間を使ってソフトウェアやアプリケーションを開発することを指します。
おもに開発するものとしては
- スマートフォンアプリ開発
- Webサービス開発
- 自宅サーバ、ネットワーク構築
などが挙げられます。
では、ITエンジニアが個人開発を行う場合、どのような開発プロセスになるのかその一例を見ていきましょう。
どうやって個人開発をするのか
実際に、ITエンジニアが個人開発を進める上でのフローの一例をご紹介します。
個人開発を進める上での開発プロセスの一例
アプリケーションなど作るものの企画・検討など
- 市場調査・競合分析
- ターゲットユーザーの定義
機能要件の定義
- 必須機能(MVP)の整理
- 開発スケジュールの策定
技術選定
- 開発言語・フレームワークの選定
- インフラ環境の検討
- 開発ツールの選定
設計
- 画面設計(ワイヤーフレーム)
- データベース設計
- API設計
- アーキテクチャ設計
コーディング
- 環境構築
- 実装
- バージョン管理
- ドキュメント作成
テスト
- 単体テスト
- 結合テスト
- 性能テスト
デプロイ準備
- インフラ環境の構築
- 本番環境の設定
- セキュリティ対策
公開作業
- アプリストアへの申請(必要な場合)
- サービス公開
サービスの運用
- システム監視
- パフォーマンス管理
- インシデント対応
- バックアップ管理
ユーザーフィードバック収集
- アクセス解析
- ユーザーサポート
改善・アップデート
- バグ修正
- 機能改善
- 新機能追加
- パフォーマンス最適化
体系的に見ると大きな柱としては企画・開発・リリース・運用の4つのフェーズで進行して、STEP4からは1に進んで循環するんだな。
大まかな個人開発のフローがわかったところで、実際にはどんなものを作っていけばいいのでしょうか。
基本的には何を作っても良い
日常的に利用できるサービスなどを作った場合は、そのサービスが安定的に稼働しているかや障害など起きた時に復旧をするための対応なども必要となります。
小規模な組織で一からサービスを立ち上げるような環境にいない場合、上記のような開発プロセスをすべてひとりで担当することはほぼないでしょう。
たとえば、フロントエンドエンジニアの人が個人開発でなんらかのサービスを作る場合
- バックエンドの設計や実装
- またインフラの設計ほか経験したことのないこと
などを一から学びながら実装することになるため非常に大変ではあるのですが、それと同時にさまざまなスキルや知識が身に付きます。
また、昨今だとChatGPTやClaude、GeminiなどのLLMに手順など聞けば詳しく教えてくれるため、LLMをうまく活用することで情報収集の時間を大幅に短縮することができるでしょう。
たとえ個人開発したものがうまく動かなくても、試行錯誤しながら完成までじっくり手を動かすことが大事になります。
業務では経験できない企画・開発・リリース・運用の4つのフェーズをひとりで担当してこなすことで自然とスキルが身に付くんだな。
今はネットにさえつながっていればLLMやYouTube動画などいろんな方法で手順を調べることができるのでありがたいですね。
フローやどういったことをやればいいのかの大枠がわかったところで、次では個人開発をやる上でのポイントについて解説します。
個人開発を有意義に進めるためのポイント
ITエンジニアがソフトウェアの個人開発をする際は、限られたプラベートな時間を削りながら行うものです。
その中での個人開発をより有意義に進めるためには、僕の体験からするといちばんのポイントはリリースの有無ではないでしょうか。
その理由としては、自分が開発したソフトウェアを不特定多数の人たちに使えるようにするか否かによって
- テーマ(企画)
- 技術選定
- 開発
- 課題
などの内容やその優先順位が変わるためです。
たしかに、自分のためだけの開発なのかそれ以外も含まれるかによって内容もそうだし、力を入れる箇所も変わってきそうだな。
このため、個人開発を始める前にまずはリリースするかしないかを決めた方が良いでしょう。
個人開発をするための目的を決める
先述した『リリースをするかしないか問題』を踏まえた上で、個人開発を進める前に目的を決めましょう。
開発をするための目的について
どの目標にするかによって、優先事項や進め方、気をつけるべきことが変わってきますので一緒に見ていきましょう。
リリースがメインの目的
リリースをメインの目的とする場合は、スピード感を意識するようにしましょう。
個人開発は業務ではなくプライベートな時間を削って行うので、本当にとにかく時間が足りません。
その限られた時間の中で
- 課題を見つける
- 仕様を決めていく
- デザインや開発をする
- デバックに対応する
などの対応をバランスよく調整してテキパキと行う必要があります。
そのため、なるべく開発に集中できるよう仕様やデザインなどは極力シンプルなものにしてスピーディーに進めることがポイントです。
作業効率化を図るために使い慣れた技術やツールを使ったりノーコードツールでベースとなるものを作るなど、開発工数をできるだけ削減するようにしましょう。
ただ、リリースする以上は制作物に対して責任が発生するので、バグや脆弱性をそのままにせず対応するなどユーザーファーストを心がけましょう。
また、ほかサービスを利用して作業を進める場合は、規約違反や社会通念上問題とならないことを事前に確認することも大切です。
リリースが目的の場合はスピード感を意識しないといけないんだな。
学習がメインの目的
次にリリースではなく学習がメインの目的の場合は、普段使っていない技術を使ってミニプログラムなどを作ってみるのが良いでしょう。
この際はスピードを気にする必要がないので、自分にとって新しいことを学んだり分からないところを発見したりすることに時間を割くのがおすすめです。
新しいプログラミング言語などを学ぶ
仕様が比較的に簡単なアプリケーションなどを作成する
実用的で煩雑なアプリを作りたい
プロジェクトに参画するのがおすすめ
- プロジェクトでは言語サンプルが揃い仕様も大体決まっているので実装に集中できる
- Xやウェブサイトでいろんなプロジェクトの参画を呼びかけているので確認してみよう!
技術者としても視野を広げたい
解決済みの問題を解いてみる
- 成果物をGitHubで公開したりブログなどに制作過程を残したり共有することで
自信につながったり就職や転職のアピール材料にもなる
学習をメインの目的にする場合は、スピード感を意識する必要がないのでじっくりと学習できるな。これを機にブログを始めてみようかな・・
ITエンジニアが技術ブログを始めるメリットや何を書けばいいのか、具体的な方法について詳しく知りたい方はこちらの記事をご確認ください。
個人開発を進めるには、同じ技術領域の人とつながっているとスムーズに解決できることも多いです。
ITエンジニアが同じ技術領域の人とつながるメリットやその方法についてもっと詳しく知りたい方は、こちらをチェックしてください。
趣味など自由にやりたい
リリースや学習のためではなくただ趣味として自由にやりたい場合は、思う存分好きなようにやってください。
ただその時にも、公序良俗に反さないことや人の迷惑にならないように注意しましょう。
どうせ開発をするなら、誰かを悲しませるのではなく少しでも誰かに喜ばれるものを作りたいものです。まさにエンジニアの原点かと。
個人開発はサクッとリリースした方がいい理由
個人開発をする目的はおのおので決めるでいいとは思うのですが、僕としてはせっかく個人開発をするならばサクッとリリースをした方がいいと思っています。
その理由としては
- リリースが発破をかけてくれる
- 時間が経つとモチベーションが下がる
などがあるからです。
僕もそうですが、自分に自信がない人の場合
ダメ出しされたらどうしよう・・笑われたらどうしよう・・だったら作るだけでいいかも
という気持ちからリリースを躊躇してしまうことがあります(昔はそんな時期がありました)。
しかし、仮に自分が納得いくものができたとしても、世に出さなければ誰にも知ってもらえません。
たとえば転職でも言えることですが、僕という商品をアピールするためにはXやブログで投稿しするなど、まずは表舞台に上がることが必要です。
その表舞台に立つ練習として、リリースという目的の名のもとに自分に発破をかけて開発することは良い経験になると感じています。
そもそも論として、モノ作りをするならやっぱり誰かに認知された上で使ってもらってナンボのところはたしかにあるよなぁ。
また、こちらも僕の経験上、目標達成までに時間が長すぎると確実にモチベーションは下がります。
リリースという目的(ゴール)に向けてあまりに長い時間をかけすぎると、ダラける人は少なくありません。
ゴールまでの期間設定は重要で、実行できるかできないかぐらいのヒリヒリしたラインで設定するのがおすすめです。
個人開発のメリット・デメリット
こちらではITエンジニアが個人開発をするメリット・デメリットについてまとめました。
個人開発をするメリット
技術力の向上
- 実践的なコーディング経験を積める
- OSSやフレームワークなど新しい技術を自由に試せる
- システム設計からデプロイまでの全工程を経験できる
ポートフォリオの作成
- 転職・キャリアアップの際の強みになる
- 技術力を客観的にアピールできる
- 実際の成果物を見せることができる
主体性・マネジメント力の向上
- プロジェクト管理の経験が積める
- 要件定義から運用までを一貫して学べる
- 時間や予算の管理能力が身に付く
収益化の可能性
- 副業として収入を得られる可能性
- 将来の起業に向けた経験になる
- マネタイズの方法を実践的に学べる
モチベーション向上
- 自分のアイデアを形にできる達成感
- 自己表現・創造性を発揮できる
- 業務では触れない技術に挑戦できる
個人開発をするいちばんのメリットは、マーケターやPM、デザイナー、エンジニアとかの仕事をすべてひとりでやる経験ができることかな。
個人開発をするデメリット
時間とエネルギーの負担
- プライベート時間が減少
- 疲労やストレスの蓄積
- サービスによっては休日や夜間の作業が発生
金銭的なリスク
- 開発環境やインフラ費用の負担
- 収益化までの期間が不確実
- 投資に見合うリターンが得られない可能性
技術的な課題
- ひとりですべての技術領域をカバーする必要性
- デバッグやトラブルシューティングの負担
- セキュリティ対策の負担
- 品質管理など
メンテナンスの負担
- 継続的なアップデートの必要性
- ユーザーサポートの対応
- バグ修正や機能改善の要求
- 長期的な保守管理の責任
精神的なプレッシャー
- ユーザーからの評価への不安
- モチベーション維持の難しさ
デメリットとしては、限られた時間の中でいろいろやらないといけないことが多いから優先順位や時間配分を考える必要があることだね。
ひとりだけでかつ、この日までに完成させるというゴール設定がないとモチベーションの維持が難しいでしょうね。
ひとりで個人開発をする時にLLMやYouTube動画などで手順を見ながら進めることはできますが、分からないことがあった場合内容によってはなかなか解決しないことも少なくありません。
そんな時に同じ技術領域の人とつながっていればスムーズに解決できることも多いですし、ともに切磋琢磨してモチベーションの維持にもつながるでしょう。
ITエンジニアが同じ技術領域の人とつながるメリットやその方法についてもっと詳しく知りたい方は、こちらの記事をチェックしてください。
まとめ|個人開発をやると得られるものは大きい
これまで個人開発とは何なのかや有意義に進めるためのポイント、サクッと進めた方がいい理由、個人開発のメリット・デメリットなどについて解説しました。
実のところ僕は、個人開発については一度挑戦しようとしてすぐに挫折したクチです。
ちなみに、僕のまわりで個人開発経験のあるエンジニアは例外なく優秀は人ばかりですね。
自分でひとりマーケターからPMやデザイナー、エンジニアなど何役もできちゃうんだからそりゃみんな優秀なのは納得だよな。
また、転職活動などで個人開発経験があると
- 個人開発をしていることが技術力の高さの証明になる
- 自身で積極的にスキルアップをするモチベーションの高さ
- エンジニアリングを純粋に好きであること
など、かなり評価される傾向にあります。
しかし、個人開発にはかなり時間がかかりますし労力も必要なため、働いている環境によってはそこまで大きいことをするのは容易ではありません。
ですので、自分ができることから少しずつやっていくのが良いでしょう。
開発経験のない40代ITエンジニアがどうキャリアを積んで戦っていくのか詳しく知りたい方は、こちらの記事をご確認ください。
また、40代前後になると、技術的なスキル以上にマネジメントを意識したインプットも必要になってきます。
ビジネスで必要とされる基本知識やその学習方法について詳しく知りたい方はこちらの記事をご覧ください。