趣味のソフトウェア開発を挫折せずに完成まで持っていくコツ
作り始めたら、思ってたよりボリュームが大きくて途中で諦めた…。
趣味で作るソフトウェアは仕事で作るのに比べて自由で楽しいものですが、最後まで完成できずに終わってしまうことも多いものです。
私はこれまでに5つのゲームを個人で開発してリリースしてきました。作ってる途中でめんどくさくなったり、投げ出したくなったこともありましたが、いくつかの工夫をすることで完成まで持ってくことが出来ました。
そんなコツを紹介します。
一人で出来ることは量的・能力的に限られている
仕事でソフトウェアを開発する場合は、チームで仕事をすることがほとんどです。自分以外に数人プログラマーがいますし、プログラマーの他に仕様を考える人やデザイナーもいます。
趣味でやる場合は、一人でそれらすべてを担当することになります。
一人で出来ることは、量的にも能力的にも限られているので、それを補う工夫が必要となります。
既存のプログラムをベースにする
作業量を減らしたり、デザインや仕様を一から作るコストを下げるために既存のプログラムをベースにすると良いでしょう。
以前自分が作ったプログラムを流用
以前に作ったものがあって流用できそうであれば流用します。
流用すると前作った物に似てしまうという欠点がありますが、自分が作った物であれば自分が一番よく知っているので効率よく作業を進められます。
プログラム全体でなくても一部でも流用できるものがないか探してみましょう。
自動生成
Ruby On RailsのScafoldのようにソフトウェアの雛形を自動生成してくれるツールを使えば、定型的な作業コストを大幅に削減できます。
自動生成されたソフトウェアを見て、そのフレームワークの使い方を学ぶこともできて一石二鳥です。
テンプレート
UnityアセットストアのComplete Projectはそれだけでゲームとして完成されていてゲームの土台となります。これをベースにして開発すれば、作業量を大幅に削減できます。
Webアプリを作るのであればTwitter BootstrapのようなCSSフレームワークとそのサンプルページを利用すれば、デザインを考え、実装する手間が大幅に省けます。
機能を最小限にする
一人でできる作業量は限られています。
長期間かければ、作業量は確保できますが、あまりにゴールの遠い開発はモチベーションの維持が難しいので、適切なボリュームに抑えることが重要です。
機能は最小限に絞り込みましょう。
Twitterはブログにある機能の多くを削ったことで新しい価値を生み出しました。機能を絞ることは、作業量を減らすだけでなく、より良いデザインに繋がる可能性があります。
まずは機能を最小限に抑えて、完成まで持っていくことが大切です。
追加したい機能があったら、完成した後、付け足せばいいんです。完成してリリースすれば、ユーザーに使ってもらってフィードバックももらえるので、本当に必要な機能が分かります。
自分一人で考えて必要だと思っていた機能が不要だったということもよくあります。リリースして反応を見ないとわからないことってたくさんあるんです。
趣味の開発では、仕事と違うことが学べる
仕事でソフトウェアを開発する場合、担当が細かく分かれていて、担当した領域を深く掘っていきますが、趣味で開発する場合は全てを自分一人で担当することになるので、学べることが異なります。
どちらかだけやるよりも両方やった方が、バランスの良いエンジニアになれます。
趣味ではじめて、ある程度覚えて、仕事に出来たら毎日が断然楽しくなります。私の場合、趣味でUnityを使ったゲーム開発を初めて、ゲームエンジニアに転職することができました。
趣味でやってたことが仕事にできると、会社に行く感じが全く変わります。「会社行くのめんどくさいなー」って感じじゃなく、今日も興味のある仕事できて嬉しいなと言う気持ちで朝目覚められるんです。
これを読んだあなたもぜひ一歩踏み出してみてください!