0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【開発期間75%削減】SE/PMが「Claude Code」と踊ったら、3ヶ月の仕事が3週間で終わった話

Last updated at Posted at 2025-12-19

はじめに:ルーターを買い替える前に

「bundle install でネットワークエラーが消えない。これ、家のルーターが古すぎてポート通してないんじゃ…?」

Amazonで新しいルーターを注文する直前でした。
ふと思い立って、ターミナルで対話していた Claude Code にエラーログを投げました。

Claude: 「これはRuby 3.4.7とmacOSの組み合わせで発生するHappy Eyeballs v2の問題のようです。環境変数 RUBY_TCP_NO_FAST_FALLBACK=1 を設定すれば解決します」

設定後、3秒で解決。
ルーターを買い替えなくてよかった。

これが、上流工程(SE/PM)専門の私が、Claude Codeと二人三脚で「3ヶ月かかる開発を3週間で完遂」させる旅の始まりでした。

本記事では、コーディングから離れていたPMが、AIとどう協働すれば爆速開発ができるのか、「人間3:AI7の黄金比」という概念を中心にお伝えします。


衝撃の実績:数字で見るビフォーアフター

まずは結果から。
Rails 8.1.1 + Docker + AWSという構成で、ポートフォリオサイト(CMS機能付き)を構築しました。

工程 従来の見積もり Claude Code協働 短縮率
全体工期 3ヶ月 3週間 75%削減
設計書作成 2〜3週間 2〜3日 約90%削減
CRUD実装 4機能 4〜8日 4機能 1日 約80%削減
環境構築 1週間 半日 約85%削減
バグ解決 平均4時間 平均1時間 75%削減

成果物の規模:

  • 変更ファイル数:91ファイル
  • 追加行数:3,515行
  • 私が書いたコード:ほぼゼロ

成功の方程式「人間3:AI7の黄金比」

開発を通じて痛感したのは、「AIに丸投げしてはいけない」ということ。
そして、「人間が頑張ってコードを書いてもいけない」ということです。

最も生産性が高まったのは、以下の役割分担が綺麗に決まった時でした。

人間の役割(30%):判断と責任

  • ビジョン: 「なぜ作るか」「誰のために作るか」の定義
  • 判断: AIの提案した設計やライブラリ選定の採用・不採用の判断
  • 責任: 最終的な品質担保、ビジネス価値の決定

AIの役割(70%):実装と調査

  • 実装: コードライティング、単体テスト作成、リファクタリング
  • 調査: エラー原因の切り分け、ドキュメントの一次作成
  • 文書化: 設計書の更新、日次レポートの作成

ケーススタディ:AIと踊るための「判断力」と「外部脳」

実際にあった、AIの「実装力」と人間の「判断力」、そして「最新ツール」が噛み合ったエピソードを紹介します。

Case 1. AIの暴走を止める「フェーズ管理」

AIは実装が得意なため、隙あらばコードを書こうとします。
プロトタイプ作成中のある日、事件は起きました。

Claude: 「画面イメージが完成しました!次はバックエンドのAPI実装とDB接続、認証周りも書いておきますね!」

私: 「ちょっと待って。今はまだPhase 1の設計フェーズだよね?仕様も固まってないのに実装しないで」

ここでAIを止めなければ、手戻りが大量発生していたでしょう。
「設計完了まで実装禁止」というルール(フェーズ管理)を徹底することで、手戻り工数を最小限に抑えられました。

Case 2. 5分で決断する「技術選択の往復」

AWS SESでのメール送信実装時のことです。
AIは最新の aws-sdk-ses gemを使って実装しましたが、本番デプロイ直後に「依存関係のエラー」で機能が停止しました。

私: 「まず動かさないと。一旦SMTP方式に切り替えて」

SMTPならRails標準機能だけで動くため、追加gemは不要です。この判断により5分で復旧しました。
翌日、「バウンス処理などでAPIの方が有利」という運用判断のもと、改めて aws-sdk-rails でAPI方式に戻しました。

  1. 緊急時は「まず動かす(SMTP)」
  2. 平時は「最適化する(API)」

どちらも技術的には正解です。しかし、状況に応じてどちらを選ぶか決めるのは、AIではなく人間の仕事でした。

Case 3. 外部脳「Context7」によるセキュリティ総点検

開発終盤、外部リソースを検索できる「MCP Context7」を導入し、既存コードのセキュリティチェックを行いました。これが決定打となりました。

単に「暗号化して」と頼むのではなく、「最新のRailsセキュリティのベストプラクティスに基づき、Contactフォームを診断して」とContext7に依頼。すると、AI単体では見落としがちな重要事項を指摘してきました。

  1. ボット対策の不足:
    • 提案: 「reCAPTCHAはユーザー負荷が高いので、まずは見えないHoneypotフィールドを追加しましょう」
  2. 既存データへの配慮:
    • 提案: 「Active Record Encryptionで暗号化(email, name, message)を行いますが、単に導入すると既存の平文データが読めなくなり500エラーになります。support_unencrypted_data = true オプションを有効にし、段階的に移行しましょう」

この提案のおかげで、本番環境を落とすことなく暗号化を適用し、同時にスパム対策も完了できました。
自分の知識やAIの学習データだけでなく、外部の最新ドキュメントを「外部脳(Context7)」として参照させることで、セキュリティの死角を潰すことができました。


裏技:「司令塔」と「実行部隊」を分ける

開発が進みリポジトリが膨れ上がってくると、Claude Code(CLIツール)だけではコンテキストを追い切れず、同じ作業をループする場面が出てきます。

そこで導入したのが、Claude.ai(ブラウザ版)の「Project機能」との併用です。

役割分担の最適化

  • 司令塔(Claude.ai Project):
    • リポジトリ全体を登録し、俯瞰的な視点を持つ。
    • 具体的なコード修正ではなく、「解決への道筋」を見つけさせる。
  • 実行部隊(Claude Code CLI):
    • ターミナルで動作し、ファイルの編集・実行を担当。
    • 司令塔からの指示を忠実に実行する。

成功率98%のワークフロー

  1. Claude Code が作業ループに陥る。
  2. ブラウザ版の Project 機能に「現状の問題」を相談する。
  3. Project 機能が、リポジトリ全体を見て「Claude Codeへの指示書」を発行する。
  4. その指示書をターミナルに貼り付ける。

この手順を踏むと、体感で98%成功します。もし1回目で外しても、2回目には確実に正解へ誘導してくれます。


今日から使える実践テクニック

Claude Codeを「部下」ではなく「最強の相棒」にするための具体的なTipsです。

1. CLAUDE.md でプロジェクトの憲法を作る

ルートディレクトリに CLAUDE.md を置き、プロジェクトのルールを明文化します。

プロジェクトルール

  • コマンド: bin/rails を使用すること
  • 品質基準:
    • メソッドは20行以内
    • 重複コードは3回まで(以降は共通化)

これを置いておくだけで、AIは勝手にリファクタリングを提案してくれるようになります。

2. session-start と add-report で文脈を繋ぐ

AIは忘れん坊です。毎日の儀式で記憶を維持します。

🛠️ ルーティンを自動化するCLAUDE.mdに入れるコマンド例

# `session-start`
Description:セッションを開始し、前回のコンテキストを復元する
Steps
  1. `ls -t reports/*.md | head -n 1` を実行し、最新のレポートファイルを見つける。
  2. そのファイルの内容(特に `Next Actions` と `Current Phase`)を読み込む。
  3. 読み込んだ内容を元に、「準備完了。現在のフェーズは [Phase] です。直近の課題は **[TODO]** です。」とユーザーに報告し、指示を待機する。

# `add-report`
Description:作業内容を記録し、次回のコンテキストを作成する
Steps
  1. `git status` とこれまでの会話履歴を確認し、今回の実装内容(変更ファイル、主要な変更点)を箇条書きでまとめる。
  2. 次回のセッションでやるべき `Next Actions` を3つ以内で列挙する。
  3. 現在の進捗フェーズ `Current Phase` を定義する。
  4. 上記の内容をマークダウン形式で `reports/YYYY-MM-DD.md` に保存する(同日のファイルがある場合は追記する)。
     - **Format**:
       ```markdown
       ## [Time] Report
       - Changes: ...
       - Current Phase: ...
       - Next Actions: ...
       ```

コマンドの使い方例

  • 朝: session-start コマンド(自作エイリアス)で、「昨日の進捗」と「今日のPhase」を確認させる。
  • 夜: add-report で作業内容を要約させ、CLAUDE.md や日報ファイルに追記させる。

この習慣のおかげで、「あれ、何やってたっけ?」がなくなりました。

💡 小ネタ:作業再開時 昼休憩などでセッションを中断した場合は、Claudeの標準 claude --continue コマンドを使えばコンテキストを引き継いだまま再開できます。

3. 「スクショ駆動」開発

UI修正指示を言葉で行うのは非効率です。
「ここが変」とスクリーンショットを貼るだけで、AIは座標や色を解析し、CSSを修正してくれます。修正ラリーの回数が1/3に激減しました。


結論:AIと踊れば、仕事はもっと楽しくなる

「AIに仕事が奪われる」と恐れる必要はありません。
むしろ、AIのおかげで「面倒な単純作業(実装)」から解放され、「本質的な価値創造(判断・設計)」に集中できるようになりました。

私がやったのは、20年の経験を活かして「待て(判断)」と言い、「再起動して(基本)」と指示したことだけ。

もしあなたが、日々の実装や調査に追われているSE/PMなら、まずは「小さなプロトタイプ作成(所要時間30分)」から試してみてください。

ルーターを買い替える前に、AIに聞いてみましょう。
きっと、あなたのエンジニアライフを劇的に変える「相棒」になるはずです。


使用技術スタック

  • Ruby on Rails 8.1.1
  • Ruby 3.4.7
  • PostgreSQL 17
  • Docker / Docker Compose
  • AWS Lightsail (SES, Route53)
  • Claude Code (CLI) & Claude.ai Projects (Web)
  • MCP Context7 (Official Documentation Search)

配布アセット
https://github.com/miyakawa2449/kzrb160

  • AI協働型開発プロセス定義書 (v1.0)
  • コンテキスト制御用 CLAUDE.md 実例
  • PM用:AI暴走防止チェックリスト
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?