個人開発のモチベーションが続かない、作り終わらない。原因と対策を考えてみた。dev.toloading...個人開発のモチベーションが続かない、作り終わらない。原因と対策を考えてみた。さんとチャットしていて、個人サービスを作っていて「モチベーションが続かない」「いつの間にか辛くなってくる」という個人開発あるあるについて話していました。個人開発は「自分の作りたいもの」を「自分の使いたい技術」で「自分の好き」に作れる最高の舞台です。クリエイターならやらない手はないでしょう。何も考えずにいざ足を踏み入れてみると、思ったよりも険しい道だと気づくのです。仕事でもなく「自分が作りたくて作っていた」はずなのに、いつの間にかどこかに逃げ出してしまうモチベーション。何ヶ月経っても作り終わらない現代のサグラダ・ファミリア。仕事がバタついて1週間面倒見ていなかっただけで「え、なにこのクソコード」と毒づいてしまうほど荒れ果てたmasterブランチ。あのころ目指していた「一発当てて平日昼間から温かいこたつでレディボーデンを頬張っている自分の姿」はどこへやら。そんな目も当てられない状況、私にもありました。振り返ってみて「どうしてこうなった。」とならないために、原因と対策を考えてみたのでみなさんのご参考になればと思います。構想がでかすぎて作りきれないまずこれ。「すっげーいいアイディア思いついた!!!」ってテンション上がって「どうせなら高いレンタルサーバー借りよう」とか(そもそも借りるのは公開直前でいい)言い出してて気づいていない落とし穴。スケールがデカイのはいいことですが、本当にそれは自分ひとりで作りきれるサイズ感でしょうか。1ヶ月で作りきれるものにしよう職業プログラマなら、なんとなく自分の工数計算できるはず。1ヶ月空いてる時間すべてつぎ込んでも作れないようなものなら、考え直したほうがいい。削るところは削ってまずはMVPを出す作れる人はいいんだけど、そうじゃない人は1ヶ月で作りきれるMVPをまずは考えてみよう。Twitterみたいなサービスを作るとするなら、ログインもマイページもフォロー機能も一旦置いておいて、投稿画面とその一覧画面だけを作ってどんな感じになるかを見てみよう。ログインして、マイページで自己紹介文を編集して、ユーザー画像を変更できるように画像アップロード機能を作って・・・とかやってるうちに大概モチベーションはどっか行きます。そのサービスで一番コアになる部分を分かるように作りましょ!公開できる部分に切って、そこだけ作ってユーザーテストするそんな感じでMVPが出来たら、知り合いに見せてみましょう。TOPページの説明は無いから自分でざっくり説明してから投稿画面を触ってもらいましょう。hahaha」とか「これってtwitterと何が違うの?」とか言われて落ち込むかもしれません。「あ〜これ、こういう使い方もできるね」「逆ににゃーんしか呟けないようにしたら?」とか意見がもらえるかも。モチベーションが逃げちゃわないように、少しづつでもいいのでそういったプラスな声を聞いて歩みを止めないようにしましょう。作る時間をしっかりとれるように計画しようあとは進めていくウチに中だるみするのを防ぐために「一人開発合宿!」とか叫びながら「ビジネスホテルにPCだけ持って一泊する」みたいなのをやってみてもいいかも。時間を確保しないことには進捗は生まれないので、上司に媚びを売るための会社の忘年会なんか行ってる場合じゃないんですよ!技術的にしんどい次は作ってみたら思ったより難しくって「ProgateとRailsチュートリアルを終わらせた俺に作れないものなど無いはずなのに。」みたいな気持ちが生まれてしまうやつ。ここに書いてあることを頭にいれて、心が折れるのを未然に防ぎましょう。未経験な技術はできるだけ使わない、使っても1つだけにしよう基本的に全部未経験みたいなのでやろうとするのは個人開発アンチパターンです。作りたいものじゃないと作りきれません。ここは的を絞って、ちょっと背伸びすれば作れるレベルのものにして、壮大な構想は後にとっておきましょう。「千里の道も一歩」からです。技術習得と、新規開発はできるだけ分離しようそれでも結局、自分の作れる範囲のものなんて作っても仕方がない・大したものが作れないとなってしまったら、技術習得と、新規開発はできるだけ分離しましょう。これは、「習得をマイルストーンにしてないと、開発していて新しい技術を習得している過程では、開発が全く進んでないように見えて心が病んでしまう」のを未然に防ぐためです。習得していく技術については、別途技術習得チェックリストを作って、開発のtodoと別で積み上がっていくのが見えるようにしておくといいと思います。「技術習得のために作っている」というパターンならあまり心配ないですが。作れなくとも技術を習得できれば目標は達成ですから。perfect.」ってやつですね。動くものを書きましょう。動的な部分も静的なもので一旦作るひとまず後から入るであろう数字とか、まずは決め打ちで書いてしまって後から直しましょう。細部にこだわるより一旦全体を通して使えるものにするのが先です!デザインを別で作ってるなら、その部分はもう画像貼って終わりにして、後からコードにおこすとかもいいですね。iOSだけ対応とかにするレスポンシブ対応とかはまだまだ先でいいですよ。このご時世一旦スマホで見れるものを作ったったらええんや!CSS一切書かないでコアな部分だけ先に作る「CSS書くの辛いマン」の人手を上げて〜一旦bootstrapとかCSSフレームワークを突っ込んだだけにしておいて、あとから書きましょ。?外注する絶対作ってやるぞ!って場合にはもう自分が苦手な部分は外注してみましょう。あとは例えばクイズを誰でも作れるサービスみたいな、CGMを作る場合なんかはコンテンツを外注してみて、10問でも人が作ったデータが入ってるとそれっぽい感じになります。作ってる間に似たようなサービスが先に出てきたこれもあるある。個人だろうが仕事だろうがあるんですよね。Webサービスなんてだいたい「掲示板」ですから。カキコしたら一緒ですよ。今日はこれだけ覚えて帰ってください。Webサービスなんていう狭い枠組みで考えてたらそりゃあ被りますよwそれでも全く同じサービスにはならない機能は似ていても、思想まで一致するってことはないんじゃないかと思います。facebookもTwitterも結局なんか書き込んでタイムラインにするだけなのに、いつの間にかこんなに違う。思想が違うと方向性も変わってくるので、しっかり自分の考えを固めて振り返ってみるといいと思います。自分の負担が大きいこれは個人じゃない場合なんですが、人によってモチベーションもかけられる時間もコストもリスクも変わっちゃうんですよね。チームを小さくするまぁ煩わしいなと思ったらさっさと解散しましょう。なんか思いついたときに集まればいいじゃないですか。続けたいメンバーがいたら、そのときにある資産を誰が持ち帰るかだけもめないようにしましょう。作ったけど誰にも使われなくて悲しいこれは今度作りきった後なんだけど、色々頑張って作ったものの使われないのは悲しい。一つのものを作り切るってすごいことですから、思い入れがあるなら今までの努力を無駄にしないようにもうちょっとだけ頑張ってみましょうよ。自分でとにかく使うまずは「自分が欲しくて作った」んじゃないですかね?使ってみて、少しでもいいところがあったらまた友達に見せてみたりしてもいいですし、色々使ってみてると「あ、こんな使いかたできるかも」とか「横展開してこういうのできそう」とか思いついたりもします。あのtwitterトレンドにぽこぽこ出てくるアプリ☆メーカーも、最初は流行るまで何ヶ月もひたすら自分たちでコンテンツを作り続けたらしいですよ。自分が欲しい部分をとにかく作る使いまくっていると今度は「コレも欲しい」「あれも欲しい」となってくるはず。自分がファーストユーザーになれないサービスなんて作っても全然面白くないですから、自分のための機能どんどん作っちゃいましょうw最悪自分のための最高のサービスになってもいいじゃないですか。他の開発者と交流する(11/25追記)Twitterでwebサービスを作ろうとしている人と交流するってのもいいかもしれません。駆け出しエンジニアと繋がりたい人たくさんいますし、同じようにwebサービス作りたい方を探してお互いに意見出し合うとかもいいですね。冒頭で出てきた運営者ギルドは個人レベルでwebサービスを作っている、作ろうとしている人達のコミュニティなのでそこで他の個人サービス運営はどうやってるのかなーとのぞいてみたり、意見をもらってもいいかもしれません。有料ですが入江開発室というのもそんな感じのコミュニティみたいです。まとめこんな感じで私の考える、個人サービスのモチベーション問題を未然に防ぐ・発生してもどうにかするための方法を書いてみました。個人で作れるものの範囲が年々大きくなっていくWeb業界ですが、華々しくデビューを飾るサービスの裏にはたくさんの折れた心達があります。