個人で(≒会社とは別に)サービスやOSS開発することは、会社で身につけられる以上のスキル、実績が得られたり、コミュニティを広げたりするなどメリットが多くあります。
自分自身もこれまでいくつかサービスやOSSを開発してきたのですが、一番課題なのが、モチベーションの継続です。最初はテンション高く開発しますが、段々とやる気が下がってきます。一旦リリースした後のメンテも面倒です。そうしていくつかのサービスをクローズしてきました(涙)。
けど、これってとてももったいないです。そこで意識して改善した結果、TwitCalというカレンダーアプリを開発期間も含めると1年間以上継続してメンテ、機能追加を続けられました。今回は自分がどうやって取り組んできたかを整理してみたいです。
※ 飽きっぽい性格だったりなかなかサービスを継続メンテできない方向けです。たった1年?何言っているの?という方はそっ閉じしてやってください。
自分のモチベーションの軸を明確にする
個人開発ではとにかく何がテンション上がるのか?を常に意識することが大事だと思いました。 自分の場合、よく掘り下げてみると、以下の2点が気持ちを盛り上げるので、アップデートにはその要素を必ず入れるようにしました。
1. 自分が使っていて欲しい機能を作る
TwitCalを例にあげると、当初はカレンダー上に自分のツイートを表示するだけでした。けど、触っているうちに"数ヶ月前のツイートを振り返りたいな"とか"Likeしたツイートも見たいな"とか考えるようになり、そういう機能を作るのがとても楽しいことに気付きました。
2. 技術的チャレンジがある
自分は最新の技術や本などで学んだフレームワークを使ってみるのが好きです。サンプルアプリを作ってみることもしばしばやるのですが、せっかくプロダクトがあるのだからアップデートする時に入れ込んでみたらいいやんと考えるようになりました。
まずは開発する前に、何が自分をドリブンするのかをよく考えてみるべきです。個人が集まってチームで開発する場合も、モチベーションの置き所についてはしっかり話しあった方がサービスは続くかと思います。
開発中はとにかく開発にフォーカス出来るようにする
会社の枠組みにとらわれず開発していると、制約がない分、ちょっとしたことでその他の誘惑に負けそうになります。開発すると決めた時間は開発に集中するために、自分は以下のように環境を整えています:
- Slack, Facebook,Gmailなど通知が来るものは閉じる
Twitterは技術メモがてら使うこともあるので、開いてる時もあります。(後述) - 音楽を聴く
カフェで周りの雑音にとらわれないように。ジャズよいです。 - 開発以外のことはシンプルに
タスクリストはEvernoteにベタ書きするだけ、管理ツールは使わないです。開発フローも最低限git flowを守るくらいで、PRもなにも書いたりしません。
"開発"から"作業"になったものは細分化する
自分の場合は"開発"が"作業"になってしまうと、モチベーションが極端に下がりました。例えば"レイアウトを微修正する"、"色を微調整する"と言った技術的なチャレンジはないけど必要な作業は結構しんどかったです。
その対策として、"作業"になったものはなるべく細かくリスト化しました。こんな感じ↓
これにより、
- 短い時間単位で作業ができる
- その割に見た目で進捗がある
という効果で、モチベーションがあまり下がらないようになりました。
アウトプットを小出しにして開発する
大きな機能を開発している場合、中々進まないこともあって、途中で断念しそうになることが度々ありました。そういう時はそれまでに得た技術的知見をちょっとずつアウトプットしてモチベーションを保ちました。
例えば、開発時にSNS等は閉じているがTwitterは開いていると先述しました。これは色々調査したことを呟いたり、リンクを貼ることで色々なレスポンスが得られるからです。
例えばRealmのアップデートをした時に、うまく動かない部分がありました。以下のように呟いたところ、
realm のバージョンアップした後のアップデートテストで、特にテーブルの更新がないのに RealmMigrationNeededException で起動失敗する... なぜや
— Tomoaki Imai (@tomoaki_imai) 2016年1月24日
Realm公式アカウントからご返事をいただき、無事解決しました。
@tomoaki_imai どのバージョンからの移行でしょうか。0.83より前からアップデートした場合は https://t.co/lef5MUzThB かもしれません
— Realm Japan (@realmJapan) 2016年1月25日
まとめ&ちょっとだけ宣伝
今回は飽きっぽい自分がモチベーション下げないために実践してきたことを書きました。モチベーションを明確化することと、アウトプットを小出しにすることは特に効果が大きかった気がします。で、その成果物として、TwitCalの有料版であるTwitCal Proをリリースしました。
無料版との違いとして、
- 過去にLikeした記事もカレンダーに表示、検索できる
- 広告なし
があげられます。
過去のツイートを掘り返してブログに貼る時も地味に便利だったり、Likeした記事を見たりリンクをシェアできるのは結構便利なので、良かったら使ってみてください!ジュースより安い100円です!よろしくおねがいします!(必死)