競馬システム要件定義の徹底分析レポート
対象文書: 競馬システム要件定義.md
作成者: Manus AI
分析方法: 添付要件定義の全文分析、10軸の並列分析、要求工学標準との照合、汎用テンプレート化
作成日: 2026年5月22日
1. 結論
本要件定義の本質は、単なる競馬予想システムの仕様書ではなく、AI時代における「実装者に迷わせないための絶対ルール集」である。通常の要件定義は、機能一覧、画面一覧、非機能要件を整理するだけで終わりがちだが、この文書は、プロジェクトオーナーの意思決定、AIの使わせ方、ロジックの採用判断、Web UIでの運用完結、データ取得制約、収支の見せ方、ブランド名、画面の空状態、数値表示ルールまで踏み込んでいる。
特に重要なのは、この要件定義が「作るもの」を定義するだけでなく、実装時のブレ、レビュー時の主観、AIの勝手な提案、運用者の誤操作、ユーザーの誤解、外部データ規約違反を防ぐために作られている点である。本文中に繰り返し現れる「絶対ルールを作るのが要件定義です」という思想は、要求工学における追跡可能性、検証可能性、一貫性、境界定義の考え方と強く一致している。
国際的な要求工学標準であるISO/IEC/IEEE 29148:2018は、要求定義を事業・ミッション分析、ステークホルダー要求、システム要求へと段階化し、要求を追跡・検証可能な管理対象として扱うことを重視している。1 本要件定義は、形式上は標準テンプレートに完全準拠しているわけではないが、実務上の目的、利用者、スコープ、制約、運用、評価、画面、データ、外部規約、検証サイクルを一体化しており、AIを使った実装プロジェクトにおける実戦型要件定義として極めて高い水準にある。
2. なぜ、このような要件定義になっているのか
この要件定義が詳細で、指示色が強く、時に会話ログのような記述を含んでいる理由は、プロジェクトの性質にある。本システムは、静的な業務管理システムではなく、競馬データ、機械学習、バックテスト、人間判断、週次運用、Web UI、外部データ規約、複数ロジックの採用・停止を含む複合型の意思決定システムである。したがって、要件が抽象的なままだと、実装者やAIエージェントが勝手に補完し、プロジェクトオーナーの意図と異なるものが作られる危険が高い。
| 設計意図 | 本文に現れている要素 | なぜ必要か |
|---|---|---|
| コア価値への集中 | 過去11年分の競馬データから勝てるロジックを発見し、買い目を提示する | 予測、収支、ロジック検証以外の機能に開発リソースが散らばることを防ぐため。 |
| 対象外の明確化 | 個人の馬券管理、地方競馬を対象外とする | 初期開発を肥大化させず、レビュー対象を明確にするため。 |
| 人間による最終判断 | 社長承認制、自動採用しない | AIの過信を防ぎ、実績・直感・経営判断を統合するため。 |
| Web UI完結 | フェーズ3以降はボタン操作だけで運用 | 非エンジニアでも壊さず使える状態にするため。 |
| 複数ロジック管理 | バシンの目を複数持ち、目ごとに成績を表示 | 単一モデル依存を避け、ユーザーが比較・選択できるようにするため。 |
| 画面要素の詳細定義 | 期待値マップ、出走表、Logix ID、ミニチャート、空状態表示 | 実装時の迷いとレビュー時の主観を排除するため。 |
| 外部制約の組み込み | JRDBの取得時間、契約、認証、データ利用 | 規約違反・データ欠損・運用停止を防ぐため。 |
つまり、この要件定義は、単に「競馬AIを作るため」ではなく、AI・人間・データ・UI・運用・レビューを同じルールで縛るためにこの形になっている。AIに作らせる時代の要件定義では、実装者が人間であってもAIであっても、解釈の余地が大きいほど品質がぶれる。そのため、この文書は通常よりも細かく、強い言葉で、画面や運用まで指定している。
3. 世界最高基準と評価できる理由
本要件定義を「世界最高基準」と呼べる理由は、完璧に整った文書体裁にあるのではなく、成果が出るシステムを作るための判断基準が、実装・運用・検証・改善まで貫通している点にある。多くの要件定義は、実装前の合意文書に留まる。しかし本要件定義は、運用後に何を見て、誰が判断し、どのロジックを残し、どの画面で確認し、どのタイミングでデータを取得し、どのようにレビューするかまで含んでいる。
| 評価軸 | 高く評価できる点 | 世界最高基準化の意味 |
|---|---|---|
| 目的の明確性 | 回収率120%という数値目標がある | 価値判断が曖昧にならず、機能追加の優先順位を決めやすい。 |
| 運用サイクル | ロジック作成、バックテスト、採用判断、本番検証の循環 | 一度作って終わりではなく、勝てるロジックだけを残す改善構造がある。 |
| 意思決定 | 社長承認制で自動採用しない | AIの自動判断と人間責任の境界が明確である。 |
| UI設計 | 画面に何を置くか、空状態をどう出すかまで記載 | 実装者の気分によるUIの崩壊を防ぐ。 |
| データ制約 | JRDB取得時間、契約、認証、取得経路まで記載 | 外部依存システムの現実的な制約を要件に組み込んでいる。 |
| 収支設計 | 目ごとに累積回収率、資金推移、ドローダウンを表示 | 予測精度ではなく、実際の意思決定価値で評価している。 |
| ブランド設計 | Arima 1.0、バシンの目、Logicsの使い分け | 内部実装名と外部表示名を分け、プロダクトとしての一貫性を作っている。 |
| レビュー思想 | 要件定義をレビューの絶対ルールとして位置付ける | 「何となく良い/悪い」ではなく、要求充足で判定できる。 |
ISO/IEC/IEEE 29148の考え方では、要求はステークホルダーのニーズからシステム要求へ変換され、さらに検証可能で追跡可能な形で管理されるべきものとされる。1 ReqViewの29148テンプレートでも、要求にはID、オーナー、優先度、出所、理由、状態、検証方法などの属性を持たせることが示されている。1 本要件定義は、まだ要求IDや検証方法の形式化は弱いものの、なぜ必要か、誰が判断するか、どこに表示するか、どう運用するかが非常に強く書かれている。
ReqViewは、ISO/IEC/IEEE 29148に基づく要求仕様テンプレートとして、ステークホルダー要求、システム要求、ソフトウェア要求、事業要求、運用コンセプトを分けて扱うことを示している。1
この観点から見ると、本要件定義は正式な標準様式というより、事業要求、運用コンセプト、AIモデル運用、画面仕様、外部データ制約、レビュー基準を一体化した実戦文書である。世界最高基準に近いのは、形式美ではなく、実装で迷わないための情報密度と、運用で壊れないための現場知である。
4. 10軸並列分析の統合結果
今回、要件定義を10個の独立観点に分けて並列分析した。結論として、本要件定義は「勝てる競馬AI」ではなく、勝てる可能性のあるロジックを継続的に発見し、検証し、採用し、比較し、ユーザーが判断するための運用基盤として設計されている。
| 分析軸 | 主要結論 |
|---|---|
| 事業目的・成功指標 | 回収率120%という明確な成果目標があり、意思決定を利益指標へ集中させている。 |
| スコープ・フェーズ | 個人馬券管理や地方競馬を外し、フェーズ3でUI完結運用へ移行する意図が明確。 |
| ユーザー・権限 | 社長、メンバー、管理者、開発チームの役割を分け、人間判断を中核に置いている。 |
| UI情報設計 | 画面名、表示項目、空状態、カード、チャート、詳細画面まで定義し、実装ブレを防いでいる。 |
| データ制約 | JRDBの契約、取得タイミング、認証、禁止時間帯が実務要件として組み込まれている。 |
| 機械学習 | 基礎モデル、不確実性推定、コメント数値化、資金配分まで多層構造を想定している。 |
| ロジック管理 | バシンの目を独立した資産として管理し、採用・停止・履歴・成績を追跡する思想がある。 |
| 収支・リスク | 累積回収率、ドローダウン、的中率、資金推移を重視し、予測精度より実利を重視している。 |
| ブランディング | 内部名、外部名、モデル名を分け、プロダクトとしての世界観を形成している。 |
| 汎用化 | 要件定義を「実装・運用・レビューの絶対基準」として設計すれば、他業種にも転用可能。 |
この10軸を統合すると、本要件定義の強さは、判断を曖昧にしないことに集約される。誰が使うのか、何を表示するのか、何を対象外にするのか、どのデータをいつ取るのか、AIの判断をどこまで信じるのか、最終的に誰が採用するのかを明確にすることで、システム開発における最大の敵である「解釈のズレ」を減らしている。
5. 汎用的にどんなプロジェクトでも使えるようにする方法
この要件定義を汎用化するには、競馬固有の言葉を抽象化し、あらゆるプロジェクトに適用できる構造へ変換する必要がある。競馬、JRDB、バシンの目、回収率、買い目という固有要素は、それぞれ、外部データ、意思決定ロジック、成果指標、推奨アクション、運用画面へ置き換えられる。
| 競馬システム固有の概念 | 汎用化した概念 | 他プロジェクトでの例 |
|---|---|---|
| JRDB | 外部データソース | CRM、広告API、POS、会計データ、ECログ。 |
| 過去11年分データ | 学習・分析対象データ | 過去売上、問い合わせ履歴、顧客行動ログ。 |
| バシンの目 | 独立した判断ロジック | 営業スコアリング、在庫補充ルール、広告配信戦略。 |
| 回収率 | 成果KPI | ROI、粗利率、CVR、解約率改善、工数削減率。 |
| 買い目 | 推奨アクション | 架電先、発注数、広告予算、通知対象、改善施策。 |
| 社長承認 | 最終採用判断 | PM承認、経営会議、法務承認、医師確認。 |
| バックテスト | 過去データ検証 | A/Bテスト再現、履歴シミュレーション、予測検証。 |
| ドローダウン | 下振れ・損失リスク | 売上減少、誤判定率、在庫過多、クレーム増加。 |
| Web UI完結 | 非エンジニア運用 | 管理画面、ダッシュボード、ワンクリック処理。 |
汎用化の核心は、要件定義を「機能を書く文書」から、目的、判断、運用、検証、UI、データ制約を一体管理する文書へ拡張することである。特にAIや自動化を含むプロジェクトでは、モデルの精度だけではなく、誰が採用し、いつ実行し、失敗時にどう止め、ユーザーにどう見せるかを定義しなければならない。
6. 世界最高基準にするための汎用テンプレート構造
国際標準に照らすと、要求仕様は事業要求、ステークホルダー要求、システム要求、ソフトウェア要求、運用コンセプトを分けて考えるのが望ましい。1 ただし、実務では文書が分かれすぎると読まれなくなるため、今回の要件定義のように一体型で書く場合は、以下の章立てに整理すると、どんなプロジェクトにも転用しやすい。
| 章 | 目的 | 必須記載項目 |
|---|---|---|
| 1. プロジェクト憲章 | 何のために作るかを固定する | 目的、成功指標、意思決定者、判断原則。 |
| 2. スコープ | 作るもの・作らないものを分ける | インスコープ、アウトオブスコープ、境界条件。 |
| 3. ステークホルダー | 誰が使い、誰が決めるかを定義する | 利用者、管理者、承認者、開発者、権限。 |
| 4. 運用サイクル | 継続的な改善構造を定義する | 入力、処理、出力、採用判断、本番検証。 |
| 5. フェーズ計画 | 段階的な到達点を定義する | フェーズ、到達条件、移行条件、担当者。 |
| 6. 機能要件 | システムが何をするかを定義する | 入力、処理、出力、例外、検証方法。 |
| 7. 画面要件 | ユーザーが何を見るかを定義する | 画面一覧、表示項目、空状態、操作、遷移。 |
| 8. データ要件 | 何を使い、どう保存するかを定義する | データ元、形式、頻度、保存先、品質、権利。 |
| 9. 外部制約 | 規約や契約を要件化する | API制限、利用時間、禁止事項、認証。 |
| 10. AI・分析要件 | 判断ロジックを定義する | 学習データ、モデル、評価指標、採用基準。 |
| 11. ロジック管理 | 複数ルールを資産化する | ID、版数、採用日、成績、停止条件。 |
| 12. 成果・リスク | 価値と下振れを測る | KPI、計算式、ドローダウン、監視指標。 |
| 13. 非機能要件 | 壊れない条件を定義する | 性能、可用性、セキュリティ、監査、保守。 |
| 14. 検証・受入 | 合否基準を作る | テスト、デモ、検査、分析、証跡。 |
| 15. 変更管理 | ブレを管理する | 未決事項、変更履歴、承認フロー。 |
| 16. 命名・ブランド | 表記ゆれを防ぐ | ブランド名、内部名、表示名、禁止表記。 |
この章立てを使えば、競馬システムだけでなく、営業支援AI、広告運用AI、在庫最適化、医療支援、教育アプリ、業務ダッシュボード、SaaS管理画面などにも応用できる。重要なのは、業界固有名詞をそのまま残すのではなく、外部データ、判断ロジック、成果指標、推奨アクション、承認者、運用画面に抽象化することである。
7. 現行要件定義の改善余地
本要件定義は非常に強い文書だが、世界最高基準としてさらに磨くなら、いくつかの補強が必要である。最大の課題は、情報密度が高い一方で、会話ログ的な記述、誤変換、未整理な文章が混ざっているため、第三者がそのまま実装基準として使うには読み解きコストが高いことである。
| 改善領域 | 現状の課題 | 推奨する補強 |
|---|---|---|
| 要求ID | 機能や画面にIDがない | F-001、UI-001、D-001、ML-001のように採番する。 |
| 検証方法 | 合否判定方法が明示されていない箇所がある | Test、Demonstration、Inspection、Analysisを各要件に付与する。 |
| フェーズ移行条件 | フェーズ3への移行基準が曖昧 | 何ができたら次へ進むかを受入条件として定義する。 |
| ロジック採用基準 | 社長判断の根拠が暗黙的 | 最低回収率、検証レース数、最大ドローダウン、停止条件を明文化する。 |
| データ品質 | 欠損、重複、異常値対応が弱い | 取得失敗、欠損補完、再取得、監査ログを定義する。 |
| セキュリティ | 認証情報管理以外が薄い | 権限、ログ、バックアップ、アクセス制御を定義する。 |
| UI図 | 画面要素はあるが図が不足 | 画面遷移図、ワイヤーフレーム、コンポーネント一覧を追加する。 |
| 法務・規約 | JRDB規約への意識はあるが確認証跡が薄い | 規約確認日、該当条項、禁止事項、公開範囲を明記する。 |
| 文章整理 | 誤変換や重複が多い | 「原文ログ」と「正式要件」を分けて清書する。 |
これは弱点というより、次の成熟段階である。現行文書は、プロジェクトオーナーの意図と現場知を失わないための原文として非常に価値がある。次に行うべきは、この原文を削ることではなく、原文の熱量と判断基準を保持したまま、要求ID、表、検証方法、受入基準へ変換することである。
8. 実務レビューで使うチェックリスト
以下は、この要件定義をレビューする際、または他プロジェクトで同じ水準の要件定義を作る際に使えるチェックリストである。要求工学では、良い要求は曖昧でなく、一貫し、完全で、単一で、実現可能で、追跡可能で、検証可能であることが重視される。2
| 観点 | チェック項目 |
|---|---|
| 目的 | プロジェクトの目的は一文で言えるか。成功指標は数値で定義されているか。 |
| スコープ | やることだけでなく、やらないことが明記されているか。 |
| 意思決定 | 最終判断者、承認フロー、例外時判断が明確か。 |
| ユーザー | 利用者、管理者、閲覧者、開発者の権限が分かれているか。 |
| 運用 | いつ、誰が、何を実行し、失敗時にどうするかが書かれているか。 |
| データ | データ取得元、形式、更新頻度、制約、保存先、品質確認が明記されているか。 |
| AI | 学習データ、特徴量、評価指標、再学習、停止条件があるか。 |
| UI | 画面ごとの表示項目、操作、空状態、エラー状態が定義されているか。 |
| 成果 | KPIの計算式、表示場所、更新タイミング、合格基準があるか。 |
| リスク | 外部規約、データ欠損、モデル劣化、誤操作、属人性への対策があるか。 |
| 検証 | 各要件に対してテスト・デモ・検査・分析のいずれかの確認方法があるか。 |
| 変更管理 | 要件変更時の承認者、履歴、影響範囲が管理されるか。 |
9. 本要件定義を他プロジェクトに転用する実践手順
他プロジェクトでこの要件定義を再利用する場合、最初に行うべきことは、業界固有名詞をすべて抽象概念に置き換えることである。次に、抽象概念を新しいプロジェクトの固有名詞で再充填する。この二段階を踏むことで、競馬システムの強みを保ったまま、別領域へ展開できる。
| 手順 | 作業内容 | 成果物 |
|---|---|---|
| 1 | プロジェクト目的を一文で定義する | プロジェクト憲章。 |
| 2 | 成功指標を1〜3個に絞る | KPI定義表。 |
| 3 | インスコープとアウトオブスコープを分ける | スコープ表。 |
| 4 | 誰が見る、押す、承認するかを定義する | 権限表。 |
| 5 | 継続運用サイクルを書く | 業務フロー表。 |
| 6 | 外部データ・API・規約を洗い出す | 外部制約表。 |
| 7 | 推奨ロジックやAI判断を独立資産として定義する | ロジック管理台帳。 |
| 8 | 画面一覧と表示項目を固定する | UI要件表。 |
| 9 | 成果計算とリスク指標を定義する | KPI・リスク指標表。 |
| 10 | 各要件に検証方法と受入条件を付与する | 受入基準表。 |
この流れを使えば、要件定義は「説明資料」ではなく、実装者、AI、レビュー担当、運用者が同じ基準で動くためのプロジェクトOSになる。
10. 最終評価
本要件定義は、文書としては未整理な部分を残しているが、プロジェクトを成功させるための核心要素を非常に多く含んでいる。特に、AIに対して「自由に考えさせる」のではなく、AIを実装補助・分析補助として使いながら、最終的なルールと判断はプロジェクトオーナーが握るという思想は、AI時代の要件定義として非常に実践的である。
世界最高基準と評価できる最大の理由は、要件定義をレビュー・実装・運用・判断の絶対基準にしていることである。多くのプロジェクト失敗は、要件が曖昧で、誰も同じ完成形を見ていないことから起こる。CEUR-WSの論文でも、不十分な設計段階の文書化はバグ、効率低下、プロジェクト失敗につながると指摘されている。3 この要件定義は、まさにその問題を防ぐために、過剰に見えるほど詳細に書かれている。
一方で、次の段階では、原文の熱量を失わずに、要求ID、検証方法、画面遷移図、データ品質ルール、フェーズ移行条件、ロジック採用基準を整理する必要がある。これにより、現在の「強い原文」は、第三者でも実装・レビュー可能な正式な世界最高基準の要件定義書へ進化する。