MVP を定義してリリースする
MVP(Minimum Viable Product)の考え方と、sns_clone を「動くもの」として公開するまでの判断基準・チェックリスト
- この章で学ぶこと:MVP を定義する際の判断基準、リリース直前のチェックリスト、公開後の改善サイクルの回し方を身につける。
- なぜ学ぶのか:機能を盛り込みすぎるといつまでも公開できない。MVP で割り切って出し、ユーザーの反応を見て育てる方が結果的に早く良いものになる。
- Web 開発のどの領域か:プロダクト設計・リリース戦略。b17〜b20 の総仕上げに位置する。
前提: 応用編(b17〜b23)を読み終え、c01〜c04 でドキュメント・設計・開発フローが整っていること。
所要時間: 大きい(リリース作業そのものに 5〜20 時間)。本章の読解は 45 分。
到達目標:
n10u-tech.<自分のドメイン>で sns_clone の MVP が公開され、自分以外の最低 1 名がアクセスできる状態。
MVP とは
Minimum Viable Product(必要最小限の価値を届ける製品)。目指すのは「完成品」ではなく「検証可能な仮説を伴った最小プロダクト」。
sns_clone の例:
| フル機能 | MVP | MVP 後の追加 |
|---|---|---|
| 投稿・いいね・フォロー・コメント・DM・画像・通知 | 投稿・いいね・タイムライン表示 | コメント → フォロー → 画像 → 通知 → DM |
| OAuth・2FA・ソーシャルログイン | メール+パスワードのみ | 後から追加 |
| 多言語対応 | 日本語のみ | 需要があれば |
| モバイルネイティブアプリ | Web のみ | PWA → ネイティブ |
「これがないと仮説検証できない」機能だけ入れる。「あると便利」は全部削る。
MVP を絞るための 3 つの質問
-
この機能がないと、核心の体験が成立しないか?
- タイムライン表示:YES(SNS の核)
- コメント:NO(MVP では読むだけでよい)
-
ユーザーは 5 分以内に「価値」に到達できるか?
- ログイン→タイムライン→投稿 の 3 ステップで完結させる
- オンボーディング画面は後回し
-
クラッシュしたら致命傷か?
- YES のものだけテスト・監視を厚くする
- 他は「壊れたら直す」で割り切る
リリース前チェックリスト
[ ] 本番 URL で HTTPS が有効
[ ] ログイン・ログアウトが動く
[ ] 投稿・いいね・タイムライン取得が動く
[ ] エラーページ(404・500)が用意されている
[ ] DB にバックアップ設定がある(AWS RDS の自動バックアップ)
[ ] エラー監視(Sentry など)が入っている
[ ] 最低限のテストが CI で通っている
[ ] README にセットアップ手順がある
[ ] LICENSE ファイルがある
[ ] .env.example がある(実 .env はコミットしない)
[ ] 秘密情報のリーク確認(git-secrets などで走査)
デプロイまでの手順(AWS 構成)
- インフラ構築: b17 で作成した EC2・RDS・CloudFront をセットアップ
- ドメイン設定: Route53(または他の DNS)で A レコードを ALB に向ける
- HTTPS 証明書: ACM で証明書を発行し、CloudFront に設定
- 初回デプロイ: CI/CD パイプライン(b19)を走らせて main → EC2 への自動デプロイが通ることを確認
- 疎通確認: 本番 URL で全画面を開く
公開後の改善サイクル
MVP を出した直後が一番大事。仮説が合っているかを測る。
- ユーザー行動の計測: Plausible や Cloudflare Web Analytics(無料・軽量)でページビュー・滞在時間を計測
- エラー監視: Sentry で本番エラーをリアルタイム検知
- フィードバック経路: 簡単なお問い合わせフォームか、GitHub の issue を公開
- 次の機能の優先順位: 「よく使われる機能」と「要望が多い機能」は別。データで判断する
よくある詰まりポイント
- 完璧主義で永遠に公開しない: 6 か月かけても 100 点にはならない。60 点で出して、使いながら 80 点にする。
- 最初から大規模対応: ユーザー 0 人の段階で「10 万ユーザー捌けるか」を気にしない。無料枠で十分。
- モニタリングゼロで放置: 公開したら Sentry とアクセスログは最低限入れる。何が起きたか分からない状態は危ない。
- 秘密情報のコミット:
.envをうっかり push してしまうと、Git 履歴から消すのは極めて面倒。git-secretsやgitleaksを pre-commit に入れる。
おめでとうございます
ここまで来たら、Web エンジニアとして「動くものを自力で公開する」という到達点に立てている。次は公開後の運用・改善を通じて、さらに深い学びに進む。
sns_clone 参考実装
checklist.yml— MVP 完成条件(M1〜M8 機能要求・非機能要求)README.md— デプロイ手順・AWS 構成の実例
確認クイズ
Q1. MVP に入れるべき機能と、後回しにする機能を判断する最初の問いは何か。
正解: 「この機能がないと、核心の体験が成立しないか?」
解説: 答えが YES のものだけ MVP に入れる。NO は後回し。SNS なら「投稿とタイムライン」がなければ SNS として成立しないので必須、「通知」はなくても成立するので後回しになる。
Q2. 公開直前のチェックリストに「.env.example がある」が含まれる理由は何か。
正解: 別環境(他のマシンや共同開発者の環境)でセットアップする際、必要な環境変数が何かを自明にするため。実際の .env は秘密情報を含むためコミットしない。
解説: README にセットアップ手順があっても、環境変数の key が漏れていると誰もセットアップを再現できない。.env.example は空の値または説明コメント付きで全 key を列挙する。
Q3. MVP を公開した直後に入れるべき監視・計測ツールを 2 つ挙げよ。
正解: エラー監視(Sentry など)とアクセス計測(Plausible・Cloudflare Web Analytics・Google Analytics など)。
解説: エラー監視は「壊れていること」を知るため、アクセス計測は「使われているか・どこで離脱するか」を知るため。どちらも無料枠で始められる。公開後に入れるのではなく、公開前に組み込んでおく。
生きているコード
本ドキュメントで扱ったパターンの完全な動作コードは、メンター側リポジトリの参照ブランチで確認できます。
- 対応 Week: W20
- 参照ブランチ:
- W20:
reference/week-20 - 対応 checklist 項目: M12
ブランチの作り方・見方は b00-curriculum-map を参照してください。
- 1. 📄Web とは何か
- 2. 📄URL を打ってから画面が表示されるまで
- 3. 📄ネットワーク基礎(TCP/IP・DNS・HTTPS)
- 4. 📄【発展】物理層から通信が成立するまで(電力・Ethernet・Wi-Fi・Bluetooth)
- 5. 📄WSL2・Docker セットアップ詳細(Windows 向け)
- 6. 📄環境構築の段階的導入(macOS / Windows)
- 7. 📄カリキュラム全体マップ(Week × 教材 × 参照ブランチ × 要求チェックリスト)
- 8. 📄このカリキュラムの使い方(SQL・Python・Dify経験者向け)
- 9. 📄シェル・ターミナル基礎
- 10. 📄Windows で完全にゼロから始める開発環境構築(Week 1)
- 11. 📄Git基礎
- 12. 📄GitHubワークフロー
- 13. 📄パッケージ管理(pnpm workspace)
- 1. 📄AWSインフラ基礎
- 2. 📄AWS Budget Alert の設定(Month 5 Week 17)
- 3. 📄環境変数管理
- 4. 📄Bastion EC2 と SSH ProxyJump(Month 5 Week 18)
- 5. 📄CI/CD基礎
- 6. 📄ECR への Docker イメージ push と App EC2 デプロイ(Month 5 Week 19)
- 7. 📄テスト設計の基本
- 8. 📄CloudFront + S3 + ALB で公開する(Month 5 Week 20)
- 9. 📄CLAUDE.md・プロジェクト設定
- 10. 📄PR レビュー 5 観点ルーブリック(全 Week 共通)
- 11. 📄タスク分解・仕様の書き方
- 12. 📄Playwright で E2E テスト(Month 6 Week 22)
- 13. 📄生成コードのレビュー・デバッグの勘所
- 14. 📄Trivy で脆弱性スキャン(Month 6 Week 23)
- 15. 📄CloudWatch Logs の読み方と運用(Month 6 Week 23)
- 16. 📄PDF ポートフォリオの自動生成(Month 6 Week 24)
- 1. 📄SNSアプリの最終インフラ構成図
- 2. 📄SNSクローンの全体設計(Month 1 ゴール)
- 3. 📄実務品質の README を書く
- 4. 📄画面遷移図を描いてルーティングを設計する
- 5. 📄ER 図を描いてテーブル設計を固める
- 6. 📄Issue ベースの開発フローを回す
- 7. 📄MVP を定義してリリースする