危険な交配を「安全です」と表示していました〈和牛の近交係数アプリを作って2週間、やらかした失敗の記録〉
2026-09-04 配信|川上牧場 酪農データバンク
配信の全文
島根県出雲市で牛を飼っている川上です。
今日は、あまり格好のいい話ではありません。
8月の終わりから、僕は「和牛交配チェック」という無料のWebアプリを作っています。
種雄牛の名前と、自分の牧場の繁殖牛の血統を入れると、生まれてくる子牛の近交係数を計算できるアプリです。
公開してから約2週間。
ありがたいことに、現在39牧場に登録していただくところまで来ました。
種雄牛の血統データも655頭まで増えています。
普通なら、
「39牧場に使ってもらいました!」
「こんな機能を追加しました!」
という話を書くところだと思います。
でも今日は逆です。
この2週間で、
「これは本当にまずかった」
と思った失敗を、全部書いておこうと思います。
その中には、近交係数を実際より低く計算してしまう可能性がある、かなり危険なミスもありました。
便利なものを作るつもりが、使う人に間違った安心を与える道具になりかけていた。
正直、気づいたときはかなり怖かったです。
ただ、この2週間で一番学んだのは、
安全な道具とは、絶対に間違えない道具ではなく、間違いを見つけ、直し続けられる道具なのかもしれない。
ということでした。
今日は、その記録です。
そもそも、なぜ「和牛交配チェック」を作ったのか
和牛の種付けを考えていると、
「この組み合わせ、血が濃くなっていないかな?」
と気になることがあります。
特に最近は、人気のある種雄牛に利用が集中します。
その種雄牛の娘が繁殖牛として残り、数年後、その牛にまた人気種雄牛を交配する。
さらに次の世代でも、別の場所から同じ祖先が入ってくる。
血統表をぱっと見ただけでは気づきにくくても、何代かさかのぼると同じ牛が何度も出てくることがあります。
そこで使われる数字の一つが、近交係数です。
たとえば近交係数12.5%は、血縁関係だけで単純化すると、祖父と孫のような非常に近い血縁同士の交配で生じる水準です。
数字だけなら、
「12.5%」
で終わります。
でも、僕は数字だけでは現場では使いにくいと思っています。
大切なのは、
その数字が、どれくらい血が重なっている状態なのか。
そこまで分かって初めて、交配を考える材料になるからです。
ところが、近交係数を自分で計算しようとすると大変です。
父方の血統をさかのぼる。
母方もさかのぼる。
共通祖先を探す。
その祖先が何代前なのか確認する。
さらに複数の経路があれば、それぞれ計算する。
牛舎で種付けを考えているときに、毎回これをやるのは現実的ではありません。
だったら、
繁殖牛を登録して、種雄牛を選ぶだけで計算できればいい。
スマホを開いて数秒で確認できれば、交配を考えるときの一つの判断材料になる。
それが「和牛交配チェック」を作り始めた理由でした。
ところが。
作って2週間。
「計算式が動いたから完成」では全然ありませんでした。
むしろ、そこからが始まりでした。
失敗① 一番怖かった。「同じ牛」がデータベースに2頭いた
最初の失敗が、一番怖かったものです。
「飛騨白清」という岐阜県の種雄牛がいます。
この牛が、僕のデータベースの中に2頭存在していました。
なぜそんなことが起きたのか。
原因は「ヒダ」の漢字でした。
飛騨白清
と、
飛驒白清
資料によって、新字体と旧字体の表記が違っていたのです。
人間が見れば、
「同じ牛だよね」
と分かります。
でもコンピューターから見れば別の文字です。
そのため、アプリは
「飛騨白清」
と
「飛驒白清」
を、別々の牛として認識していました。
これが、近交係数を計算するアプリではかなり怖い。
なぜ「漢字一文字」が危険なのか
近交係数を計算するときには、父方と母方の血統をたどり、
同じ祖先が両方に存在しているか
を探します。
ところが、
父方では「飛騨白清」
母方では「飛驒白清」
と登録されていたらどうなるか。
人間には同じ牛でも、コンピューターには別の牛です。
つまり、
本当は共通祖先なのに、共通祖先として検出できない。
その結果、近交係数が本来より低く計算される可能性があります。
言い換えると、
本当は血が重なっているのに、
「それほど重なっていません」
と表示してしまう。
場合によっては、注意すべき交配に対して、安心できるような数字を出してしまうわけです。
便利なアプリを作ったつもりが、
間違った安心を与える道具になる。
気づいたときは、本当に血の気が引きました。
すぐに2頭のデータを統合し、岐阜県や鳥取県の公式資料で使われている「飛騨」の表記に統一しました。
ただ、もっと怖いことがあります。
この間違いは、
検査して見つけたわけではありません。
別の作業をしている途中で、たまたま気づいたのです。
もし気づかなかったら。
もし別の種雄牛にも同じ問題があったら。
そう考えると、今でも怖いです。
そしてここで初めて、
「計算式が正しいだけでは、安全なアプリにはならない」
ということに気づきました。
入力されている血統データそのものが正しくなければ、どれだけ計算ロジックが正確でも、出てくる答えは間違います。
失敗② 一番恥ずかしかった。「押すと100%失敗するボタン」
次は、危険というより完全に僕のミスです。
アプリを作った当初、画面のかなり目立つ場所に、
「登録証を撮影してアップロード」
というボタンを置いていました。
和牛の血統登録証をスマホで撮影する。
AIがそこから血統を読み取る。
繁殖牛が自動登録される。
……という機能です。
これが使えれば、牛を何十頭も飼っている牧場でも登録がかなり楽になります。
だから僕も、
「これは便利だろう」
と思っていました。
ところがこのボタン。
押すと必ず失敗していました。
かなりの確率ではありません。
ほぼでもありません。
100%です。
裏側の設定が完成していなかったのですが、その状態で一番目立つところにボタンを置いていました。
しかも僕自身、しばらく気づいていませんでした。
27牧場中、15牧場が「牛0頭」だった
あとから利用状況を確認していて、変なことに気づきました。
当時、27牧場が登録してくださっていました。
ところが、そのうち15牧場は、
繁殖牛を1頭も登録していなかった。
半分以上です。
もちろん理由を一人ひとり聞いたわけではないので断定はできません。
ただ、かなりの方が、
・アプリに登録する
・一番目立つ「登録証を撮影」ボタンを押す
・エラーになる
・「まだ使えないアプリなんだな」と思う
・閉じる
という流れになった可能性があります。
せっかく興味を持って登録してくださったのに、
入口に自分で落とし穴を掘っていました。
これはかなり反省しました。
「いつか実装したい便利な機能」を目立たせるより、
今、確実に使える機能を分かりやすくする。
当たり前なのですが、作っている側になると意外と見えなくなります。
現在は撮影ボタンをいったん外しました。
その代わり、手入力をできるだけ簡単にしています。
繁殖牛なら、
・父
・母の父
・母の母の父
この3つを入力すれば、まず計算できます。
完璧な機能をたくさん並べるより、
牛舎で本当に使える最低限の機能を、ちゃんと動かす。
今はそちらを優先しています。
失敗③ 利用者さんの一言から「31件」の血統ミスが見つかった
そして、つい先日のことです。
アプリのご意見フォームに、一件の報告が届きました。
「諒太郎の血統が違うようです」
諒太郎。
和牛の繁殖をされている方なら、ご存じの方も多いと思います。
勝忠平の子です。
確認してみると、本当に間違っていました。
僕のデータベースでは、諒太郎の父が安福久になっていたのです。
明らかにおかしい。
そこで履歴をたどっていくと、原因が見えてきました。
「母」の欄に種雄牛が入っていた
ある繁殖牛を登録するとき、
「母」
を入力する欄に、
母の父である種雄牛
が入力されていました。
血統登録証を見ながら入力していたら、これは起こりうる間違いだと思います。
入力した方を責める話ではありません。
問題は、
間違って入力できてしまう設計になっていたこと。
です。
たとえば「母」の欄に安福久と入力すると、
データ上では、
母親そのものが安福久
という血統が出来上がります。
もちろん安福久は種雄牛です。
本来なら、その時点でアプリ側が、
「その入力、おかしくないですか?」
と止めるべきでした。
ところが、そのチェックがありませんでした。
さらに困るのは、この間違いが一頭だけで終わらないことです。
間違った血統が別の牛の祖先として参照されると、その先のデータにも影響します。
調べていった結果、
同じ原因による誤りが31件見つかりました。
公的な資料と照合しながら、すべて修正しました。
諒太郎の正しい血統は、
父:勝忠平
母の父:安福久
母の母の父:平茂勝
です。
そして同じことが起きないように、現在は「母」の欄に種雄牛の名前を入れようとすると、
「それは母の父の欄ではありませんか?」
と分かるようにしました。
この一件で、一つ諦めたことがあります
この報告をもらって、僕は一つ諦めました。
「自分ひとりで、完璧な血統データベースを作る」
という考えです。
655頭の種雄牛がいます。
それぞれに父がいて、母がいて、母の父がいて、そのまた祖先がいます。
資料によって表記が違うこともあります。
古い牛になれば資料を探すこと自体が難しくなります。
一人ですべて確認して、
「絶対に間違いありません」
と言える状態にする。
たぶん無理です。
でも、
39牧場の人が使って、
「この血統、おかしくない?」
と気づいた人が教えてくれる。
そのたびに公的資料を確認して直す。
こちらの方が、結果として強いデータベースになるのではないかと思い始めています。
今回、諒太郎の間違いを報告してくださった方には、本当に感謝しています。
一件の報告から31件の修正につながりました。
これは、
利用者が単なる「ユーザー」ではなく、データベースを一緒に育ててくれる存在になる
ということでもあります。
この2週間で分かった「安全な交配ツール」に必要なこと
失敗ばかり書きましたが、ここまでで僕なりに大事だと思うことも見えてきました。
大きく3つあります。
① 数字を「意味」に翻訳する
僕は、
「近交係数12.5%」
だけを表示して終わりにはしたくありません。
数字そのものは重要です。
でも現場で知りたいのは、
その数字をどう受け止めればいいのか。
です。
だから、
「この水準は、血縁関係でたとえるとどの程度なのか」
「どの祖先が重なっているのか」
まで、できるだけ分かるようにしたいと思っています。
僕自身、牛群検定でもそうですが、
数字は、判断できて初めて価値になる
と思っています。
数字を増やすことより、
数字を読めるようにする。
これは今後も大事にしたい部分です。
② 牛舎で片手で使えること
もう一つは、現場です。
パソコンの前で使いやすいアプリを作っても意味がありません。
実際に使う場所は牛舎です。
スマホを片手で持っている。
反対の手は汚れている。
手袋をしているかもしれない。
牛を見ながら操作する。
そんな状況です。
だから、
・ボタンは大きくする
・結果の数字も大きくする
・入力項目はできるだけ減らす
・夜は画面を暗くできるようにする
といった部分を意識しています。
機能を増やすより、
現場で迷わないこと。
農業のアプリでは、こっちの方が重要なのかもしれません。
③ 出典のない数字を増やさない
三つ目は、今回の失敗を経験して、さらに強く意識するようになりました。
データには出典を残す。
市場データを掲載するときには、
「どこの県なのか」
「いつの公表資料なのか」
を明記する。
種雄牛の血統を確認したときにも、
「どの資料で確認したのか」
をできるだけ記録に残す。
なぜなら、このアプリに表示された数字を見て、
実際の交配を考える人がいるからです。
Webサイトの誤字なら、直せば済むこともあります。
でも交配は違います。
一度種付けをすれば、その結果は約10か月後に子牛として生まれてきます。
だから、
「たぶん合っている」
で出してはいけない数字があります。
そして、もう一つ。UIも「安全性」の一部だった
今回、自分でも意外だった学びがあります。
最初は、
安全なアプリ=計算が正しいアプリ
だと思っていました。
でも違いました。
「母」の欄に種雄牛を入力できてしまう。
壊れているボタンが一番目立つ。
表記揺れを別の牛として登録できてしまう。
これは計算式の問題ではありません。
全部、
設計の問題です。
つまり、
正しい計算式だけでは、安全な道具にはならない。
入力ミスを起こしにくくする。
おかしなデータを止める。
間違いを報告できる。
どの資料を使ったか追える。
そういう仕組み全部を含めて、安全性なのだと分かりました。
これは今回、僕の中でかなり大きな発見でした。
現在の「和牛交配チェック」
この記事を書いている時点で、
39牧場
に使っていただいています。
登録している種雄牛は、
655頭。
そのうち約96%は、
母の母の父まで
血統データが入っています。
そして今日、この655頭の血統を誰でも確認できるページも公開しました。
ログインは必要ありません。
「あの種雄牛の母の父、なんだったかな?」
というときにも使えます。
名前から検索できます。
▶ 種雄牛の血統一覧
種雄牛の血統一覧(655頭)|和牛交配チェック
黒毛和種の種雄牛655頭の血統一覧。名前で検索できます。父・母の父・母の母の父まで、種雄牛案内や各県の公式資料をもとに一頭
blackwagyucalc.vercel.app
そして、自分の繁殖牛との近交係数を計算したい方はこちらです。
牧場名とパスワードを決めれば利用できます。
▶ 和牛交配チェック
和牛交配チェック
黒毛和牛の種雄牛600頭以上の血統データベース。父・母の父・母の母の父まで収録。交配前の近交係数もその場で計算できます。無
blackwagyucalc.vercel.app
利用は無料です。
月935円のサーバー代を、メンバーシップで支えてもらっています
このアプリのサーバー代は、現在月935円です。
金額だけ見れば、それほど大きくありません。
でも個人的には、ここにも少し意味を感じています。
このnoteのメンバーシップで応援してくださる方がいて、その一部でサーバーを動かす。
僕が作ったものを、和牛農家さんが無料で使う。
そこから、
「ここ間違っていますよ」
という情報が返ってくる。
それを直すことで、次に使う人の役に立つ。
小さいですが、
知識と応援が循環する仕組み
になり始めています。
僕は、この形がけっこう好きです。
だから今のところ、このアプリ自体を有料化して稼ごうとはあまり考えていません。
まずは、
「種付けを考えるとき、血の重なりを簡単に確認できる」
という環境を作ること。
そちらを優先したいと思っています。
情報|川上牧場🐮メンバーシップ|川上哲也
■どんなメンバーシップか 川上牧場を応援していただける方向けのメンバーシップです。参加費はすべて活動費に当てさせていただき
note.com
まだβ版です。だから、数字を盲信しないでください
ここは、とても大事なので書いておきます。
「和牛交配チェック」は、まだβ版です。
今回紹介したように、公開後も間違いが見つかっています。
たぶん、
まだどこかに間違いがあります。
ですので、特に重要な交配を決定するときには、アプリの数字だけですべてを決めるのではなく、登録証や公的な血統資料などとあわせて確認してください。
そして、
「この種雄牛の血統、おかしくない?」
「この数字、変じゃない?」
と思ったときは、ぜひ教えてください。
現在は、種雄牛の画面からそのまま報告できるようにしています。
間違いを見つけてもらえることは、
僕にとって迷惑ではありません。
むしろ、一番ありがたいことです。
「間違えないこと」より、「間違いが残り続けないこと」
この2週間、かなりいろいろ失敗しました。
同じ牛を2頭登録しました。
押したら必ず失敗するボタンを、一番目立つ場所に置きました。
入力ミスから31件の血統データを壊しました。
文章にすると、なかなかひどいですね。
でも作らなければ、この失敗もありませんでした。
そして使ってもらわなければ、たぶん気づけませんでした。
最初から655頭の血統を完璧に揃えて、
すべての機能を完成させ、
すべてのバグを消して、
それから公開する。
そんなことを考えていたら、おそらく今でも公開できていなかったと思います。
だから、
「未完成でも出してみる」
こと自体は、間違っていなかったと思っています。
ただし。
未完成で出すなら、
間違いを発見できる仕組みと、直せる仕組みを一緒に持たなければいけない。
今回、一番学んだのはそこでした。
完璧なデータベースを作ることは難しい。
完璧なアプリを最初から作ることも難しい。
でも、
間違いを報告できる。
出典を確認できる。
おかしな入力を減らす。
見つかった問題を直す。
その繰り返しならできます。
安全性というのは、
「間違いが存在しない状態」ではなく、
「間違いが長く残り続けない仕組み」
なのかもしれません。
これはアプリだけではなく、牧場経営にも少し似ています。
牛を飼っていても、
絶対に病気を出さない。
絶対に繁殖を失敗しない。
絶対に判断を間違えない。
そんなことは無理です。
だからこそ、
異変に早く気づく。
記録する。
原因を考える。
やり方を変える。
次に同じ失敗が起こりにくくする。
そうやって牧場も少しずつ良くなっていきます。
アプリを作っているはずなのに、
結局、牛を飼うことと同じようなことをやっているなと思います。
最後に
今日は、成功した話ではなく、失敗した話を書きました。
正直、
「危険な交配を安全だと判断しかねないバグがありました」
なんて、自分から書かない方がいいのかもしれません。
でも僕は、
失敗を隠すより、
どう失敗して、どう直したのか
を残しておいた方が、この先誰かの役に立つと思っています。
そして、このアプリを使ってくださっている皆さんと一緒に、もっと使えるものにしていければと思っています。
もし血統一覧を見て、
「あれ?」
と思う牛を見つけたら、ぜひ教えてください。
その一件が、今回の諒太郎のように、何十件もの修正につながるかもしれません。
まだ完成していません。
たぶん、これからも何度も失敗します。
でも、その失敗ごと公開しながら、
和牛の交配を考えるときに、誰でも簡単に血の重なりを確認できる環境
を作っていきたいと思っています。
音声でも、この2週間の話をしています。
牛舎仕事や運転中などに、よければどうぞ。
🎧 音声配信はこちら
〈川上牧場/島根県出雲市〉
今回の失敗から残しておきたいこと
・計算式が正しくても、元データが間違えば答えは間違う
・表記揺れ一つでも、近交係数の計算に影響する
・UIの作り方もデータの正確性に関わる
・入力ミスは「利用者のミス」ではなく、設計で減らせる
・出典を残すことは、数字への責任を残すこと
・利用者からの指摘は、データベースを強くする
・完璧になるまで公開しないより、修正できる仕組みを持って公開する
・安全性とは「間違えないこと」だけでなく、「間違いが残り続けないこと」
そして何より、
現場で使われる道具は、作った瞬間ではなく、使われ始めてから育つ。
この2週間で、それを嫌というほど学びました。