Slide 1

Slide 1 text

2021-02-18 Developers Summit 2021 hase-ryo, @sou, @yuzutas0 「スピード」と「品質」のスイッチング ~事業成長を支える生存戦略~

Slide 2

Slide 2 text

長谷川 亮 hase-ryo 株式会社メルペイDataManagement Team Engineering Manager データマネジメントをやっています。カオスな環境下でのデータガバナンス、データの民主化、 データ基盤の構築などなど。データは沢山あるけど活用がイマイチなところで、データから価値を 引き出せるようにするのが主な仕事です。『データマネジメントが 30分でわかる本』を共著しました。 城戸 総史 @sou 株式会社メルペイ Merchant Solution バックエンドエンジニア 2000年頃よりフリーランスとスタートアップを転々とし数々のシステム開発に携わる。 2018年4月より現職、メルペイのシステム開発に初期から関わり、 加盟店周りの情報を預かるサービス群を切り盛りしている。 横山 翔 @yuzutas0 データ基盤構築・データ活用推進・ DX推進のお手伝いをしています。 新規事業・急成長プロダクト・レガシーシステムとフェーズを問わず炎上現場に次々と巻き込まれ、 システムアーキテクチャの再構築やエンジニアチームの立ち上げ、立て直しに従事してきました。 著書・寄稿に『個人開発をはじめよう!』『 Software Design 2020年7月号 ログ分析特集』など。 2 Speaker

Slide 3

Slide 3 text

3 登壇に当たって 資料はWEBに公開済みです。  ハッシュタグ #devsumi でお探しください。  撮影やメモを無理に行う必要はありません。  リラックスして聞いていただければと思います。 問題があれば迅速に対処します。  厳重な注意を払って本登壇に臨んでいますが、万が一、内容や表現が  不適切だと感じる場合は、登壇者にお問い合わせいただけると幸いです。 https://www.pexels.com/photo/cup-of-fresh-cappuccino-near-laptop-keyboard-and-notebook-414645/

Slide 4

Slide 4 text

メルペイについて 4 はじめに

Slide 5

Slide 5 text

© Merpay, Inc. Mission 5

Slide 6

Slide 6 text

© Merpay, Inc. メルペイとは 日本最大のフリマアプリを提供する株式会社メ ルカリのグループ会社である、株式会社メルペ イが運営するスマホ決済サービスです。 使わなくなったものをメルカリで売って得た売上 金や、銀行口座からチャージしたお金、また「メ ルペイスマート払い」を利用して、「メルカリ」や 全国182万か所のメルペイ加盟店でのお支払い にご利用いただけます。

Slide 7

Slide 7 text

TechLead ・開発で事業に貢献する ・PMと並走してシステム開発について考える スタートアップの開発者 ・急速に事業を立ち上げなければならない 7 想定する聞き手

Slide 8

Slide 8 text

© Merpay, Inc. 8 両立が求められる ベンチャーとしての スピード FinTechとしての 品質

Slide 9

Slide 9 text

© Merpay, Inc. 9 フェーズによって2つのモードを使い分ける 形成期 Forming 混乱期 Storming 統一期 Norming 機能期 Performing ツール活用 x スピード優先 システム開発 x 品質重視 フェーズ モード 実践例 (キット配送) SaaS, BIツール, Spreadsheet インシデント、 ヒヤリ・ハット 仕様整理 microservice開発 安定化 microservice運用 inspired by 宮川典久『多様なビジネスドメイン、サービスフェーズが混在する中での組織戦略と技術戦略』 https://speakerdeck.com/rtechkouhou/duo-yang-nabizinesudomein-sabisuhuezuga-hun-zai-suruzhong-defalsezu-zhi-zhan-lue-toji-shu-zhan-lue

Slide 10

Slide 10 text

© Merpay, Inc. 10 ツール活用による スピード優先の事業立ち上げ hase-ryo スピード

Slide 11

Slide 11 text

11 当時はまだ「当たり前」ではなかった

Slide 12

Slide 12 text

12 1年で決済サービスを立ち上げる https://jp.merpay.com/news/2019/02/ios_release/ 2018年1月 着手 2019年2月 リリース 4月 開発本格化

Slide 13

Slide 13 text

13 QRコード決済のこれ↓を立ち上げた話

Slide 14

Slide 14 text

ご登録いただいた加盟店様にキットを送付 14

Slide 15

Slide 15 text

初回決済までの流れ 15 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ①登録 ③配送 ④店頭に設置 ⑤決済開始! ②審査

Slide 16

Slide 16 text

配送業務を実現する 16 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ①登録 ③配送 ④店頭に設置 ⑤決済開始! ②審査

Slide 17

Slide 17 text

© Merpay, Inc. 17 概要:改善サイクルを高速に回す    Measure    計測  Build  構築  Learn  学習

Slide 18

Slide 18 text

© Merpay, Inc. 18 概要:NoCodeでオペレーション&モニタリング 配送対象を抽出 配送を依頼 BigQueryに 店舗情報を蓄積 Spreadsheetで 配送リストを管理 kintoneで 配送承認 配送会社 BigQueryに 配送リストを連携 Lookerで データを可視化 改善施策の 意思決定

Slide 19

Slide 19 text

© Merpay, Inc. 19 改善サイクルを高速に回す    Measure    計測  Build  構築  Learn  学習

Slide 20

Slide 20 text

© Merpay, Inc. 20 システム開発しないという選択肢 決済 非決済 品質重視 スピード優先 Developer 非Developer システム化 ツール活用 Why Who How What すべての機能をあるべき形で始めることはできず 濃淡を付けてスピード重視で立ち上げる部分が生じる

Slide 21

Slide 21 text

NoCodeでオペレーションを構築 配送対象を抽出 配送を依頼 BigQueryに 店舗情報を蓄積 Spreadsheetで 配送リストを管理 kintoneで 配送承認 配送会社 BigQueryに
 配送リストを連携
 Lookerで
 データを可視化
 改善施策の
 意思決定
 21

Slide 22

Slide 22 text

© Merpay, Inc. 22 改善サイクルを高速に回す    Measure    計測  Build  構築  Learn  学習

Slide 23

Slide 23 text

NoCodeでKPIモニタリングを構築 配送対象を抽出 配送を依頼
 BigQueryに 店舗情報を蓄積 Spreadsheetで 配送リストを管理 kintoneで
 配送承認
 配送会社 BigQueryに 配送リストを連携 Lookerで データを可視化 改善施策の 意思決定 23

Slide 24

Slide 24 text

24 BIツールでデータを可視化する ※実際の指標・データではありません。

Slide 25

Slide 25 text

© Merpay, Inc. 25 改善サイクルを高速に回す    Measure    計測  Build  構築  Learn  学習

Slide 26

Slide 26 text

26 ※実際の内容ではありません。 行動ファネルから離脱箇所を特定する 100 65 60 40 店舗登録数 審査通過数 QR設置数 初回決済数 大 中 小

Slide 27

Slide 27 text

27 契約完了 審査 キット送付 決済Ready 今のタイムラグ 今Q目標 30日以上 6~12日 7日以内 数日 現状 加盟店の決済Ready(審査/キット送付)に時間がかかっている 加盟店契約後から審査完了までに 30日、キット送付にも6~12day →来Qまでに7日以内、キット送付も短縮を目指す ※実際の内容ではありません。 データ駆動で改善対象・目標を決める

Slide 28

Slide 28 text

© Merpay, Inc. 28 品質面を補う工夫が必要 システム開発に比べて「出来ないこと」は多い ツール活用ならではの工夫が必要 決済 非決済 品質重視 スピード優先 Developer 非Developer システム化 ツール活用 Why Who How What

Slide 29

Slide 29 text

スピード優先での工夫① : 代替指標 29 データ取得 OK データ取得 NG データ取得 OK ①登録 ③配送 ④店頭に設置 ⑤決済開始! ②審査

Slide 30

Slide 30 text

スピード優先での工夫① : 代替指標 店舗にQRコードが設置されたか (=お客さまが利用できる状態になったか) データとして取得できない。 全店舗の目視確認は現実ではない。 代替指標として「配送数」をトラッキング 30

Slide 31

Slide 31 text

ETL Extract Transform Load データ加工 DWH Data WareHouse データ保存 BIツール Business Intelligence データ可視化 データアナリストが手動で加工 システムで処理しやすいフォーマットに変換 BigQueryに連携 Lookerを活用 スピード優先での工夫② : 人力ETL 2月分 3月分 …… ALL配送マスター 31

Slide 32

Slide 32 text

スピードフェーズのまとめ 短期間で立ち上げるには 「開発しない」選択も必要になる 背 景 作 戦 コツ ツールを活用することで 改善サイクルを高速に回せる 全ての要件は満たせないので 手作業や代替指標で補う 32

Slide 33

Slide 33 text

© Merpay, Inc. 33 システム化による 品質重視へのスイッチング @sou 品質

Slide 34

Slide 34 text

© Merpay, Inc. 34 事業成長に伴って「品質」重視にシフト 形成期 Forming 混乱期 Storming 統一期 Norming 機能期 Performing ツール活用 x スピード優先 システム開発 x 品質重視 フェーズ モード 実践例 (キット配送) SaaS, BIツール, Spreadsheet インシデント、 ヒヤリ・ハット 仕様整理 microservice開発 安定化 microservice運用 inspired by 宮川典久『多様なビジネスドメイン、サービスフェーズが混在する中での組織戦略と技術戦略』 https://speakerdeck.com/rtechkouhou/duo-yang-nabizinesudomein-sabisuhuezuga-hun-zai-suruzhong-defalsezu-zhi-zhan-lue-toji-shu-zhan-lue

Slide 35

Slide 35 text

配送リスト管理をシステム化する 配送対象を抽出 配送を依頼 BigQueryに 店舗情報を蓄積 Spreadsheetで 配送リストを管理 kintoneで 配送承認 配送会社 BigQueryに 配送リストを連携 Lookerで データを可視化 改善施策の 意思決定 35 手動SQLによる運用

Slide 36

Slide 36 text

なぜシステム化が必要か? 必要な機能 (ビジネス要求) ツールで支えられる スコープ ギャップ トラブル (ヒヤリ・ハット) システム化 事業成長 増 加 拡 大 増 加 ①必要な機能 ②トラブル が増えるから 36

Slide 37

Slide 37 text

必要な機能が増える 37 再配送を行いたい 伝票番号を取りたい 配送期間を短縮したい

Slide 38

Slide 38 text

トラブルが増える 38 インシデント   メンテ難   リスク増加 運用カバー 配送漏れ・誤配送 etc...

Slide 39

Slide 39 text

例:配送対象を抽出するSQL 39 色々な除外項目 ケース別の期間指定 インシデント影響 手動メンテナンスの限界

Slide 40

Slide 40 text

40 配送業務 開始 決済方式の追加 インシデント影響が加わる 除外パターンの増加 メンテナンス難に 再配送を行いたい 伝票番号を取りたい 日次で配送したい 要求が高度化 必要な機能 (ビジネス要求) トラブル (ヒヤリ・ハット) ToBe AsIs ツール活用の限界が訪れる

Slide 41

Slide 41 text

41 配送システムの構築 ツール活用 x スピード優先 システム開発 x 品質重視

Slide 42

Slide 42 text

42 Before 配送リスト抽出 加盟店情報管理サービス 加盟店情報 データベース Cloud Spanner 同期 オペレータ 配送会社 週次で受け渡し BigQuery

Slide 43

Slide 43 text

After 43 配送会社 Merchant Delivery 配送管理サービス 他 マイクロサービス群 管理画面 配送リスト Cloud Storage 取得 CronJobs Kubernetes 出力 API Server Kubernetes 配送情報 データベース Cloud Spanner 加盟店情報管理サービス ・配送依頼 ・キャンセル ・状態取得 加盟店情報 データベース Cloud Spanner API Server Kubernetes 住所取得

Slide 44

Slide 44 text

After 44 配送会社 Merchant Delivery 配送管理サービス 他 マイクロサービス群 管理画面 配送リスト Cloud Storage 取得 CronJobs Kubernetes 出力 API Server Kubernetes 配送情報 データベース Cloud Spanner 加盟店情報管理サービス ・配送依頼 ・キャンセル ・状態取得 加盟店情報 データベース Cloud Spanner API Server Kubernetes 住所取得 管理画面から 再配送依頼やキャンセルを 安全に行えるように 配送依頼は 配送情報データベースに蓄積

Slide 45

Slide 45 text

After 45 配送会社 Merchant Delivery 配送管理サービス 他 マイクロサービス群 管理画面 配送リスト Cloud Storage 取得 CronJobs Kubernetes 出力 API Server Kubernetes 配送情報 データベース Cloud Spanner 加盟店情報管理サービス ・配送依頼 ・キャンセル ・状態取得 加盟店情報 データベース Cloud Spanner API Server Kubernetes 住所取得 バッチ処理で配送リストを構築 人手を介さず配送会社と連携 日次での配送依頼が可能に

Slide 46

Slide 46 text

© Merpay, Inc. 46 成長フェーズを支える業務モデルへ リスクコントロールされた状態へ 高度化への要求を受け入れ可能に  コードによるビジネスロジックの実装 ● 業務変更を開発要件として整理 ● テストによる品質の保証  より安全で効率的なオペレーション ● ツールでの操作・閲覧が可能に ● リスト生成を全自動化し、人手を排除  週次配送から日時配送へと改善 ● 利用開始までのリードタイムを削減  伝票番号をシステムで自動取得 ● 配送会社のステータスを確認可能に  ※その後の追加要求も安定して開発できている

Slide 47

Slide 47 text

© Merpay, Inc. 47 システム開発のタイムライン 2020.02 設計Fix 2020.03.09 API インタフェース定義Fix 2020.03 実装着手 2020.01 要件Fix 2020.05.07 稼働開始 スイッチング完了 約4ヶ月

Slide 48

Slide 48 text

© Merpay, Inc. 48 いつ移行するか?がポイント 立ち上げフェーズ 成長フェーズ 早すぎると 合意できない 遅すぎると 耐えられない タイミングの見極めが大事

Slide 49

Slide 49 text

© Merpay, Inc. 49 ニーズ + リスク ≧ 開発リソース ニーズ リスク 開発 重みが増す 重い腰が上がる 天秤が傾くように、なめらかにスイッチングするのが理想

Slide 50

Slide 50 text

© Merpay, Inc. システム化の必要性を関係者に示す ニーズ ニーズ ニーズ ニーズ ニーズ ニーズ ニーズ リスク リスク リスク 開発 開発 開発 開発 開発 開発 開発 開発 開発 業務A 業務B 業務C システム化が必要 ニーズが多いので 話を進めやすい システム化は まだ不要 システム化が必要 リスクが見えないと 着手が遅れる 50

Slide 51

Slide 51 text

© Merpay, Inc. 51 リスクを言語化する 項目 概要 例 程度 インパクト 問題発生時の 影響は大きいか 配送漏れがあると 店舗で決済が発生しない 決済できない  リカバリ 復旧が可能か 手動で再抽出して 対応する リスクある業務を 繰り返している コントロール 制御可能か 配送会社に 渡した後は管理できない コントロール範囲が狭い モニタリング 問題を検知可能か 問い合わせを受けるまで 分からない 有効な検知手段がない

Slide 52

Slide 52 text

品質フェーズのまとめ マニュアルの業務モデルは 事業成長と共に限界を迎える 背 景 作 戦 コツ システム開発によって 求められる品質を担保する ニーズ・リスクを評価して 適切なタイミングで移行する 52

Slide 53

Slide 53 text

事業成長を支える生存戦略 @yuzutas0 53 まとめ

Slide 54

Slide 54 text

© Merpay, Inc. 54 ベンチャーとしての スピード FinTechとしての 品質 両立が求められる

Slide 55

Slide 55 text

© Merpay, Inc. 55 マーケット環境は日々変わる https://jp.merpay.com/news/press_release/

Slide 56

Slide 56 text

© Merpay, Inc. 56 ビジネスチャンスに開発が追いつかない 新しいマーケット機会に対して、システム開発が間に合っていない。 これが多くの現場の実情ではないでしょうか。 https://undraw.co/illustrations

Slide 57

Slide 57 text

© Merpay, Inc. 57 アイデアの実現には時間がかかる ビジネス仮説 オペレーション構築 WEB・ITシステム開発

Slide 58

Slide 58 text

© Merpay, Inc. 58 フェーズによって2つのモードを使い分ける 形成期 Forming 混乱期 Storming 統一期 Norming 機能期 Performing ツール活用 x スピード優先 システム開発 x 品質重視 フェーズ モード 実践例 (キット配送) SaaS, BIツール, Spreadsheet インシデント、 ヒヤリ・ハット 仕様整理 microservice開発 安定化 microservice運用 inspired by 宮川典久『多様なビジネスドメイン、サービスフェーズが混在する中での組織戦略と技術戦略』 https://speakerdeck.com/rtechkouhou/duo-yang-nabizinesudomein-sabisuhuezuga-hun-zai-suruzhong-defalsezu-zhi-zhan-lue-toji-shu-zhan-lue

Slide 59

Slide 59 text

© Merpay, Inc. 59 3つの挑戦を乗り越える 対象の見極め 01 02 03 スピード優先?品質重視? スピード優先 いかに早く検証サイクルを回すか 品質重視 いかに業務を破綻させずに移すか

Slide 60

Slide 60 text

© Merpay, Inc. 60 ①対象の見極め:スピード優先?品質重視? 決済 非決済 品質重視 スピード優先 Developer 非Developer システム化 ツール活用 Why Who How What 初期フェーズにおいて対象要件がどちらに属するのかを見極める。 全てのスコープが「品質重視」だと1年ではリリースできない。 安易な「スピード優先」だとリリース後に破綻する。

Slide 61

Slide 61 text

© Merpay, Inc. 61 ②スピード優先:いかに改善サイクルを回すか ツール活用によってオペレーション&モニタリングを整備。 ツールで解決しない要件は、手動作業や代替指標で補う。 アイデア実現までの期間をショートカットする。

Slide 62

Slide 62 text

© Merpay, Inc. 62 ③品質重視:いかに業務を破綻させずに移すか リスク
 ニーズ
 事業成長によって徐々にニーズ・リスクが積み上がる。 労力・時間を割くだけの投資対効果を期待できる。 そのタイミングでシステム化に踏み切る。 開発


Slide 63

Slide 63 text

© Merpay, Inc. 63 生き残る https://www.pexels.com/ja-jp/photo/4003489/ これらの 挑戦 を乗り越えて ビジネスが 生き残る からこそ 新しい 顧客体験 を創造して、 社会に 新しい価値 を 提供できるのではないでしょうか

Slide 64

Slide 64 text

© Merpay, Inc. 64 新しい時代のあり方 を模索し、 全力で 挑戦し続ける人 にとって この発表が参考になると幸いです。

Slide 65

Slide 65 text

© Merpay, Inc. 65 挑戦者、募集中です! ご清聴ありがとうございました! Now Hiring! We are