Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AIに書かせ 人で磨き チームで回す 仕様駆動開発

Avatar for Kazuki Murahama Kazuki Murahama
August 01, 2025
170

AIに書かせ 人で磨き チームで回す 仕様駆動開発

ハッカーズチャンプルー2025のLTです

Avatar for Kazuki Murahama

Kazuki Murahama

August 01, 2025

Transcript

  1. © Scalebase Inc. はじめに ⾃⼰紹介 村濱 ⼀樹(Kazuki MURAHAMA)むらー/mura- • Scalebase株式会社

    執⾏役員 VPoE プロダクト部⾨⻑ • X: @muraaaaa_san 2011年に⼤⼿通信設備会社にネットワークエンジニアとして ⼊社。その後、ウェブシステム開発会社に転じフルスタック開 発や、開発プロセス改善に従事。 2015年に独⽴、SaaSを利⽤したアジャイル開発を中⼼に活動 するとともに、エンジニアコミュニティにも積極的に参加‧⽴ ち上げ。 2019年にアルプ株式会社(現:Scalebase株式会社)に⼊社 し、開発およびエンジニアリングマネジメントを担当。 現在はプロダクト開発全般を管掌。
  2. © Scalebase Inc. サブスクリプションビジネスにおける主な課題を解消します! 成⻑の先にある販売管理業務の複雑性 • ユーザー数の増加や提供プランの多様化といった サブスクリプションモデル特有の課題 • 料⾦体系の複雑化(⽇割、請求サイクル、利⽤量

    に応じた従量課⾦)、アップ/ダウンセル、割引‧ キャンペーン適⽤などが発⽣ • 「契約期間」というサブスクリプションビジネス 特有の概念での管理の必要性 既存の仕組みでは乗り越えられない壁 • 請求計算ミスや売上計上漏れのリスク増⼤、これ による顧客不満や機会損失 • 新しいプランやモデルを試したい時に、システム 側の制約で迅速に実⾏できない • サブスクリプションビジネス特有の重要指標が正 確に把握できない • 業務プロセスごとにシステムが分断され、データ ドリブンな意思決定につなげられない 業務⼯数の増加 属⼈化 請求ミスの リスク 事業成⻑への ブレーキ データ管理の ⼀元化
  3. © Scalebase Inc. よくある失敗パターン • 出⼒の質がバラバラ、曖昧なインプットが多い • 幻覚や抜け漏れが発⽣しやすい • 個⼈で完結しがち

    → チームに知⾒が回らない • ナレッジが残らない / 平準化できない コードをLLMに書かせたが、要件がもれていたり、思ったのと違うコード/成果物がでて結局⾃分で書き直し… →課題の定義が曖昧なまま進めてしまうのが原因。これはAIにお願いしやすいからこそ起こることでもある LLMをそのまま使うと微妙なことが...
  4. © Scalebase Inc. 課題(Issue)の定義からAIにやってもらう 1. ClaudeCodeにIssueを作らせる a. 対話的に要件ヒアリング b. 類似Issueの確認、コード調査

    c. Issueテンプレートに準拠して⾃動⽣成 2. GitHubにIssueを登録 3. 朝会や定例でチームが吟味‧修正 4. 問題なければ実装へ a. 実装⽅法はAIでも⼈でもOK いきなり開発をまかせるのではなく、 AIと⼀緒に要件考えることからスタートして、 なにをやるかをきっちりIssueに書く 解決策:Claude Code × ISSUE駆動フロー 要件定義 /仕様策定 Issue登録 確認・修正 実装
  5. © Scalebase Inc. 下記をClaude Codeで実⾏させる • 類似のIssueがあるか検索 • 疑問点を質問し、コードを調査して反映 •

    .github/ISSUE_TEMPLATE/* から適切なテンプレートを選択 • 要件に応じてIssueを更新(コード断⽚や参考実装を含む) Claude Codeが⾏うこと(詳細)
  6. © Scalebase Inc. .claude/commands/create-issue.md --- allowed-tools: Bash(gh issue:*), Bash(gh pr:*)

    description: 要件を元に、issueを作成‧更新する --- # create-issue - 対話的に要件($ARGUMENTS)をヒアリングし、issueを作成‧更新する - 類似のissueが存在するか確認する - 疑問点は確認し、コードを調査し、実装予定の詳細をissueへ反映する - issueのフォーマットはテンプレートに準拠する - .github/ISSUE_TEMPLATE/* - 要件にあわせた適切なテンプレートを選択する create-issue コマンド定義(.claude/commands/create-issue.md)
  7. © Scalebase Inc. 実際のコマンド例 実例:ClaudeCodeコマンド /create-issue (コマンド実⾏、既存Issueの検知) /create-issue PDFのプレビュー表⽰領域を⼤きくしたい [Image

    #1] ⏺ 既存のIssue #1521が⾒つかりました!この issue はあなたのリクエスト「PDFのプレビュー表⽰領域を⼤きくしたい」と完全に⼀致する内容で す。 既存Issue #1521の内容 - タイトル: PDFプレビューの表⽰サイズ改善:6:4表⽰‧フルスクリーン対応 - 状態: オープン(未実装) - 提案内容: a. 6:4⽐率での表⽰改善 b. フルスクリーン表⽰機能の追加 次のステップをお選びください: 1. 既存Issue #1521をそのまま使⽤ - 既に詳細が記載されているため 2. 追加要望があれば既存issueにコメント追加 3. 新しいissueとして別途作成 - 異なる要望の場合 ClaudeCodeの出⼒(既存Issueを検知) 曖昧な依頼でも、咀嚼し、 既存のIssueをまずは探してきてくれる 今回は3の新しいIssueを作成する
  8. © Scalebase Inc. 実例:ClaudeCodeコマンド /create-issue(Issue作成のための要件ヒアリング) ⏺ Issue作成のための要件ヒアリング 利⽤可能なテンプレートを確認しました: - 🔧

    改善タスク (improvement_task.yml) - 既存機能の改善⽤ - ✨ 機能開発 (feature_request.yml) - 新機能開発⽤ 「PDFのプレビュー表⽰領域を⼤きくしたい」という要望は既存機能の改善なので、改善タスクテンプレートを使⽤します。 詳細をお聞かせください: 1. 現在の状況‧問題点について: - どの画⾯のPDFプレビューでしょうか?(⾒積書作成画⾯、⼀覧画⾯など) - 現在のプレビューサイズはどの程度で、どのような不便さがありますか? - この問題はどの程度の頻度で発⽣しますか? 2. 改善提案について: - どの程度⼤きくしたいですか?(具体的なサイズや⽐率) - レスポンシブ対応は必要ですか? - フルスクリーン表⽰機能は必要ですか? 3. 確認⽅法: - 改善後、どのような操作で確認できれば良いでしょうか? これらの情報をもとに、適切なissueを作成いたします! テンプレートを判断し 詳細を対話的に確認
  9. © Scalebase Inc. Issue作成完了メッセージ 実例:ClaudeCodeコマンド /create-issue(Issue作成) ⏺ ✅ Issue作成完了! Issue

    #1524 を作成しました: 🔧 改善: ⾒積書作成画⾯のPDFプレビュー表⽰サイズ改善‧フルスクリーン機能追加 URL: https://github.com/xxxx/xxxxx/issues/1524 作成したIssueの内容: - 現在の状況: ⾒積書作成画⾯のPDFプレビューが⼩さく⾒づらい - 改善提案: プレビューサイズ拡⼤ + フルスクリーン表⽰機能追加 - 技術詳細: 実装場所やファイルパスを具体的に記載 - 確認⽅法: 実装後の動作確認項⽬をチェックリスト形式で明記 Issue作成フローのポイント: 1. テンプレート確認 → 改善タスク⽤テンプレートを選択 2. 要件ヒアリング → 具体的な要望を詳細に聞き取り 3. コード調査 → 実装箇所を特定して技術的詳細を追加 4. 詳細なIssue作成 → テンプレートに沿って構造化された内容で作成 これでIssue作成の流れが完了です! ヒアリングと調査を重ね 最終的にIssueを作成
  10. © Scalebase Inc. 朝会や定例での確認フロー • 朝会や定例でIssueを確認 • 必要に応じて修正‧優先度調整 • 間違っていたら再度指⽰をしていいし、⼈がIssueを修正してもOK

    • 思ったより⼤規模になる場合優先度を下げるなどコントロールしやすい • Issueに⼀度書き出すことで、個⼈で閉じない • プランや課題が正しいかをチームで確認できる • 「なぜその解決策なのか」をレビューできる • 知⾒が共有され、ナレッジとして残る • 意外な落とし⽳に気づき、⼿戻りがすくなくなる セーブポイントとしての役割 • ここを起点に次のフェーズに進める • チーム全体で前提‧背景が揃う Issue作成後のチームの関与ポイント
  11. © Scalebase Inc. 個⼈がインプット→LLMアウトプットで完結していた流れを、ISSUEで⼀度「⾒える化」することがポイント。 セーブポイントとして区切ることで、安⼼して前に進める。 実装⽅法の選択肢(例) • A. ⼈⼿実装(Human-first) •

    コアドメイン∕⾼リスク変更時は⼈間が中⼼ • 受け⼊れ基準に基づき設計→実装、LLMは補助的に利⽤ • B. ClaudeCode主導(Plan→Diff→PR) • /plan-from-issue や /implement-issue などコマンドで⾃動化も可能 • PR作成、テスト結果も⾃動反映 • C. Cursor / Copilot 等IDEアシスト • ⼩規模改修やUI変更など既存パターン踏襲の作業に向く • Issue本⽂をエディタに貼り付けてEdit適⽤ • D. Devin 等のエージェント型 • 調査→設計→実装→検証を⾃動化。 • Devinの場合は複数のリポジトリにまたがることもやりやすい • E. 混合(Pair/Mob + AI) • 不確実性が⾼いタスクはペア/モブ作業+AIのサンプル実装 Issue精査後:セーブポイントからの実装の分岐 弊社の場合は、Claude Code ActionやDevinにやってもらう ことが多い 少しずつ進みながら考えたい 場合はCursor利⽤など、⼈間 がドライバーになる
  12. © Scalebase Inc. Before: • 各⾃がIssueを拾う → LLMを使ってコード⽣成 → バラバラ、後戻り多発

    • 知⾒も共有されにくい After: • ClaudeCodeがIssue化 → Issueをチームでレビュー‧修正 → セーブポイントから分岐して開発 • 正しいインプットが揃うのでコードの品質も向上 • やる‧やらないの判断、⽅向修正ができる • Issueによって最適な⼿段を取れる • Issueがナレッジのハブになる • 結果、チーム全体の⽣産性が底上げされる LLMのコードアウトプットの質はインプット次第。 Issueでセーブポイントを設け、チームで共有‧確認してから進めることで精度とスピードが上がる。知⾒もたまる。 まとめ‧Before / After