GW の 3 日間を創作合宿にした僕が個人開発を一歩進めた記録
連休を成果ではなく前進で測る
「今年の GW は個人開発を進める」
そう決めたのは、連休の前週でした。
抱えているプロジェクトは 2 つ。
趣味の釣りをもとにした釣果記録アプリと、フリーランス 15 年の GTD × PDCA を体現する Todo アプリ。
どちらも「いつか本腰を入れて作る」と言いながら、何ヶ月も温め続けていたプロジェクトです。
連休前夜、カレンダーを開いて 3 日間に「創作合宿」と書きました。
作業日でも仕事日でもない。
合宿と名づけた。
——それだけで、なぜか少し気持ちが軽くなりました。
完成を目標にしないという決断
今回の合宿で、最初に決めたことがあります。
📌 3 日で完成させない
という宣言。
変に聞こえるかもしれません。
でも、これが今回の実験の核心でした。
フリーランスになってから、個人開発で何度も同じパターンを繰り返してきました。
「GW で完成させる」と決める。
初日、意気込んでコードを書き始める。
2 日目、思ったより進まない(汗)
3 日目、完成しないまま連休が終わる(泣)
「またダメだった」と自己嫌悪に落ちる。
——このループを、何度繰り返したか分かりません。
完成を目標にする限り、「完成しなかった」が唯一の結果になってしまう。
だから今年は、別の測り方を試してみることにしました。
💭 「前進したか、していないか」
——それだけで十分。
プロダクトが完成しなくてもいい。
仕様が一つ固まれば前進。
技術選定が決まれば前進。
最初の画面に Hello World が表示されれば前進。
成果ではなく前進で測る。
——この発想の転換が、この実験のすべてでした。
【2 つのプロジェクト】 合宿の被験体たち
今回の創作合宿で向き合った 2 つのプロジェクトを簡単に紹介しておきます。
【プロジェクト A】 釣果記録アプリ (仮称: tsurilog)
釣りが趣味の僕が、長年「こんなアプリがあればいいのに」と思い続けてきたものです。
釣果記録アプリ自体は世の中にいくつかありますが、どれも「魚種・サイズ・場所を記録する」という基本機能に留まっていて、僕が本当に欲しい機能がない。
釣りというのは、単に魚を釣る行為ではありません。
天気・潮汐・水温・時間帯・場所・タックル——無数の変数が絡み合って、釣れる・釣れないが決まる。
そのデータを蓄積して、AI が「今週末どこへ行けば釣れそうか」を推薦してくれたら、どれだけ便利か。
🔔 合宿の目標:
要件のみだった仕様を固め、技術選定まで完了させる。
【プロジェクト B】 GTD × PDCA × Freelance Todo アプリ (仮称: flowtask)
フリーランス 15 年の僕が、タスク管理の試行錯誤を重ねてたどり着いた GTD × PDCA のメソッドを、そのままアプリにしたいというプロジェクトです。
既存の Todo アプリに足りないのはフリーランス特有のコンテキスト。
案件・自己投資・発信・休暇——この 4 つを同じ画面で管理しながら、GTD の 5 ステップと PDCA サイクルが UI に直接組み込まれた次世代の自己管理ツールを作りたい。
こちらは要件・仕様はすでに完了している。
🔔 合宿の目標:
実装の優先順位を決め、今週から手を動かせる状態にすること。
【1 日目】 「全部やるぞ」 が午後には崩壊した
合宿 1 日目。
朝 7 時、珈琲を淹れて、Obsidian のデイリーログを開いた。
「今日やること」を書き出す。
釣果アプリの仕様まとめ。
Todo アプリの実装計画。
技術選定のリサーチ。
—— 3 つ並べた瞬間に、なんとなく嫌な予感がしました。
あ、これ多すぎる。
そのとき気づくべきだったんですが、連休初日の「全力でいくぞ」という気持ちが勝ってしまって、そのまま Obsidian を開いたまま固まっていました。
「どっちから始めよう」
この問いが、1 時間近く続きました。
釣果アプリを先に仕様まとめようとすると、Todo アプリの続きが気になる。
Todo アプリを開くと、釣果アプリの AI 機能のアイディアが浮かんでくる。
——脳が並列処理しようとして、完全にフリーズしていたのです。
昼すぎ、気づいたらスマホを見ていました。
「またか」と思いながら、珈琲を一杯淹れ直しました。
これは意志の弱さじゃない。
入口の設計が間違っていたんだと、この時点でようやく気づきました。
⏳ 1 日目の午後の学び:
今日はどっちを何割進めるではなく、今日触るのはどれか一つに決めればよかった。
【2 日目】 一つだけに絞った日
2 日目の朝、Obsidian のデイリーログにこう書きました。
今日は tsurilog の仕様だけ。
flowtask は触らない。
たったこれだけで動き始めました。
釣果記録アプリの仕様を 1 つのノートに書き出していく作業は、不思議と没入できました。
「ありふれた機能はいらない」という出発点から、AI 分析レポート・釣れないパターンの可視化・タックルのタイムライン管理・次に行く場所のレコメンド・感情ログ——アイディアが次々と繋がっていく。
午後、技術スタックを決める段になりました。
Next.js + TypeScript + Supabase + OpenAI API。
天気・潮汐データは Open-Meteo をまず無料で試し、必要になれば有料 API に切り替える。
決まった瞬間、Obsidian に一行書きました。
tsurilog の仕様確定。技術選定完了。作れる状態になった。
これが前進でした。
完成ではない。
コードを一行も書いていない。
でも、確かに前に進んだ。
2 日目の夜、久しぶりに釣りのことを思い出しながら、ゆっくり珈琲を飲みました。
【3 日目】 flowtask の入口を作った日
3 日目は flowtask の番。
こちらは要件・仕様が完了していたので、純粋にどこから実装するかを決める日にしました。
最初から全部の機能を実装しようとすると、また 1 日目と同じパターンになる。
そこで、MVP(最小限動くもの)として何を作るかを整理しました。
📍 最初に作るのは「収集」画面だけ。
GTD の 5 ステップの入口——頭の中を全部書き出す場所。
📍 「処理」「整理」「レビュー」「実行」の画面は後。
まず「収集」が動けば、それだけで既存の Todo アプリとは違う使い方ができる。
📍 PDCA サイクルの週次レビューは最後でいい。
まず日々使えるものを先に。
この整理が終わった瞬間、「今週末からコードが書ける」と確信できました。
GW 前まで、「実装フェーズに入る準備ができていなかった」から手が止まっていただけで、設計が固まると脳が勝手に動き出す感覚がある。
⏳ 3 日目の学び:
全部の設計が終わってから始めるのではなく、最初の 1 画面だけ動かすを決めれば始まる。
合宿と名づけることの効果
この 3 日間を通じて気づいたことを一つ書いておきます。
合宿という名前には、失敗を許す余白がある。
作業日と呼んでいたら、1 日目の午後に固まったとき「また作業できなかった」になっていたはずです。
でも合宿だから、固まること自体も実験の一部になる。
失敗したログも合宿の記録として残せる。
GW 前に「助走週間」と名づけたときと同じ構造です。
フリーランスには、会社員のような合宿研修が自然には存在しない。
上司が設定してくれる集中時間も、会社が用意する研修施設もない。
だからこそ自分で名前をつけることが、制度の代わりになるのだと思います。
「合宿」と書いたカレンダーを見るたびに、脳が「これは特別な時間だ」と認識してモードが切り替わる。
——この小さな儀式が、3 日間を全然違うものにしてくれました。
釣りと開発は似ている
もう一つ、今回の合宿で感じたことを書かせてください。
釣果アプリの仕様を考えながら、釣りと個人開発は構造がよく似ていると思いました。
釣りは、魚が釣れるかどうかは自分でコントロールできない。
潮汐も天気も水温も、自分の意志の外にある変数です。
できることは、変数を観察して、仮説を立てて、ポイントを選んで、キャストするだけ。あとは待つ。
個人開発も同じです。
アプリが当たるかどうかは分からない。
ユーザーに届くかどうかも、最初は何も保証がない。
できることは、設計して、実装して、リリースして、フィードバックを待つだけ。
その待つの間に焦らないことが、釣りも開発も長続きする秘訣だと思っています。
釣りで今日は釣れなかった日のデータも記録しようとしたのは、その発想から来ています。
ゼロの日もデータの一部。
積み重なると釣れない理由が見えてくる。
個人開発の今日は進まなかった日も、同じように記録していきたい——そう思えたのが、今回の合宿の一番大きな収穫でした。
釣果アプリ (tsurilog) の仕様詳細
ここからは、今回の合宿で固めた釣果アプリの仕様をもう少し詳しく共有します。
珍しい機能を作りたいという出発点から生まれたコンセプトを、一つひとつ整理しました。
ここから先は
最後まで読んでいただき、ありがとうございます。もしこの記事が「役に立った」「心に響いた」と感じたら、珈琲一杯分サポートいただけると嬉しいです。あなたの温かい応援を力に、また次の創作活動に励みます。
