非エンジニアのPMが、AIだけでMLB戦力分析アプリを作るまで #1

このブログでは各選手のデータ分析を中心に記事を書いているのですが、先日、その延長線上で、1つのWebアプリを作ってみました。

MLB30球団の戦力を、毎日自動で数値化して可視化するアプリです。

筆者は非エンジニアでコードは書けません。
そういう人間がどうやって開発を進めて行ったかという記録を、シリーズ記事として何回かに分けて書いていきます。

第1回となる今回は、きっかけや動機、開発期間など全体像に触れていきます。

目次

Surprising Teamsが非常に多い2026シーズン

今年ほど開幕前の予想順位が当たっていないシーズンも珍しいのではないかというのが筆者の実感です。

  • プロスペクトがようやくMLBの舞台に揃ってきたと言われていたWhite Soxが、執筆時点で、AL中地区首位
  • 投手ローテーションが崩れ今年は厳しいと思われていたRaysがYankeesとAL東地区首位争い
  • 再建期に入ったと言われていたCardinalsがNL中地区上位争い
  • PiratesやRedsも5割近辺で、Playoff枠をまだまだ狙える位置に
  • Mariners、Astrosなどが所属するAL西地区は首位ですら勝率5割(Athleticsの若手野手陣にかなり勢いがあることは戦前からわかっていたものの)
  • 各地区上位を今年は窺えると思っていたMets、Red Sox、Giantsが地区最下位近辺を低迷

もちろん開幕前の予想は難しいものなのですが、ここまでサプライズが多いと「一般的に言われているチームに戦力とは一体何なのか?」と考えてしまいます。

MLBは、言わずもがな、データが非常に豊富です。
MLB.com、Statcast、Fangraph、Baseball Referenceなどのデータサイトは充実し、打球速度、守備範囲、配球、その他あらゆるものが数値化されています。

時間さえあれば、選手の個人成績は、いくらでも探索し続けられます。

ところが、「チームの戦力」ということになると、各チームのDepthチャートなどあるにはあるのですが、

  • 根拠のあるチーム戦力分析
  • ILやトレードなど発生する中でのシーズン中の戦力分析

ということを精緻に可視化しているものは見当たらないのですよね。

順位表は「結果」であって、チームの「実力」ではありません。
接戦をたまたま勝ち拾っているチームもあれば、実力はあるのに不運で負けが込んでいるチームもあります。

こういう実情をふまえ、打撃・投手・守備・走塁の各チームの戦力を、根拠のある数値から導き出せるツールが欲しくなってきたわけです。

だったら、開発してみよう

求めているツールがないのであれば、自分で開発すればよいのではないか。

以前から、データについては各サイトからAPIが提供されているということは知っていました。
ですが、いかんせん、私にはコーディングの能力がなかったので、自分で開発という発想は非現実的なものでした。

筆者は、会社ではPMという職種で、仕様を考えたり、ステークホルダーをつないだりはするものの、コードをゼロから書き上げる力は、正直ありません。

しかしながら、AIによるコーディングを現実的な手段として選択できる時代になりました。
巷でも、いわゆる「バイブコーディング」と呼ばれるものが、個人開発の世界で急速に広がっています。

ということで、実際にどこまでできるのかは半信半疑でしたが、とにかく手を動かしてみることにしました。

「バイブコーディング」の正確な定義は、筆者もつかみかねているところはあるのですが(それこそvibeです)、開発にあたって、「設計や技術選定、データ構造、セキュリティなど、開発における判断は筆者が行う」という基準だけは設けていました。

PMという職業柄もあったのですが、このやり方は、後から振り返ると大きな意味を持っていました。

開発で利用したAI

実際、開発するにあたって、利用したAIツールは下記の通りです。

  • Claude Chat:開発における方針決めの相談相手です。主に、どういう仕様・設計にするかを、対話していました。開発における基本的な質問をぶつけても、全肯定で説明してくれます(笑)。
  • Claude Code(ターミナル版):実装担当です。実際にコードを書き、ファイルを編集し、コマンドを実行していきます。Claude Chatと対話をして指示内容を作成し、それに沿って動いてもらう、という流れです。
  • Codex:単一のAIで進めた時の精度は80%程度かなと考えていたため、コードレビューの役割が欲しいと思い、実装フェーズから加入してもらいました。Claude Codeが書いたコードに問題がないかをチェックしてもらっていましたが、実際、Codexのおかげで思い込みやミスに気づける場面が何度もありました。

上記の使い分けや活躍シーンは、このシリーズの後半で詳しく書く予定です。

役割の異なる3つのAIをチームとして活用したという点を、ここでは伝えさせてください。

Webアプリ完成

そうして完成したのが、MLB Power Rankings アプリです。

30球団それぞれの戦力を、打撃・先発・救援・守備・走塁の5つの軸で数値化し、チームの総合力として可視化しています(データは毎日自動更新)。

開発してみて感じたこと

コーディングをAI側に任せられるので、人間側として重要なのは、サービス思想・設計の研鑽、AIと相談した際の方針に対する判断力、成果物のテストと確認時に感じた違和感の言語化だと感じました。

今担当しているPM業務と繋がっているところだったので、自分の経験をそのまま活かせたとも感じています。

この気づきは、シリーズを通して繰り返し出てくるテーマになります。

アプリで使っている「Run Value」という指標については、別の記事で解説しています。
あわせて読んでいただくと、このアプリが何を見せているのかを立体的にご理解いただけると思います。

開発の実情

このWebアプリの制作期間や環境について、記録を残しておきます。

  • 制作期間:2026年5月中旬〜6月上旬
    • 平日は本業があるため、ほぼ手をつけられず。
    • 土日にそれぞれ数時間ずつ進めて、上記の期間に収まっています。
    • 途中、海外出張で1週間ほど中断しています。
  • 使用PC
    • 機種:Dell Inspiron 14
    • 構成:Windows 11、Core i5、メモリ8GB、ストレージ256GB
    • エントリーモデル〜スタンダードモデル程度のスペックで、正直、この構成で、Claude、Claude Code、Codex、Vercel、GitHubを動かすのは、かなり負荷が高く、開発を再開時やAI相談時に、Claudeの画面が止まることもしばしばありました。
    • これから同じことを試す方には、せめてメモリが16GBあるマシンをおすすめします。
  • AIプラン(※2026年5月〜6月時点):
    • 相談・実装:Claude Proプラン
      • Claude ChatとClaude Codeを両方動かしていると、2〜3時間ほどで利用上限に届きます。金銭的に余裕があれば、上位のMaxプランのほうが快適だと思います。
    • レビュー:Codex(ChatGPT Plusプラン)
      • 上限に届くことはなく、一般的な使い方であれば、Plusで足りるというのが実感です。
  • ドキュメント管理
    • 企画関連をNotion、開発関連をGitHubに、それぞれMarkdown形式で残しました。

次回予告

今回は全体像について記載しました。次回は企画と設計の話です。

  • 数あるデータ指標の中から、なぜ「Run Value」を選んだのか。
  • Next.jsやSupabaseといった技術を、非エンジニアの筆者がどうやって選定したのか。
  • AIはどこまで信用できるのか。

「何を作るか」を決めていく過程を、具体的に書いていきます。

よろしければシェアお願いします!
  • URLをコピーしました!
目次