🏰

根性なしでも大丈夫。孤独な長期戦「個人開発」のモチベーションを3本の柱【動機付け/タイムオフ/タスク管理】で支えよう

2024/09/13に公開

はじめに

この記事について

こんにちは、 @zomysan です。フロントエンドエンジニアとしてソーシャルPLUSでチーム開発をしていますが、趣味の開発にも取り組んでいます。最近はUnityによるゲームアプリ開発に入門しているところです。

個人開発はたいていの場合仕事と違って、やっていないからといって誰かに怒られたりもしません。かけられる時間は少なく、作業は長い期間におよび、しかも自分のモチベーションが全て。そういう意味ではリリースまで持っていくのは並大抵の精神力ではできないことのように思えます。

ですが大丈夫です。私は自他共に認める根性なしですが、これまで個人開発でサービスやアプリケーションを複数リリースして運営してきました。今回の記事では、なぜそれができたのかをふりかえってまとめてみました。個人開発に挑戦するきっかけになれば嬉しいです。

想定読者

  • 個人でサービスやアプリを作ってみたい人
  • 個人開発をやってみたいが、続けられる気がしない人、
  • 個人開発が頓挫している人

例えば、週末にちょっとしたゲームを作ってみたいと思っている人、仕事が忙しくて個人開発に取り組む時間が取れないと感じている人、これまで何度か個人開発に挑戦したが途中で挫折してしまった人などが対象です。

サービスの紹介

個人開発者を名乗るにあたって、作ったものについての紹介をしておきます。リリースした中でいちばん広く使われているサービス「shovel」は、Discord で動く読み上げBotです。

https://twitter.com/shovel_discord/status/1151919354214137856

shovel は2019年にリリースされ、今年で運営は6年目に入りました。夜間のピークタイムでは利用コミュニティ数は1万件以上になるなど、Discordの読み上げBotとしては大きな規模のサービスです。

こうやって数字だけ見てみると大変意志の強い人が颯爽と作ったサービスのように見えてきますが、全然そんなことはありません。私がやりきれた(そして継続している)のは、3つの柱でモチベーションを支えてきたからこそだと思います。

最後までやりきるための3本の柱

それでは本題に入っていきましょう。私がおすすめしたいのは、「2つの動機づけ、タイムオフ、小さなゴール」という3本の柱です。

それぞれについて説明していきます。「自分には個人開発なんて無理」と思っている方の気持ちがちょっとでも軽くなれば嬉しいです。

2つの動機づけ

個人的にこれが一番大事だと思っています。個人開発を進めるために、2つの動機をもつことをおすすめします。

内発的動機付けと外発的動機付け

1つ目は「自分の成長のため」「開発が楽しいから」というような、自分の成長や楽しみに注目した動機をもつこと。こちらはいわゆる「内発的動機付け」というものです。こちらはわかりやすいですね。

2つ目は「就職のため」「頑張って作ってすごいと褒められたい」といった、世間一般の価値や他者からの評価に注目した動機をもつことです。こちらは「外発的動機付け」です。悪く言えば「見栄」と表現できる類の気持ちですが、立派なモチベーションの1つです。

なぜ両方の動機が必要なのか?

「楽しいからやる・やりたいからやる=内発的動機付け」だけでは、困難にでくわしたり、他に魅力的なことが現れるなどして、やりたくなくなってしまったときに動けません。

いっぽうで「褒められたい・目立ちたい・良い仕事に就きたい=外発的動機付け」だけでは、思う評価が得られなかったり、成果が出ないときにモチベーションが失われてしまいます。

2つの動機を持ち、自分の状況に応じて意識する動機を切り替えることをおすすめします。

私自身も2つの体験でサービスをリリースまで持っていった

あとからふりかえってみると、私自身「shovel」をリリースまで持っていけたのは2つの動機を意識したおかげでしょう。うまく利用者が増えなかったり、思ったように評価してもらえず残念な気持ちになったときには、「誰がどう思おうと、自分がやりたいから、自分の勉強になるからやっているんだ」と内発的動機付けに意識を向けました。

いっぽうで、大きな開発を始めるときや難しい問題にあたったときは「この経験を活かして転職に繋げるぞ」「これが解決したら本を書いて自分の経験を知ってもらおう」と、外発的動機付けを意識してやる気を高めて問題に向き合いました。

ちなみに、無事転職を果たしてソーシャルPLUSに入社しました👍

タイムオフでリフレッシュする

タイムオフの定義

「タイムオフ」という耳慣れない言葉を使うのにはわけがあります。「休む」と言い換えることもできるんですが、タイムオフはただの休息とは違うものだからです。やりたいことができるようしっかりと自分の心に耳を傾け、能動的にリフレッシュに取り組むのがタイムオフです。

寝転んでSNSを見ることや、なんとなくゲームをしてしまうのはタイムオフではありません。行きたかったところに行ったり、気になっていた作業を片づけたり、人と会ったり、運動したり、なにをすればタイムオフということはなく、本当にひとそれぞれです。

たとえば「業務中も自分の時間も開発しててつらくないの?」と聞かれることがありますが、私にとっては業務に対しては個人開発がタイムオフになっているようです。毎朝元気に仕事にとりかかれています。業務でたくさんのエンジニアと活発にコミュニケーションしながら働くことはとても楽しいので、もしかしたら個人開発と業務はお互いにリフレッシュの場になっているのかもしれません。

割合を決めてタイムオフをとろう

個人開発をしていると時間がないのでついつい焦ってしまい、休むことを後回しにしがちです。ですが、開発を進める時間をとるなら、それと同じくらいタイムオフの時間をとるのが個人的にはちょうどいいです。2時間開発したら2時間スプラトゥーンをしてもいい計算です。ただでさえ個人開発は時間がないのになんてことを言うのかと思われるかもしれませんが、それでも休むことや遊ぶことは強くおすすめします。

後述する書籍で、仕事や作業に取り組むのが息を吐くようなことだとすれば、タイムオフは息を吸いこむことだと表現されていました。わたしの実感としても全くそのとおりです。息を吐き続けることはできません。

休むことに罪悪感を持っていた話

ここで私のエピソードを紹介します。大きな機能のリリースまでに乗り越えないといけない障壁が多くやってもやっても終わらないと言う時期がありました。そんな状態が続くと、遊ぶこと・休むことやそのリリースに関係のない開発に時間を使うことが悪いことのように感じてしまいます。気が重いけどやらないといけないからと机に向かいますがなかなか進みません。

そんな状態が続いた中たまたま手に取った書籍(TIME OFF 働き方に“生産性”と“創造性”を取り戻す戦略的休息術)に刺激を受け、「開発するのと同じ時間だけ、好きなことをする」というルールを導入してみました。遊ぶときに「これは開発のために必要なのだ」と信じ込むことで心置きなく遊んだり、全然関係ない技術を勉強したり、久しぶりに大変楽しい気持ちで過ごしたことを覚えています。

そうすると、残りの半分で開発に新鮮に向き合えるようになりました。これまで腰が重かった複雑な設計に取り組んだり、大きなゴールへのマイルストーンを整理したりといった、負荷の高い作業に取り組む元気も湧いてきます。滞っていた仕事がどんどん進むようになりました。

自分のために使える時間すべて開発にあてていたときと比べて開発にかける時間は半分になっているのに、進み具合は変わらないどころか2倍以上のスピードになっていました。自分で言っていてウソっぽいんですが、これが本当なんです。

いまでも開発に滞りを感じたら、この 50:50 ルールを発動させています。たまに勢い余って休憩や遊びが100になってしまうこともありますが、いい気分転換になった!と前向きに受け止めるようにしています。

タスクを細分化して小さなゴールを作る

個人開発は長距離走。自分でコースを分割しよう

大きなプロジェクトにひたすら取り組んでいると、進んでいるのか進んでいないのかわからない状態になります。たとえば、長距離走をしているときに地図を見ることも時間を計ることも許されない中で走り続けるのはキツいに決まっていますが、個人開発だとそのようなことをやってしまいがちです。

重要なのは、小さなゴールを設定することです。最終的な大きなゴールに向けて走るだけでは自分の現在位置がわからず、思ったように進んでいるのかもわかりません。開発においては、タスクを細分化することが小さなゴールの設定にあたります。

どれくらい細かく分ければいいか

最後の最後まで細かいタスクへと粉砕する必要はありません。直近で取り組む予定のタスクについてだけ、自分が持ちやすいサイズ(私は1〜2日で終わるくらいがちょうど良いサイズですが、人それぞれでOKです)に分解します。遠い未来にやりたいことはあいまいなままでよいでしょう。

具体的なゴール管理方法の紹介

私は「shovel」の定期課金機能を実装するにあたって、Issue + GitHub Project という構成で小さなゴールの管理をしていました。以下は実際の GitHub Project のスクリーンショットです。

Backlog」にはやりたいことがサイズ問わずごろごろと入っています。あれもこれもやりたい、と思いつくので、すべてここに吐き出します。こうすることで、アイデアで頭がいっぱいになるのを防ぎます。

その中から直近取り組むつもりのものを選び、「TODO」のレーンに入れます。このとき、先ほど紹介したように1〜2日程度の小さなタスクに分割し、達成感が味わえるようにします。見積もりに対する進捗もわかりやすくなります。

そして、今取り組んでいるものは「In Progress」のレーンに置きます。「In Progress」に置くタスクを1つに制限することで、集中して終わらせることを大切にしています。

Done」は終わったタスクを置くレーンで、機能としては不要なんですが、ときどき見返し、自分は頑張ってきたぞという気持ちになるために残しています😁

おわりに

個人開発を続けるための3本の柱についてお話ししました。これまでZennではTech寄りの記事をメインで書いてきましたが、自分の経験や考えが誰かの背中を押せたらいいなと思ってこの記事を書いてみることにしました。少しでも「自分にもできるかも」という気持ちを持ってもらえたらとても嬉しいです。ツッコミや疑問点がありましたら、ぜひコメントや X(Twitter) などでお寄せください。

個人開発についての記事はもう1本執筆中ですので、そのうち投稿します。読んでいただきありがとうございました。

おまけ: おすすめの本

前回のテストについての記事を書いたとき、おすすめの本を書いてあったのがよかったというフィードバックをいただいたので、今回も参考になった本について紹介しておきます。

やってのける~意志力を使わずに自分を動かす~

なにかを成し遂げることについてはこの本が私の助けになってくれました。まずタイトルに「意志力を使わずに」と入っているのが好きです。成し遂げるということになるとだいたいが「意志の力」「やる気」という方向に行きがちですが、こちらの本はそうではなく、うまいこと自分を動かすための方法について科学的根拠とともに紹介しています。

やってのける

TIME OFF 働き方に“生産性”と“創造性”を取り戻す戦略的休息術

タイムオフについてはこの記事でも触れましたが、興味が湧いた方はこの書籍を読んでみてください。とくに休むことが下手だという自覚がある人、休んでいるときにそわそわする人、休んでいると罪悪感が湧いてくる人などにはぜひとも読んでほしいです(どれも過去の私です)。

タイムオフ

SocialPLUS Tech Blog

Discussion