$30 off During Our Annual Pro Sale. View Details »

水産業の辛いポイント、Railsがいてくれたから乗り越えられた

 水産業の辛いポイント、Railsがいてくれたから乗り越えられた

普段何気なく食べている魚の裏側の流通の難しさと
そこに入り込みモデル構築していったプロセスでの気づき、
学びをお話しします

2022/08/25 開催 【Railsエンジニア集合!】身近だけど知らないtoBサービスの裏側をのぞく
https://estie.connpass.com/event/255928/

Sankyo Toshio

August 26, 2022
Tweet

More Decks by Sankyo Toshio

Other Decks in Business

Transcript

  1. 水産業の辛いポイント、 Railsがいてくれたから乗り越えられた 株式会社ウーオ PM 三京俊雄

  2. 自己紹介 三京俊雄(さんきょう としお) @3to_day 2020年にウーオに2人目のエンジニアとして入社 現在はPM兼エンジニア 元々はPythonを使った組み込み開発や、 サーバレスでの開発が中心 RailsはUUUOで初めて触る UUUOで魚の捌き方習得中

    好きな魚はイサキ
  3. 本日お話しすること 普段何気なく食べている魚の裏側の流通の難しさと そこに入り込みモデル構築していったプロセスでの気づき、 学びをお話しします!

  4. 水産業の辛いポイント 資料:農林水産省「漁業センサス」(平成15(2003)年、20(2008)年及び25(2013)年)及び「漁業就業動向調査」(平成26(2014)~29(2017)年) 注: 「漁業就業者」とは、満15歳以上で過去1年間に漁業の海上作業に30日以上従事した者。 平成20(2008)年以降は、雇い主である漁業経営体の側から調査を行ったため、これまでは含まれなかった非沿海市町村に居住している者を含んでおり、平成15(2003)年とは連続しない。 https://www.jfa.maff.go.jp/j/kikaku/wpaper/h30_h/trend/1/t1_2_2_1.html 漁業就業者数の推移

  5. • 圧倒的な人手不足・リテラシーの壁 ◦ ありきたりだがやはり辛い • 商品化〜販売するまでのリードタイムが短い • 産地固有の名称・規格。定型などない • 在庫リスク問題

    • 買い手ごとに変わる送料・手数料 • 不確実な情報のやりとり ◦ 読めない相場 ◦ 読めない水揚げ量 ◦ 水揚げはあってもその規格があるかは不明 • 品質の期待値調整 ◦ 全く同じ商品は一つとしてない • 不透明な市場間物流 ◦ 本当に明日届くのか? ◦ 市場外物流の難しさ • 消費者の魚離れ • 需要予測の難しさ • 飲食店、個人向けのロット感の問題 • 共有されない技術・経験・データ • 新規参入の難しさ • 産地の販売タイミングと消費地の購入タイミングの違い • 売り方に経験・技術が必要 • ・・・ 水産業の辛いポイント
  6. • 圧倒的な人手不足・リテラシーの壁 ◦ ありきたりだがやはり辛い • 商品化〜販売するまでのリードタイムが短い • 産地固有の名称・規格。定型などない • 在庫リスク問題

    • 買い手ごとに変わる送料・手数料 • 不確実な情報のやりとり ◦ 読めない相場 ◦ 読めない水揚げ量 ◦ 水揚げはあってもその規格があるかは不明 • 品質の期待値調整 ◦ 全く同じ商品は一つとしてない • 不透明な市場間物流 ◦ 本当に明日届くのか? ◦ 市場外物流の難しさ • 消費者の魚離れ • 需要予測の難しさ • 飲食店、個人向けのロット感の問題 • 共有されない技術・経験・データ • 新規参入の難しさ • 産地の販売タイミングと消費地の購入タイミングの違い • 売り方に経験・技術が必要 • ・・・ 水産業の辛いポイント
  7. 水産業の辛いポイント 商品化〜販売するまでのリードタイムが短い

  8. 一般的な水産物の売買フロー (前日〜当日)水揚げ情報が一次情報として流される 漁師 漁協 仲買 荷受 仲卸 荷受 産地 消費地

    報告 集計 報告 共有 水産業の辛いポイント 商品化〜販売するまでのリードタイムが短い
  9. 水産業の辛いポイント 商品化〜販売するまでのリードタイムが短い 漁師 漁協 仲買 荷受 仲卸 荷受 産地 消費地

    集計 報告 報告 鳥取赤ガレイ 4番サイズ 100kg(あれば) 注文 注文 鳥取赤ガレイ 4番サイズ 100kg(あれば) 報告 一般的な水産物の売買フロー (前日〜当日) バイヤーは水揚げ情報に対して、規格を予測し、値段を指値してセリ前注文する
  10. 漁獲報告をアプリで代替して発注をもらえるのでは? (ウーオの初期の仮説) 漁師 漁協 仲買
 荷受
 仲卸
 荷受
 産地
 消費地


    集計 報告
 報告
 鳥取赤ガレイ 4番サイズ 100kg(あれば) 注文 注文
 赤ガレイ 4番サイズ 
 20ケース
 報告 水産業の辛いポイント 商品化〜販売するまでのリードタイムが短い
  11. 定置網 イサキ 20ケース 漁法 前日〜当日の水揚げ情報 水産業の辛いポイント 商品化〜販売するまでのリードタイムが短い 魚種

  12. 定置網 イサキ 20ケース 大きさ、規格は? 刺身いける? 箱の目方(大きさ)は? 切り身で何パック取れる? 前日〜当日の水揚げ情報 水産業の辛いポイント 商品化〜販売するまでのリードタイムが短い

    漁法 魚種
  13. 前日のアバウトな水揚 げ情報からは発注しづ らい
 水産業の辛いポイント
 商品化〜販売するまでのリードタイムが短い 


  14. 実際にバイヤーが購入できる情報 (商品としての鮮魚の情報) はいつ手に入る? 水産業の辛いポイント 商品化〜販売するまでのリードタイムが短い

  15. 当日の朝、セリ場に並んで
 はじめてわかる
 水産業の辛いポイント
 商品化〜販売するまでのリードタイムが短い 


  16. 前日 当日朝 水産業の辛いポイント 商品化〜販売するまでのリードタイムが短い

  17. fishing_method(漁法)
 定置網
 container(規格) 
 中サイズ 5kg
 fish_type(魚種)
 アジ
 killing_method(締め方)
 氷締め


    商品として販売できる状態 刺身◦
 規格は水揚げ日、産地によって、 5kg〜10kgぐらいで変化する 商品情報はタイムリーに変化する 水産業の辛いポイント 商品化〜販売するまでのリードタイムが短い
  18. セリ(商品化) 〜出荷(販売) までのリードタイム3時間 水産業の辛いポイント 商品化〜販売するまでのリードタイムが短い

  19. (産地) セリ前注文が欲しい 水産業の辛いポイント 商品化〜販売するまでのリードタイムが短い セリ(商品化) 〜出荷(販売) までのリードタイム3時間 (消費地) 仕立てられた確定情報が欲しい

  20. 水産業の辛いポイント 商品化〜販売するまでのリードタイムが短い 前日18:00
 当日9:00
 水揚げ情報配信
 時間
 セリ前発注 
 前日20:00
 当日6:00


    セリ
 結果確定/出荷 
 ・指値を考える ・規格を予測(難易度高) ・結果確定まで仕入れの予測 が立たない 産地は在庫リスクがないので ありがたい セリ前発注 リードタイム長い
  21. 実際にバイヤーが購入できる 情報はいつ手に入る?
 ボタンを押せば確実に届くという世界が
 水産業ではとても難しかった


  22. ・規格を選んで、数量を決めるだけ ・売り方を考えられる ・モノが確実に届く 水産業の辛いポイント 商品化〜販売するまでのリードタイムが短い 前日18:00
 当日9:00
 時間
 当日6:00
 セリ


    出荷
 発注/結果確定 
 当日7:00
 産地は在庫リスクが大 確定発注 リードタイム短い
  23. 水産業の辛いポイント 商品化〜販売するまでのリードタイムが短い 産地は在庫リスクが大 確定発注 リードタイムを長くするより、 発注体験をよりわかりやすくしていく 方針に転換 前日18:00
 当日9:00
 時間


    当日6:00
 セリ
 出荷
 発注/結果確定 
 当日7:00
 ・規格を選んで、数量を決めるだけ ・ウーオが選んだ規格だけでなく、産地 が出品したものすべて買える
  24. How To セリ前発注 => 確定発注

  25. How To セリ前発注 => 確定発注 container_groups(魚種グループ) containers (規格) market_trends (市況)

    selling_container_groups (漁獲量) buy_orders (発注) ユメカサゴ 小〜中 2100円1ケース containers セリ前発注 セリ前発注のモデル
  26. How To セリ前発注 => 確定発注 container_groups(魚種グループ) containers (規格) market_trends (市況)

    selling_container_groups (漁獲量) buy_orders (発注) ユメカサゴ 小〜中 2100円1ケース containers セリ前発注 セリ前発注のモデル すべてUUUOが管理画面から手動で作成 毎日配信 毎日配信
  27. How To セリ前発注 => 確定発注 containers(規格) commerce_containers(販売規格) commerce_items(販売商品) 確定発注のモデル 確定発注

    purchases (発注) ユメカサゴ 小〜中 2100円 1ケース new
 new
 new commerce_containers 産地のユーザーが自由に作成 commerce_times(注文受付期間) new
 既存

  28. How To セリ前発注 => 確定発注 containers (規格) ユメカサゴ 小サイズ(1番) 100g/尾

    5kg ケース 鳥取 ユメカサゴ 中サイズ(2番) 150g/尾 5kg ケース 鳥取 小
 中
 大
 ユメカサゴ 大サイズ(3番) 200g/尾 5kg ケース 鳥取 • セリ前発注をとるためには、ある程度規格を網羅しておく必要がある • よく水揚げされる規格をウーオで独自に判断し配置 => ウーオで規格マスタを管理し、提供したいという目論見 どのような規格であれば確定発注できるのか 規格という概念について
  29. How To セリ前発注 => 確定発注 ユメカサゴ 小サイズ(1番) 100g/尾 5kg ケース

    鳥取 ユメカサゴ 中サイズ(2番) 150g/尾 5kg ケース 鳥取 小
 中
 大
 ユメカサゴ 大サイズ(3番) 200g/尾 5kg ケース 鳥取 鳥取ユメカサゴの小サイズ = 長崎ユメカサゴの小サイズ とは限らない ユメカサゴ 300g/尾 5kg ケース 鳥取 <= 水揚げがあってもデータがないので発注できない どのような規格であれば確定発注できるのか 規格という概念について containers (規格)
  30. How To セリ前発注 => 確定発注 containers (規格) ユメカサゴ 小サイズ(1番) 100g/尾

    5kg ケース 鳥取 
 ユメカサゴ 中サイズ(2番) 150g/尾 5kg ケース 鳥取 小
 中
 大
 ユメカサゴ 大サイズ(3番) 200g/尾 5kg ケース 鳥取 鳥取ユメカサゴの小サイズ = 長崎ユメカサゴの小サイズ とは限らない ユメカサゴ 300g/尾 5kg ケース 鳥取 どのような規格であれば確定発注できるのか <= 水揚げがあってもデータがないので発注できない 規格という概念について 産地ごとに規格の定義が異なっている
  31. How To セリ前発注 => 確定発注 産地ごとの規格の違い 同じ赤ガレイ4番サイズ 赤ガレイ(底曳)4番 20入6.5kg0.3kg/尾 赤ガレイ(底曳)4番 18入7kg0.4kg/尾

    鳥取 津居山(京都) どのような規格であれば確定発注できるのか
  32. How To セリ前発注 => 確定発注 産地ごとの規格の違い 同じ赤ガレイ4番サイズ 赤ガレイ(底曳)4番 20入6.5kg0.3kg/尾 赤ガレイ(底曳)4番 18入7kg0.4kg/尾

    鳥取
 津居山(京都)
 赤ガレイ(底曳)4番 18入7.5kg 赤ガレイ(底曳)4番 18入6.5kg 船や時期によっても変わる どのような規格であれば確定発注できるのか
  33. How To セリ前発注 => 確定発注 全国の荷主が産地の規格に縛られずに出品でき、 全国のバイヤーが理解して購入するためには 赤ガレイ(底曳)4番 18入7kg0.4kg/尾 入数とケースの重さが重要

    ケースの重さ / 入数 = 1尾の重さ(大きさ) どのような規格であれば確定発注できるのか 4番 / 中サイズ 産地の規格
 誰でもわかる規格

  34. How To セリ前発注 => 確定発注 全国の荷主が産地の規格に縛られずに出品でき、 全国のバイヤーが理解して購入できるためには • ケースの重さ= 必須

    • 入数は全部数えるのが難しいこともあるので任意 • 1尾目方も入力可能に containers(規格) どのような規格であれば確定発注できるのか
  35. How To セリ前発注 => 確定発注 containers(規格) commerce_containers(販売規格) 現状のcontainerという 概念を維持しながら構築 どのような規格であれば確定発注できるのか

    全国の荷主が産地の規格に縛られずに出品でき、 全国のバイヤーが理解して購入できるためには
  36. How To セリ前発注 => 確定発注 規格ごとに出品すると、規格が多い魚種だと画面を占有してしまう問題が発生 どのような規格であれば確定発注できるのか

  37. How To セリ前発注 => 確定発注 規格ごとに出品すると、規格が多い魚種だと画面を占有してしまう問題が発生 複数規格をまとめて出品できるように containers(規格) commerce_containers(販売規格) commerce_items(販売商品)

    どのような規格であれば確定発注できるのか 必要情報をマイグレーション new

  38. How To セリ前発注 => 確定発注 container_groups (魚種グループ) containers (規格) market_trends

    (市況) selling_container_groups (漁獲量) buy_orders (発注) ユメカサゴ 小〜中 2100円1ケース containers セリ前発注 モデルの変遷 すべてUUUOが管理画面から手動で作成 (データ作成のオーバーヘッドになる)
  39. How To セリ前発注 => 確定発注 containers(規格) commerce_containers(販売規格) commerce_items(販売商品) モデルの変遷 確定発注

    purchases (発注) ユメカサゴ 小〜中 2100円 1ケース new new new commerce_containers 産地のユーザーが自由に作成 commerce_times(注文受付期間) new 既存
  40. • 深く入り込んでいたからこそドメインの深い理解が役立つ 規格 = 全国基準 ではなく、各産地ごとの規格基準があった • 固有の概念はできる限り排除し、普遍的な概念をデータとしていく ケースという単位だけではアバウト。そのケースの重さ(kg)という単位を一つの基準とする •

    現状の蓄積を捨てる勇気を持つ ドメイン理解が進めばモデルの構造も変わる • プラットフォーマーがデータ作成のオーバーヘッドとならない構成にする 毎日同じ写真、内容ではなく、日々変わる臨場感あるデータを作成可能にする • UXとセットで考える How To セリ前発注 => 確定発注 まとめ ビジネスの変遷に伴う新しいドメイン作成において学んだこと
  41. 蓄積されつつある売買データ/ 在庫データ を水産業界に還元していきます 今後の展開

  42. ご清聴ありがとうございました。