最近、技術のキャッチアップやスキルアップの一環として、個人開発を「仕事の素振り」と捉える向きが増えているように感じます。 新しい技術をいち早く触り、それを実戦(業務)で使えるように備えておく。一見すると非常にストイックで素晴らしい姿勢に思えます。
しかし、最近の自分を振り返ってみると、この「素振り」という考え方に、どこか拭いきれない違和感を抱くようになりました。 結論から言えば、仕事のパフォーマンスを上げるために個人開発をする、というアプローチは、時に自分自身を苦しめる結果になるのではないかと感じています。
業務アプリケーションと個人開発の「規模」の決定的な違い
まず考えなければならないのは、業務で扱うアプリケーションと、個人で作成するプロダクトの間にある、圧倒的な「規模」の差です。
業務での開発は、膨大なデータ量、高いトラフィック、そして何より多くのステークホルダーの存在を前提としています。そのため、複雑なアーキテクチャや大規模向けのフレームワークが必要とされるわけです。
一方で、個人開発はどうでしょうか。 基本的には自分(あるいは身近な数人)が使うだけの、非常にクローズドな世界です。この規模の決定的な違いを無視して、「仕事で使うから」という理由だけで重厚な道具を持ち込むと、本来得られるはずの知見がぼやけてしまうように思います。
「仕事の素振り」が奪う、個人開発の合理性
「仕事の素振り」を意識しすぎると、つい個人開発には不釣り合いな選択をしてしまいがちです。
例えば、ORM(Object-Relational Mapping)の利用について。 業務のような大規模開発であれば、型安全性やメンテナンス性の観点からORMの導入は必須に近いかもしれません。しかし、JavaScriptなどを用いた小規模な個人開発であれば、生のSQLにバインドを利用する方が、設定も楽で直感的、かつ十分に効率的なケースも多いはずです。
インフラ構成も同様です。 「仕事で使うから」と、わざわざEC2を立てて環境を構築するのは、個人開発の規模感ではオーバースペックになりがちです。今ならCloudflareやNetlify、Vercelといったエッジ環境で動かすほうが、スペック的にも十分ですし、何よりデプロイの手軽さが段違いです。
こうした「個人開発だからこそ選べる合理的な選択肢」を、素振りのために捨ててしまうのは、非常にもったいないことではないかと感じました。
歪んでしまう審美眼と失われる楽しさ
無理に大規模向けのツールを持ち込むと、本来の開発目的よりも「ツールの制約」や「設定の煩雑さ」といったデメリットばかりが目に付くようになります。
「この技術、個人開発で使ってみたけど全然良くなかったな」 という感想を抱いたとき、それは本当にその技術のせいなのでしょうか。 単に「規模が合っていなかっただけ」なのに、ネガティブなバイアスがかかってしまい、結果として正しい審美眼を曇らせてしまう。これこそが「仕事の素振り」がもたらす副作用ではないかというわけです。
そして、本来の「作る楽しさ」が、素振りのための「義務感」に塗り替えられてしまう。これでは、メリットを享受する前に心が折れてしまいます。
個人開発だからこそ「加速」のために試したいこと
ただ、すべての「仕事の要素」を排除すべきだとは思いません。 開発を重くするのではなく、むしろ「加速」させてくれるような要素であれば、積極的に取り入れていくべきでしょう。
- コードベースのテスト(Unit/E2Eなど)の整備
- 規模が小さいからこそ、テストが書きやすく開発も回しやすい
- CI/CDの構築
- エッジ環境などを活用し、プッシュするだけで自動で世界に公開される体験は、開発の大きな推進力になります。
- 一度作ってしまえばコピペでわりと済むのでコスパも良い
- SaaS等のAPI連携
- 既存の強力なサービスを組み合わせて、自分が見たいアウトプットに最短距離でたどり着く
これらは、個人開発の規模感でも十分に恩恵を感じられる「良い素振り」ではないかと感じました。
おわりに
「仕事でも使えるかもしれないから」というモチベーション自体は、とても素晴らしいものだと思います。 ただ、一つのプロダクトで試す「仕事の要素」の量は、意識的に制限するのが良いのではないでしょうか。
すべての構成を無理に業務に近づける必要はありません。 基本は今の自分にとって必要十分な、スピード感のある設計をベースにする。その上で、数カ所だけの「遊び」として業務要素を混ぜ込んでいく。そのくらいのバランスの方が、開発スピードを落とさず、かつ楽しみながら新しい知見を得られるのではないかと思うのです。
個人開発は、もっとわがままに、自由に楽しんでいい場所です。 たまには「素振り」を休んで、ただバットを振る楽しさを思い出してみたい。 最近はそんなふうに考えています。