📧

生成AIと並走してプロダクトローンチまでできた話

2025/01/26に公開

はじめに

これまで10年くらい、
「いい企画を思いついた!アプリを作ろう!」→「無理!わからん!」というサイクルをずっと繰り返したプロダクト開発ワナビだったが、タイトルにもあるように生成AI--具体的にはCursorとClaudeとv0の力を借りてβ版としてローンチするところまでできた。
エンジニア経験はないわけではないものの、昨今のモダンな開発環境、言語での開発、さらにはUIデザイン制作の実務経験はなく素人と言って差し支えないレベルで、言葉通りに「プログラミング チョットデキル」人だった。
ミニマム版のプロダクトではあるが、少なくとも自分が満足できる挙動をさせることができ、まだ見ぬユーザーの皆さんにご利用いただけるだけのプロダクトにはなったと思うので、アプリ開発0m地点から、AIとどのように伴走して開発を進めてきたかを残したいと思う。
既に同じコンセプトの記事も世の中に多数ありますが、私と同じようなプロダクト開発ワナビの方の一助になれば幸いです。

本題の前にサービス紹介

サービス名

pople
https://pople.jp

概要

嫌がらせやスパムメッセージが届かない、クリエイター向けのメッセージ受信箱

ユーザー向けの記事はこちら
(note URL)

簡単に自己紹介と経歴

とりむね(X:torimune)
プログラミング未経験で新卒でSIerに入社、その後、Web制作会社、スタートアップの事業会社を経て、現職にディレクターとして入社。現在はプロダクトマネージャー(PdM)としてプロダクト開発や事業開発の垣根なく担当中。
SIer出身なので開発経験がなくはないですが、ここ10年くらいは前述の通りコードは触らない仕事だったことと、個人開発やろうと手をつけるものの全て完成まで至らず挫折→復活を繰り返すプロダクト開発ワナビだった。

pople開発前夜

実はpopleを開発する前、2023年〜2024年にかけてスマホアプリを開発していた。言語はFlutter(riverpod)。
そちらも今回と同様に生成AIと伴走してローンチまで進めたものの、アプリそのものの企画や戦略で、最低でも1年間時間を張るだけの情熱が出せるかという点で疑問が生じてクローズ。
その時も生成AIに伴走してもらって開発を進めており、何より0→1のスピードに優れていたこともあって、新しいプロダクトを開発する際にも生成AI使うことは自分の中で決めていた。

その後、限られた人しかメッセージを送信できないサービスpopleを企画するのだが、企画や戦略については別の記事にまとめているのでそちらをご覧ください。
(solomaker URL)

技術スタック

  • フロントエンド、バックエンド:Next.js
  • DB:supabase
  • ホスティングサービス:vercel
  • 決済サービス:stripe
  • エディタ:cursor
  • 利用した生成AI:v0、Claude

具体的な進め方

プロトタイプ版開発

プロトタイプ版として、必要な画面、UI、色合いなどを決めていった。
ここまでの段階でターゲットユーザーはおよそ固まっていたことと、彼らが普段利用しているであろうサービスのトーンをテキストとしてまとめておき、出力する前にプロジェクト情報として読み込ませてから出力してもらっていた。
ここでは主にv0を利用したため、
 要件の入力→出力→確認・意図と異なる場合は再度入力
を繰り返して、希望のUIとなるようにして作り込んでいった。

それと並行して、バックエンド側としてDBのテーブル構成、データ構造も。
ここについては過去の経験でおおよそイメージできていたのであまりAIに頼ることはなかったが、
設計したデータ構造についてメリットデメリットを提示してもらったり、いずれリリースした後の速度面で気になる点がないか、フィードバックを受けながら修正を進める。

サーバサイドのロジックはこの時点では考えないこととして、とにかくユーザーが触る画面を作り込むことを意識した。
ただ、実際の現場でUIデザインをやったことはないので、意図通りに出力されていることはできても、
それが本当にユーザーライクなのかについては判断できなかった。これは後述するサーバサイドのロジックを書く場合にもつながるのだが、私が主に触っていた2024年10月頃のAIは、全体最適が弱かったこともあり、そこは人間が担保する必要があった。
なのでプロダクト全体のUI設計については、AIのフィードバックも受けつつ、書籍やネットの記事を参考にして判断した。
とはいえ、1人開発を進める上で大事なのはモチベーション管理。ずっと同じ画面を作り続けるよりも進捗してる感で自分を騙すために、後戻り上等として8割くらいの完成度で見切りをつけた。

サーバサイド開発

エディタはcursorで、主にclaudeを使っていた。
正直一番大変だったのがここでで、後述の進め方を見てもわかるように、事前情報をうまくAIに伝えられていないからかもしれない。

とにかく、やりたいことに対してズバリそれ!という回答は出てこないことと、バグが出てもデバッグやりきれずに同じ回答を延々繰り返すだけなので、調べて人力でやるしかない。やりたいことを小分けにして、出力も小分けにすることで解決できることもあったが、基本路線は人力。
ちなみに過去アプリ開発していた時は、生成AIの画面でコード出力→コピペ→手直しという作業が発生していたが、cursorではそんなことしなくてもいいのでかなり楽になった。完全なコードを出力してもらう場合でも、変更しない箇所は差分無しになるので。
それとこれもどこまでをAIに読み込ませているかによると思うけど、環境起因だったりミドルウェア起因のバグ解決はほぼ期待できない。一応解決方法を聞いてそれで実行してみるが、一発で完全解決することはなかったり、別の問題が生み出されたりしたので、これも結局人力解決することがほとんど。
それでも、コードが何も書かれていないところから、意図と違うとはいえまあ動かないことはないレベルのコードが出力されて、確認できる状態まで言葉通り一瞬で持っていけるのはすごく、コード補完能力も高い。popleの開発は引き続き行うが、cursorは手放せない。

AIを使ったところ

事業戦略の検討、アイデアからプロダクトのコンセプトを固める部分と、何を提供価値とするかについてはClaudeで壁打ち。
プロダクト開発においては上記の通り、フロントエンドとバックエンドのロジック、テーブル構造のフィードバックに利用した。

AIを使わなかったところ

プロダクトへの組み込みは一才していない。
これは企画段階からそう決めていたのだが、想定ユーザーに提供したい価値を100%実現しきれない可能性があったので。
提供したい価値は、「ユーザーが意図しないメッセージが届かないこと」なので事前にユーザーないしメッセージをAIでフィルタする必要があるのだが、AIが組み込まれている先行プロダクトの事例を見てもすり抜けてメッセージが送られているケースは多々あったので(popleを開発しようと思ったきっかけでもある)。

それと、クリエイティブ部分には一切使っていない。具体的にはサービスロゴ画像やサービス説明ページに使っている画像を指している。
napkinAIなど図示に特化したAIを触って試してもみたが、どこを抜き出して、どこを強調して、どういうトーンにしたいのかといった点をプロンプトで修正を繰り返しても満足いく出力にはならなかったため。

まとめ

日進月歩のAIプロダクトを全てキャッチアップできていないので違う意見を持つ方もいるかもしれないが、
AIに読み込ませる→出力→手直ししないで本番ローンチ
と、特に非エンジニアが理想とする開発の進め方はまだまだ現実的ではないと考えている。
そこを打破しようとしているAIプロダクトや、入出力に時間的・金銭的コストを掛けることで実現できている方も目にしているので、あくまでも個人の意見として。

AIがどこまでできるかについてはすぐに飛び付かず冷静に、一方で自分の手で試す情熱を持って、AIと伴走しながら引き続き開発し続ける。

Discussion