(この記事のほとんどは、私が温かみのある手作業で書いています。)
大AI時代、何番煎じだと思われる記事を恥ずかしげもなく投稿します。
世の中のすべてのPMと共感したい。IT開発が変わっていく瞬間に立ち会えている喜びを。
この記事でわかること
- PMが、AI に実装を任せつつアプリを出すときの前後の仕事
- カスタマージャーニーからコア / やらないことを決めること(自分がユーザーだと一番楽よ)
- あとはもうポエムみたいなAI利用してアプリつくったよ話
最初に書いておくと、ここでのPMはプロジェクトマネージャーでもプロダクトマネージャーでもどっちでも良いです。
その違いを議論している暇があったら、個人アプリを一人で作って公開したほうがはるかに生産性が高いです。
対象読者(AI 上級者向けではありません)
プロンプトの競技会でも、モデルの比較表でも、エージェント基盤の設計でもないです。そういうのが欲しい人は、Qiita にすでに強い文章がたくさんありますし、なんならAIに聞いた方が早いです。
想定しているのは、
- AI系ツール(Gemini、ChatGPT、Claude、Cursor など)は普段触っている
- Agent に「これ作って」と言ったこともある
- PjM や PdM として、開発の前後は見ている
- ただ、自分でアプリを作ると胸を張って言える経験がない
そのくらいの、初級から中級です。自分もそのあたりにいました。(というか、まだそのあたりです)
上級者の方が読んでもたぶん怒られない程度のことは書いてありますが、新しい技は出てきません。出てくるのは、ジャーニーとコアと、やらないことと、動いた画面を自分で開く、くらいです。地味です。ただこの地味なところが、一番大事です。
前振りがだいぶ長くなってしまいましたが、まずは何を作ったかを見てください。なんとパチンコ・パチスロの収支管理ツールです。
↑のLPを見てもらえればわかるのですが、AIが導くままにあれよあれよといろんな機能を付けてしまいました。
ただの収支管理だけではなく、なぜかリアルタイムでチャットしてツレ打ち実況までできます。
今までのパチンコ・パチスロ体験を一段階上にあげれるツールになった自負があります。
ここで「ギャンブル用のアプリか…」と興味を失いかけているPMのみなさんに問いたい。パチンコ・パチスロ、打ったことありますか?
私も今まで全く興味を持っていなかったのですが、PMとしてあらゆるプロダクトを知っておいて損はない、ということでつい最近触ってみたところ、非常に感銘を受けました。
どう考えても運要素がほとんどの割合を占めるのに、あらゆる演出や、人を引き留めさせる仕様を駆使して1分でも長く座ってもらうための努力が一つの機種に詰まっています。
ただお金を入れて、運が良ければ増える(大抵は消えていく、私だけ?)という構造をここまで複雑にして娯楽に変える努力は、「ただのギャンブルでしょ」という一言で片づけられるものではありません。
企画・制作に携わったすべての人々に感謝を。
この記事はパチンコ・パチスロを推奨する話ではありません。
打つべきだ、とも言いません。
社会的に問題になることが多いことも十分理解しています。
アプリが達成すべきなのは「どんどんやれ」ではなく、自分の成績を見つめることです。カレンダーに残ると、少なくとも自分に嘘をつきにくくなる。 嘘をつきにくくなると、打つ際も雑になりにくい。これをここでは節度と呼びます。
節度を守って、周りの人たちに対して迷惑をかけない範囲で、打つ際の体験を最大化するためのアプリです。
では、どのような流れでこのアプリを作ることになったのか。
少し長くなっていますが、ここから先も語らせてください。
ユーザーは自分 = いつでもインタビューできる最高のお客様
仕事のプロダクトだと、カスタマージャーニーはインタビューと仮説です。
今回は、常に自分という客がいました。
個人開発としてはいちばん安い調査です。
ただし自分だけではなく、一緒に打つ友人にもレビューに付き合ってもらうことができました。
のちに気づくのですが、これが一番の個人開発の支えになりました。
話はそれますが、この友人は私と背中合わせで打っている最中に、私の台の音の違和感を感じ取って、実際に打っている私よりも先に「それAT確定しているね」とアドバイスをくれました。
めちゃくちゃうるさいホールの中でこれができるのは、もはや令和の聖徳太子と言っても過言ではないでしょう。
ただ、その場ではめちゃくちゃ感動した記憶も、翌日には何も残っていない。
LINEでのスクショはトークの海に沈む。
わざわざ友人と遊びにいくのを Google カレンダーに記録もしない。楽しかった日が、形を持たない。
一般的に友人と打ちに行くときのジャーニーを書き起こすと、だいたいこうなりました。
行く前は、新台をチラ見するくらいで、特に課題はない。
抽選アプリの運の悪さは改善しようがない。
なんだかんだ狙いの台が取れなくても、友人と一緒に笑いながら適当に打つのも悪くはない。
退店後に友人と今日の出来事を話しながら、覚えている限りで話すが、全部が覚えられないのでどうしても断片的になってしまう。
時には前回の話にもさかのぼるが、その時の写真やLINEを探すのも一苦労。
そして翌日以降に、思い出の一日として確認したい。
思い出したくない時もあるが、それも含めて自分の成績を見つめられないといよいよ、ただ感覚だけで打ちに通うことになる。
これが自分は怖かった。
仕事ならここでステークホルダーに「最も解決したい課題はどれですか」と聞くでしょう。
優先順位は?と。
今回は自分がお客様なので、聞ける相手が自分です。
ここで自分なりにつけた優先順位は、
- 収支が付けられる
- 友達と思い出が共有できる
- 自分の思い出帳にもできる
となりました。
雑に Agent に「パチの収支アプリを作って」と言うと、だいたい全部盛りが返ってきます。
カウンター、期待値、店舗データベース、SNS、清算、フィード。
調べるのは速いが、だれがどんな機能を欲しがっているかは、AIは input されない限り理解できません。
ジャーニーのどの箱に改善点があるか、これは人間が決める話です。
コアを決める。やらないことも決める
- 退店後に、残ること。 空欄でもいい。残らない記録は、見つめる成績にならない
- 友人との一日を最高の体験にすること。 ツレ打ち / ノリ打ちの「打つ以外の体験」を支える
- ただの1日ではなく、記憶として記録できること。 台が複数でも、写真があっても、カレンダーから戻れる
上記をコアとして、それを補足するようにこのアプリのコンセプトも書きました。キックオフ資料です。Agent は読まないと忘れます。人間も忘れます。
やらないこと(先に書いておいた当時のメモ)
- 1人でも使うことに意味があるプロダクトにする
- メール OTP は持たない。ゲストで試せて、気に入ったら既存の認証に乗っかる(Google)
- ネイティブストアは待たない。Web を中心にする
- 他人の記録を集めてフィードにしない
- LINE の代わりをしない
- カウンターや期待値で、その道のアプリに勝とうとしない
- 清算は、必要な日の拡張。ヒーローにしない
コアを1文にすると、「残って、見つめて、ときどき今を共有する」です。
1文にできないものは、今は作らない。あとで考える。シンプルさをできるだけ保とう。
これが個人開発の秘訣です(知らんけど)
基本の入口はひとりです。
友達機能を使わなくても、記録と集計だけで完結する。
誰かと同じ空気を分けたい日だけ、「みんなで」が乗る。同じアプリで、どちらかに寄せなくていい。
人生もそうでありたい。ジャーニー上、ひとりの日の方が多い。多い方を宿題にすると、プロダクトが迷子になります。
ここまでが、自分の中では開発の前半です。コードはまだ何一つ生成されていません。
ただここまで出来たらこのAI時代、8割終わっているようなものです。
後は全部AIが実装してくれるんで。
と、思っていた時期が私にもありました。
実際には殴り合いのような文章をやり取りしながら、とにかくAIに書かせて検証、AIに書かせて検証を繰り返しました。たぶんこの先、PMよりQAの需要が高まるでしょう。身に染みて、品質保証がどれだけ大事かを理解させられました。
コアが、画面になるまで
令和では、コードを書くのは Agent の仕事です。(諸説あり)
人間は「いかにAIにお願いしてコードを書いてもらうか」に終始する時代です。(これも諸説あり)
ハーネスとか、skillsとか、いろんな用語、いろんな手法があります。ここで私が最も重視したのは、「PDCA」をどれだけすぐに回せるか、です。
PMという職業ですが、かなしいかな、課題があると管理せずにはいられません。
課題を見つけた瞬間に「すぐに直す」「後で直す」「優先度は?」「ユーザー体験への影響は?」というのが瞬時に脳内に駆け巡ります。
自分のアプリに対して課題を見つけた際、「家に帰ってPC開いてもう一度動作の再現してチケット起票して改修してもらってPR上げて…」なんてことになったら、まさに 24/365 のPMの誕生です。
個人アプリ開発で燃え尽きるのは本末転倒なので、「課題」→「解決」というのがどこでもできるように環境を整えました。
ということで、ようやく少し技術的な話ですが、全体の構成図はこうです。
上級者向けの配線図ではありません。PM が頭の中に置く箱の数を、少なくするための図です。
動いているときの箱(Cloudflare)
ブラウザから見えるものは、だいたい三つです。説明のページ、アプリ本体、API。データは API の近くに置いてあります。ログインするときだけ、そのあいだに Google 認証が入ります。
| 箱 | 何をしているか | なぜそうしているか |
|---|---|---|
| LP | 静的な説明ページ。App への入口 | アプリと「何のアプリか」を分ける。シェアしやすい |
| App | Flutter で書いた Web。ホーム画面にも足せる | スマホで入れて、家の PC でも見る。ストア審査を待たない |
| Google 認証 | ログインの本人確認。メール OTP は持たない | 届かない・遅れる・悪用を、自前運用したくなかった |
| API | 同期・フレンド・部屋。ログイン後の入口 | サーバー一台を持ちたくなかった |
| D1 | ログイン後のデータの置き場 | SQLite 系で、Workers から近い。ゲストはここへ送らない(端末だけ) |
同じ Cloudflare アカウントに Pages と Workers と D1 が載るので、個人開発の構成図が少なくて済みます。
もうAI時代の個人アプリ開発はオールインワンの Cloudflare 一強だと言っても良いでしょう。化粧水もクラウドも、オールインワンが一番売れます。
ちなみに Calpachi では push 通知の機能も付けていますが、これも Cloudflare 上ですべて実現しています。
PWA としてホームに install する必要があるとはいえ、Web に push が送れるのもすごいし、それも Cloudflare で出来るのもすごい。本当にオールインワン🐶です。
直すときの箱(Cursor → GitHub → 自動デプロイ)
さっきの「課題を見つけた瞬間に直したい」は、このレールの上です。PCでの Cursor でも、移動中のクラウドの Agent でも、やっていることは同じです。GitHub に載せる。Actions が Cloudflare に出す。自分で開いて確認する。
リポジトリは一つです。アプリも API も LP も、同じモノレポに入っています。Agent に「この画面」と「この API」を別リポジトリで頼むと、AIとはいえ少し混乱しますし、デプロイタイミングも調整が必要になります。個人開発でそんな無駄なことをしている時間はありません。
Agentとの付き合い方
Agent は、調べて、書いて、テストして、画面を足すのが速い。やる気のあるシゴデキ後輩です。しかも寝ない。ただし後輩あるあるで、今が探索なのか仕上げなのか公開してよいのか、全部同時にやりたがる。
「あったら便利」を要件にしてくる。何が作れるかを先に話して、何を成功とするかを後回しにする。"なぜ"欲しいのかわからないまま、機能は増える。
プロダクトのコアが薄れてくる。
……これ、キックオフで見たことありますね。特に複数ステークホルダーがかかわった場合の、意味のない会議、ありますよね?
PjM も PdM も、本当はそこを見る仕事です。Phase、要件、分析、運用、マーケ。具体作業と知識の収集は、もう Agent に渡していい。渡したうえで、一つの形にするのは人間です。開発部分の前後を束ねる役割は変わっていない。変わっていないところに、いつものPM経験がはまる。それが、「PM が AI でアプリ開発できる時代」の中身だと自分は思っています。作れるようになった、ではなく 前後を持っている人の、実装までの距離が縮んだ 感じです。
自分が見ているのは、これは自分が使うかどうか。一文で言えるか。退店後にストレスがないか。友人を巻き込むとき、相手のハードルが高すぎないか。公開して恥ずかしくない文言か。
プロダクトの境界レビューは、自分の仕事です。そこを手放すと、ジャーニーから作ったはずのアプリが、機能の福袋に戻ります。福袋は中身を選んでいない人のものです。台の状況を見ずにとにかく飛びつくのと同じで、かなりきつい結末が待っています。そう、天井です。
現場は店。改修は電車
作って終わりにすると、PM が一番弱いところが出ます。現場を見なくなる。自分の場合、現場は週のパチスロと、そのあと開く自分のアプリで体験を何回も確認しました。ドッグフーディング的にジャーニーを毎週歩き直しています。1回のドッグフーディングに、SaaS の微々たるコストの何十倍ものコストをかけています。どんな高級ドッグフードやねん。
退店後の電車で、「このボタン、押しにくい」と思う。スクショを撮って、Agent に貼る。「ここ、文言統一しておいて。あとボタンの色とサイズをほかの画面と合わせて」と書く。「全部見ていい感じに」は、障害票に「なんか変」と書くのと同じです。
その場で具体的な指示を持って直させる。
移動中や、夜に風呂に入っているあいだは、スマホからクラウドの Agent に投げておく。deploy されたら差分を見て、自分のスマホで同じ操作をもう一度する。
ここが大事で、必ず自分のスマホで念のため挙動は見ましょう。シゴデキ後輩は、意外に抜けているところが可愛いのです。
これが自分にとってのコーディングです。使っていて気になった瞬間を逃さないことが重要。個人開発の「あとで直そう」は、だいたい直らない。Agent は具体作業が速いので、粒度さえ間違えなければ、本当に5分で終わります。
作ったものを触ってほしい
ブラウザで開けます。ストアは不要です。個人開発者あるあるなんですが、「とにかく感想が欲しい」。自分のプロダクトを使ってもらった反応を知りたいわけなんですね。
多分、来店演者の方はいつもこんな気持ちなんだろうなぁ。次に会うときは、知らない演者でも挨拶しよう。
- LP を開く
- 「無料ではじめる」→ お試しゲスト、または Google 認証
- 直近の一回を、投資と回収だけ入れてみる
- カレンダーに残ったら、それで最初の成功です。店名が空でも、成功です。あとから開ける一日が、一枚できたということです
フィードバックは、アプリ内のマイページ → お問い合わせから。バグ報告なんて泣いて喜びますし、こんな機能あったらいいのに、みたいなものでも大変ありがたいです。
おわりに(ポエム)
どんなPMでも AI でアプリを出せる時代、というのは本当だと思います。
ただ、出すだけなら誰でもできるが、成長させられるか、ずっと面倒をみれるかは別の話です。
カスタマージャーニーを描く。コアを決める。やらないことを書く。運用とマーケのハンドリングをする。セキュリティの担保、非機能要件の確認。
実装・開発というPMが手を出しにくい領域をagentがやってくれるようになったことで、その他のところをPMがやるだけでプロダクトとしてすぐに成立するレベルまで来れます。
そこから先は本当に自分の信じる「良い機能」をどこまで突き詰められるか。
ダメだったらまた違うものを作ればよいので、あまり気負わず、勉強がてらに個人アプリ開発、初めてみませんか?
