第五弾:第四弾まで作った先に見えてきた次の段階

第五弾:第四弾まで作った先に見えてきた次の段階

記事
IT・テクノロジー

1. 第五弾は、なぜ始まったのか

第四弾まで作ったところで、スポーツボウリング場構想のシステムは、かなり形になってきました。
でも、私の中には一つだけ引っかかっていることがありました。
中途半端に終わらせたくない。
これが、第五弾を始めた一番の理由です。
第四弾では、会員の成長を支援するために、投球記録やギア情報などを扱えるようにしました。
ところが、その投球記録をどこから取得するのかという部分では、まだ決まっていないことがありました。
実際のボウリング場で使うオートスコアラーについても、どの製品を採用するのかは決まっていません。
Claudeからも、
「どのオートスコアラーを使うのか分からない以上、その部分のコードは作れない」
という判断が出ていました。
それなら、このまま未確定の部分を残して終わるのではなく、
「自分たちのシステム側で、必要なデータを扱えるようにできないのか?」
と考えるようになりました。
これが第五弾につながっていきます。

2. 第四弾を作って見えてきた「次の問題」

第四弾で作ったのは、単なる会員管理システムではありません。
会員の投球記録、ギア、レベル、練習メニュー、アドバイスなどを扱い、会員がどう成長していくのかを支援する仕組みです。
そこで改めて考えると、
会員の成長を支援するには、投球データが重要になる。
ということが見えてきました。
誰が投げたのか。
どのレーンで投げたのか。
どんな結果だったのか。
どのようなピンが残ったのか。
そうしたデータが蓄積されれば、単に「何点だった」という結果だけではなく、その人の投球傾向や苦手なパターンを分析できます。
しかし、そのデータを実際のボウリング場でどう取得するのか。
ここが、まだ残っていました。
既存のオートスコアラーを使うのであれば、その機器からどのようなデータを取得できるのか、どのような形式で受け取れるのかによって、システム側の実装も変わってきます。
そして、まだ実際の店舗も、採用するオートスコアラーも決まっていません。
ここでまた、
「じゃあ、どうする?」
となりました。

3. 「自前のオートスコアラーを作ればいいんじゃない?」

そこで、私が思いついたのが、
「自前のオートスコアラーを作ればいいんじゃない?」
ということでした。
ここでいう「自前」は、オートスコアラーの実機そのものを作るという意味ではありません。
テレビ画面やセンサーなどのハードウェアを自作するのではなく、既存の市販オートスコアラーに完全に依存せず、スポーツボウリング場のシステム側で必要な投球データを扱う「中身」を持つ、という意味です。
私が欲しかったのは、第四弾で必要としていた投球データを、自分たちのシステムにつなげられる仕組みでした。
そして、もしそれができれば、
第三弾、第四弾、第五弾までのシステムが、バラバラではなく一つにつながる。
そう思いました。
最初から「第五弾を作ろう」と考えていたわけではありません。
「中途半端に終わらせたくない」というところから始まり、
「必要なデータが取れればいい」
「実装できないと言われていた部分も進められるのではないか」
と考えていった結果、第五弾という形になりました。

4. 第五弾として何を作ったのか

第五弾では、投球データを活用して、スポーツボウラーの成長を支援するための分析エンジンを実装しました。
ここで少し、私自身も認識を整理する必要がありました。
私は「自前のオートスコアラーを作る」というつもりで進めていましたが、実際に出来上がったコードを確認すると、実装されていたのは実機そのものではありません。
第四弾までに蓄積された投球記録を受け取り、それを分析するソフトウェア側の仕組みでした。
例えば、
- 残ったピンのパターンを構造化する
- スプリットやタップなどを判定する
- フレームをストライク、スペア、タップ、スプリットなどに分類する
- ギアごとの成績を比較する
- レーンごとの成績傾向を集計する
- 失点要因を分析する
といった処理を行います。
つまり第五弾は、
「点数を計算する」だけではなく、「その結果から何が分かるのか」を扱う仕組み
として実装されました。

5. 実際に実装されたもの

第五弾の実装では、第四弾までに蓄積された投球記録を、さらに細かく分析できるようにしました。
例えば、残りピンの状態をビットマスクとして構造化することで、単純な「何本残った」という情報だけではなく、**どのピンが残ったのか**を扱えるようにしています。
そのデータから、
- スプリット
- タップ
- オープン
- ストライク
- スペア
など、フレームごとの結果を分類できます。
さらに、投球記録だけを見るのではなく、
「どのギアを使ったときに、どのような成績になったのか」
「レーンによって成績に傾向があるのか」
といった分析にもつなげられます。
これは、第四弾で作った会員・ギア・投球記録というデータを、単に保存するだけで終わらせず、**会員の成長支援に利用するための分析レイヤー**です。
一方で、実際のボウリング場に設置されたオートスコアラーから、生のCSVを取り込む部分については、まだ実装していません。
現在のシステムでは、オートスコアラーから受け取ったデータについて、すでにプレイヤーが特定された構造化データを分析するところまでを担当します。
実機からの生データを読み込み、レーン番号や時間帯などから「この投球は誰のものか」を自動的に特定する部分は、採用するオートスコアラーが決まっていないため、今後の課題として残っています。
ここは、今回の開発であえて決めなかった部分です。

6. AIとの役割分担

第五弾では、AIとの役割分担も少し変わりました。
第一弾から第三弾までは、私自身が「こういうシステムにしたい」という運用や構想をかなり決めて、それをAIと一緒に設計してきました。
第三弾では、主にClaudeを使って実装を進めていました。
ところが、Claudeの無料版では途中から利用制限がかかりやすくなり、実装を止めずに進めるため、Microsoft Copilotにも実装をしてもらうようにしました。
第四弾ではGeminiにも実装を任せてみましたが、実装を進める中で、自分の考えている設計意図を十分に共有しながらコードを作ってもらうことの難しさも感じました。
こうした経験を重ねる中で、それぞれのAIに得意・不得意があることも分かってきました。
そこで第五弾では、AIとの役割を意識して分けながら開発を進めました。
Claudeは実装。
ChatGPTはレビューや整理。
私は、スポーツボウリング場としてどうしたいのかを考えて判断する。
私はコードの細かいところまですべて理解しているわけではありません。
だからこそ、AIが作ったコードをただ受け取るのではなく、必要なところでは別のAIにも確認してもらう。
第五弾は、システムそのものだけではなく、AIと一緒に開発する方法についても、これまでの経験が反映された開発になりました。

7. 第五弾まで作って見えてきたスポーツボウリング場構想

ここまで作って、一度最初に戻ってみました。
第一弾では、利用者が予約する仕組みを作りました。
第二弾では、予約・利用の幅を広げ、初心者教室も扱えるようにしました。
第三弾では、店舗を運営する側のシステムへ広げました。
第四弾では、会員を管理するだけではなく、会員の成長を支援する仕組みを作りました。
そして第五弾では、そのために蓄積された投球データを、さらに活用するところまで進みました。
最初から全部を決めていたわけではありません。
一つ作ると、次に必要なものが見えてくる。
その繰り返しでした。
振り返ってみると、
予約する人
ボウリングを始める人
店舗を利用する会員
練習して成長していくスポーツボウラー
という流れが、少しずつ一つの構想の中につながってきました。
だからこそ、最初から「スポーツボウリング場」と呼んでいたことにも、改めて意味を感じています。
単にボウリングをする場所ではなく、
ボウリングをスポーツとして続け、成長していける場所。
そのための仕組みを、システムの側から一つずつ作ってきたのだと思います。

8. システムを作って終わり、ではなかった

第五弾まで作ってみて、一つ分かったことがあります。
システムは、機能を追加していけば完成するものだと思っていました。
でも実際には、一つ作ったからこそ、次に必要なものが見えてくる
第四弾を作ったから、投球データをもっと活用したくなった。
その結果として第五弾が生まれました。
そして第五弾まで作ったことで、今度は「実際の店舗で、このシステムをどう使うのか」という視点も、さらに具体的になりました。
システムの中だけで考えていたときには見えなかったことが、開発を進めることで少しずつ見えてきます。
それは、最初に作った設計図どおりに進むというより、
作りながら、構想そのものが育っていく
という感覚に近いものでした。

9. まだ決まっていないこともある

もちろん、第五弾まで作ったからといって、すべてが完成したわけではありません。
実際のボウリング場には、オートスコアラーのようなハードウェアがあります。
どの機器を採用するのか。
そこからどのようなデータを受け取れるのか。
そのデータをどのようにシステムへ取り込むのか。
こうした部分は、実際に店舗を作る段階で決める必要があります。
今回の開発では、まだ実際の店舗も、採用する機器も決まっていません。
そのため、特定のオートスコアラーを前提にした実装は行っていません。
それでも、第四弾までに必要なデータを扱う土台と、そのデータを分析する第五弾の仕組みは作ることができました。
「何を採用するか決まっていないから、何もできない」のではなく、
決まっていない部分には依存せず、今できるところまで作る。
今回の開発では、そんな判断も経験しました。

10. そして、第三弾拡張機能へ

第五弾まで終わったら、スポーツボウリング場構想のシステム開発は終了―。
実は、そうではありません。
第四弾が終わった時点で、以前から予定していた**第三弾拡張機能**に戻ることが決まっていました。
開発の流れは、
第三弾 → 第四弾 → 第五弾 → 第三弾拡張機能
となりました。
一度作った第三弾に戻って、店舗運営の仕組みをさらに拡張していきます。
第四弾で会員側の仕組みを広げ、第五弾で投球データの活用を進めたあとだからこそ、改めて第三弾を見ると、追加したいものが見えてきました。
一度完成させたシステムに戻り、後から機能を追加する。
これは、最初からすべてを完璧に設計して作るのとは違う開発です。
そして、この第三弾拡張機能の開発を通して、また新しい発見がありました。
スポーツボウリング場構想は、まだ続きます。🎳

📝 業務自動化にご興味があれば、まずは1ファイルからお試しいただける「お試し版(3,000円)」からどうぞ。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す