radioc@?

レディオキャットハテナ

【勉強会メモ】MonotaRO Tech Talk #6 (大阪梅田オフィスオープン記念)

monotaro.connpass.com

  • 日時:2018/07/25(水) 18:30 〜 22:00
  • 場所:MonotaRO 梅田オフィス

f:id:radiocat:20180725233352p:plain

BigQueryを中心とした大規模データ基盤開発

香川 和哉 さん

データの種類

  • 商品、在庫、顧客、サプライヤ問い合わせ、受発注
  • WMS(Warehouse Management SYstem)
  • プロモーション
  • Webサーバログ
  • アプリログ
  • GA

RDB

  • 1,000テーブル
  • 受注5,000万行
  • 明細1億5,000万
  • ログ4,000万行/日

ETL / Binlog Connector

旧DWHでのMySQLデータ同期における課題

  • 依頼ベースでの同期テーブル追加
    • 割り込み差魚う、そもそも依頼が面倒
  • 差分更新だと物理削除に対応できない
    • 数億レコード右や全件洗い替えが難しい
  • 全件更新も差分更新も困難

⇒課題を解決するために作ったのがBinlog Connector

  • MySQLからBinlog ConnectorがJSONに変換
  • BigQueryへ入れる
  • ログデータを既存のテーブルとマージして新しいテーブルを作成
  • これらを3〜5分程度で実行

DWH/DataMart

  • Raw Dataから何段階か加工してDataMartを作る
  • エンジニアはdigdagを使う
  • マーケターなどはGAS制のツールを使う

Google Sheet JobScheduler

  • アドホック分析
  • Data Studio

  • マーケター、マーチャンダイサー、カスタマーサポートなどがSQL、レポート作成

  • DataStudioをデータソースとして利用して分析

## バッチ処理基盤

  • Solr(検索エンジン) への転送
    • 並列処理で180分
  • BigQueryで15分
    • 実行時に新しいテーブルを作成して実行時にできるだけ並列化

データ基盤のこれから

  • データの民主化
    • 安全な仕組み
    • メタデータ基盤(いつどこからきてつかわれたか)
    • データマート構築
    • 社内での勉強会やサポートの充実
  • より高度なデータ分析・処理基盤
    • 機械学習基盤の高速化
    • リアルタイムデータ処理基盤
  • マーケティングプラットフォームの構築
    • より早く、より最適化されたアクションにつなげる仕組み
  • WMSなど連携システムの拡大

チームの戦闘力をガンガンにあげろ!

鈴木 圭 さん

チームが抱えていた色々なこと

  • 時間がない
  • 本来の仕事が進まない
  • リリースに2時間かかる
  • 開発環境が頻繁に壊れる
  • リファクタリングしたい
  • 昼も夜もアラート対応

キックオフでどうなりたいかを伝える

  • 組織のはなし
  • グループのはなし
  • 意識してほしいこと

第一に仕事をコントロールして第二に生産性を向上する

  • 生産性だけ上げても仕事が楽にならない

取り組んだこと

  • 障害対応訓練
  • リリースマネジメント
  • 愚直なリファクタリング
  • ペアワーク
  • 1人案件をなくす
  • マネージャーにできること

障害対応

  • 障害対応のプレッシャー
    • スピーディー
    • イレギュラー
    • 平常業務よりも難易度が高い
  • 障害対応のプラスの側面
    • エンジニアを強くする⇒貴重なリソース、発生頻度が低い
  • 障害対応訓練は効果あり
    • 事前に経験値を高める
    • 心理的な負担も軽減
  • 心理的負担を軽減する事前のすり合わせ
    • 自分で手に負えなかったら⇒電話
    • システム負荷が下がらない⇒再起動
    • 深夜アラートに気づけない⇒仕方ない
  • 会社の制度面でケアが必要な場合もある
    • 待機手当は?
    • プライベートを侵害しすぎてない?
    • 夜間対応した場合の出勤時間の調整
    • アラート対応はボランティアではない

例えば、

  • 待機メンバーの当番制
  • システムのことを完全忘れられる日を作る

スキル面、体制面、制度面それぞれのケアが必要

ペアワーク

  • 予想通り品質が向上
  • 予想外に生産性も向上

品質向上の理由

  • 人数が2人
  • フィードバックの心理的コストが低い

生産性向上の理由

  • 立ち止まっている時間が圧倒的に減る

マネージャにできること

  • グループの成果を最大化
  • メンバーがパフォーマンスを発揮できる環境を作る

具体的には

  • 意思決定を行う
  • 期待値を伝える
  • リアクションを返す
  • なるべく予測可能に振る舞う
  • 環境面の課題に取り組む
  • 会社の制度に働きかける

まとめ

  • 前を向けるメンバーに恵まれたならきっと今よりも良い状態にたどり着ける
  • 個人ではなくちーむとしてパフォーマンスを発揮することを考える

モノタロウAIストアの話

牛島 真一 さん

AIストア

  • 佐賀県
  • 電車で約5時間
  • 自動車で約8時間

2017年7月社内キックオフ

  • だったが約2ヶ月半プロジェクトメンバーから外れる
  • 2017年9月再キックオフ
  • システム側のPL担当

条件

  • 既存ユーザーが利用可能
  • 店舗は佐賀大学構内店内は無人
  • スマホを使って入店・退店
    • 専用ゲート通過
  • スマホで商品バーコード読み取り
  • その場で決済、キャッシュレス
  • 2018年4月サービスイン

材料

  • 既存サイトシステム
  • PCサイト
  • スマホサイト
  • IHCサイトシステム
  • スマホアプリ(バスケット)
    • ネイティブ+WebView
  • サイト、社内システムで利用できるAPI
    • 決済、顧客、倉庫管理
  • AWS

社内リソースは最小限

  • API数名
  • サイトシステム担当1名
  • デザイン2名
  • スマホアプリ0名

やってみた

  • アプリ本体はパケージソフトを利用
  • バーコードリーダー部分のみネイティブ
  • 残りはWebView
  • スマホサイトをカスタマイズして利用
  • 商品情報、顧客情報、決済処理
  • 既存サイトに裏でつなげる
  • 必要最小限のサーバを別途作成して別サービスドメイとして作る

注意したこと

  • 外部システムとの連携
    • サイトシステム以外に店舗ゲートなどの物理的なシステムが絡む部分を疎結合にする
  • 新規システム開発を最小限に抑える
    • アプリ操作はわかりやすくシンプルにかつ将来的に内製可能な仕様にしておく
  • 約束したスケジュールに遅れない

やらないと決めたこと

  • スマホアプリを1からつくる
  • テンポスステムも1から作らない
  • 店舗システムの開発はほぼ全て外注
  • 新規APIを店舗システムに採用すること
    • monotaro.com で導入前の会員登録系API

ちょっと危なかったこと

  • スマホアプリとして採用したパッケージソフトJANコード以外のバーコードが読めなかった問題
  • ゲートのQRコードリーダーの読み取り制度が想定以上に悪くゲートが開かないor正しくデータを読み取れない問題
  • 予定外の店舗改装工事が入り、テストスケジュールを大幅に圧縮、短期間で実施せざるを得なくなった問題

2018年4月2日に無事サービスIN

まとめ

  • 実店舗という商品を直接手にとって見る事ができるサービスを提供
  • Webサイトから注文し社内システムでのフローを一部省略することができるようになった
    • Web注文⇒在庫引当⇒売上計上⇒請求処理⇒ピッキング⇒梱包⇒発送
  • 少し発想を変えることで化けるシステムができたこと

www.monotaro.com

orange-operation.jp

これからのモノタロウのIT開発

久保 征人 さん

これから3〜5年

  • より大規模に
  • よりデータドリブンに
  • よりグローバルに

売上1,000億〜の売上を支える

  • 高度なデータサイエンスに基づいたシステム開発
  • これをさらにグローバルプラットフォームにする

つまり

  • 自社開発を中心に
  • 外部のプロダクトもうまく組み合わせて
  • 差別化と生産性の両立

具体的には

  • IT開発の基本に忠実に
  • 差別化部分は様々なチャレンジ
  • 外部のテクノロジー・プロダクトにも目を向ける

日々使われるシステム/大きな売上/急成長するビジネス/拡大するチーム/で良いITを継続して開発することがチャレンジ

生産性=①向上する売上や利益/②かけたコスト

事業会社なので①も重要

  • 機能追加変更が容易変化に強い②
  • バグが少なく安定運用②
  • 差別化できる(売上を上げる)①

①の例

  • 検索
  • レコメンデーション
  • カート員・ユーザー登録、購入ステップ改善
  • LPO(Landing Page Optimization)

②の例

その前に足元の課題にも愚直に取り組む

まとめ

  • フロントエンド/バックエンド
  • プロダクト/プロセス
  • 個人スキル/チーム開発
  • 日本/グローバル
  • SoE/SoR

多くの切り口で様々なチャレンジ