Slide 1

Slide 1 text

© 2012-2022 BASE, Inc. 1 #TechKKHS BASE BANKチームの 技術選定と歴史 新規事業プロダクト開発時の技術選定どうやった? -カケハシ×LINE×BASEの開発者が振り返る技術選定プロセスと内省- BASE株式会社 柳川 慶太 /清水 陽一郎

Slide 2

Slide 2 text

© 2012-2022 BASE, Inc. 2 #TechKKHS 自己紹介 所属 BASE 株式会社 BASE BANKチーム PdM 事業責任者 経歴 SIer→広告配信システム→BASEエンジニア→BASE BANK PdM キーワード 新規事業 プロダクト開発 組織開発 とにかくやってみる 趣味 アクアリウム ファッション 音楽 SNS Twitter : @gimupop 柳川慶太 (やながわ けいた)

Slide 3

Slide 3 text

© 2012-2022 BASE, Inc. 3 #TechKKHS 自己紹介 所属 BASE 株式会社 BASE BANKチーム Tech Lead Go、New Relicや自動化など。 趣味 ブログ: https://budougumi0617.github.io/ SNS Twitter : @budougumi0617  Github : https://github.com/budougumi0617 7/22 「詳解Go言語Webアプリケーション開発」出版予定 清水 陽一郎 (しみず よういちろう)

Slide 4

Slide 4 text

© 2012-2022 BASE, Inc. 4 1 2 3 #TechKKHS 何を考えて技術選定したか 3年間チームで開発しつづけて思ったこと 新規事業を開発しつづけるチームに必要なこと 今日伝えたいこと

Slide 5

Slide 5 text

© 2012-2022 BASE, Inc. 5 技術選定をした時にいた人の話

Slide 6

Slide 6 text

© 2012-2022 BASE, Inc. 6 #TechKKHS 今日は導入時のおきもちの話と リリース後チーム拡大期の話をします

Slide 7

Slide 7 text

© 2012-2022 BASE, Inc. 7 #TechKKHS なので初期フェーズ検討の詳細は こちらの資料をチェックしてください! Speaker Deck 知見のない技術スタックをプロダクション導入するエンジニアの導入戦略

Slide 8

Slide 8 text

© 2012-2022 BASE, Inc. 8 #TechKKHS 2018年夏 渋谷

Slide 9

Slide 9 text

© 2012-2022 BASE, Inc. 9 #TechKKHS 新しく金融系のプロダクト作りたい! ショップさんのキャッシュフローをなめらかにしたい! 作り方は任せます!

Slide 10

Slide 10 text

© 2012-2022 BASE, Inc. 10 #TechKKHS メンバーは 初期専任メンバーは ● PO1名 ● エンジニア2名(@hgsgtk @yanagawa)

Slide 11

Slide 11 text

© 2012-2022 BASE, Inc. 11 #TechKKHS リリース目標は まぁ年内行きたいよね

Slide 12

Slide 12 text

© 2012-2022 BASE, Inc. 12 #TechKKHS ドメインも複雑だし、納期も厳し目だし、リソースも限られている のりと勢いで乗り越えるしかないな 楽しもう

Slide 13

Slide 13 text

© 2012-2022 BASE, Inc. 13 #TechKKHS 僕が考えていたこと 新規事業に必要な技術選定ってなんだろう? 要件も決まりきっていないし、リリースしても、すぐにそのまま使われるかわからない。 とにかく不確実性が高いプロジェクト。 1. とにかく早く出すこと 2. 素早く改善サイクルを回し続けられること ● 自分たちでコントロールできる範囲が広いほうが良さそう ● 既存システムからは切り離したほうが良さそう ● 最低限APIとして切り出したい ● あえて既存と違う言語、アーキテクチャ、インフラでやるが良さそう

Slide 14

Slide 14 text

© 2012-2022 BASE, Inc. 14 #TechKKHS 僕が考えていたこと ここまでは考えたが、個人的には言語とか細かいアーキテクチャはそこまでこだわりはない それより早く要件ヒアリングと詳細設計がしたい!逸る気持ちが抑えられない! @hgsgtkに基盤周りは任せて要件定義とアプリケーション設計に集中する形に役割分担 そのパートは任せるので1番いいやつを頼む! これがうまくハマってスピードが出た

Slide 15

Slide 15 text

© 2012-2022 BASE, Inc. 15 #TechKKHS そんなこんなを乗り越え 生まれた 2018年12月 六本木

Slide 16

Slide 16 text

© 2012-2022 BASE, Inc. 16 #TechKKHS こういう感じになった 「YELL BANK」のシステムアーキテクチャ図 ● 「BASE」加盟店にサービス提供 ○ BASE BANKで開発するサービス・機能は 「BASE」のユーザーに提供しています ● 独立したシステム構成 ○ 「YELL BANK」サービスはBASEのシステムと 疎結合とし、AWS環境も別アカウントで 運用しています ネットショップ作成 サービス 「BASE」 分析データ データ分析基盤 認証・認可、ビジネス ロジックなどシステム処理 ショップ情報提供 サービス提供 ショップのデータ提供 サーバー構成はECS Fargate バッチ処理 (ECS Scheduled Task) APIサーバ群 BASE BANK

Slide 17

Slide 17 text

© 2012-2022 BASE, Inc. 17 #TechKKHS まとめると ● 既存システムと切り離したAPI ● インフラレイヤーも思い切って切り離す ● とにかく自分たちで素早く決めて実行できる状態を作る ● 新規事業においては実は技術選定も大事だけどチーム内の役割分担も大事 ● 特に最初の立ち上がりが大切な新規事業にとって、乗りと勢いは大事 ● 新規事業は現実人依存 ● 迷ったら気分が乗る方 ● 迷ったらオーナーシップがもてる方をやる ● 考えて選定した技術には支持者が絶対付く

Slide 18

Slide 18 text

© 2012-2022 BASE, Inc. 18 #TechKKHS まとめると 私個人はこのあと、新規プロダクト開発を行う組織に興味がでたので、組織設計 から行うPdMにジョブチェンジしました。 どうしたらアジリティを落とさずにプロダクト成長させ続けられるかという課題 に取り組みながら、新規プロダクト開発とグロースをしています。 どうしたらプロダクト開発組織はより強くなれるのか、再現性を持って再生産で きるかということを日々課題に向き合いながらやっていっています。

Slide 19

Slide 19 text

© 2012-2022 BASE, Inc. 19 技術選定後に入った人の話 4年後の今の話

Slide 20

Slide 20 text

© 2012-2022 BASE, Inc. 20 #TechKKHS プロダクトの現在 ● グロースしつづけている

Slide 21

Slide 21 text

© 2012-2022 BASE, Inc. 21 #TechKKHS チームの現在 ● エンジニア 8名 ○ チーム拡大中のため採用も強化中 ● チームが開発しているプロダクト ○ YELL BANKの拡張 ○ 本人確認機能(eKYC) ○ BASEカード(売上残高を使ったカード決済機能) ○ 振込申請(売上残高の銀行振込)

Slide 22

Slide 22 text

© 2012-2022 BASE, Inc. 22 何が良かったか

Slide 23

Slide 23 text

© 2012-2022 BASE, Inc. 23 #TechKKHS 何が良かったか ● アジャイルであること ● フルスタックであること ● フルサイクルであること ● プロダクトに集中できる技術

Slide 24

Slide 24 text

© 2012-2022 BASE, Inc. 24 #TechKKHS アジャイルであること ● 仮説検証を高速でフィードバックすること ○ 当然のようにXPやアジャイルのテクニックにたどり着く ○ アーキテクチャ・コードとしての正解 ○ プロダクトとしての正解

Slide 25

Slide 25 text

© 2012-2022 BASE, Inc. 25 #TechKKHS フルスタックであること ● 仮説検証を繰り返すならばチーム内で作業が完結するほうがよい ● 選択肢が絞られてはいけない ○ ex: AWSリソースの変更を含めたリファクタリング ● 反面、求められるスキルは多い ○ Vue/CSS/PHP/Go/Python/Terraform/AWS/Docker CircleCI/GitHub Actions etc

Slide 26

Slide 26 text

© 2012-2022 BASE, Inc. 26 #TechKKHS フルサイクルであること ● Full Cycle Developers at Netflix — Operate What You Build ● 運用しつづけることで得られる気付き ● フィードバックループを高速で回すには自分たちで加速させる必要がある 要件定義 設計 企画 開発 テスト 問い合わせ 対応 デプロイ 運用 Software Developers

Slide 27

Slide 27 text

© 2012-2022 BASE, Inc. 27 #TechKKHS プロダクトに集中できる技術 ● その課題・複雑さはプロダクトに依存するものか? ○ ユーザーの悩み事を解決している?技術的な悩み事を解決している? ○ トレードオフはある ● プロダクト志向だからこそ技術にとらわれない ● 技術志向だからこそプロダクトのためにどんな技術も実践できる

Slide 28

Slide 28 text

© 2012-2022 BASE, Inc. 28 プロダクトに集中できる 技術選定

Slide 29

Slide 29 text

© 2012-2022 BASE, Inc. 29 #TechKKHS 独立したアーキテクチャ ネットショップ作成サービ ス 「BASE」 認証・認可、ビジネス ロジックなどシステム処理 ショップ情報提供 サービス提供 APIサーバ群 BASE BANK ● デプロイ/ロールバックを任意に実施できる ● 構成やシーケンスの変更も容易 ○ Lambdaに切り出して非同期化

Slide 30

Slide 30 text

© 2012-2022 BASE, Inc. 30 #TechKKHS Go ● 「プロダクト」以外の問題が少ない ○ 開発環境構築が容易 ■ 最新のGoがあればパッケージ管理、テストが実行可能 ○ バージョンアップ ■ Go1.Xの間は後方互換性が保証されている

Slide 31

Slide 31 text

© 2012-2022 BASE, Inc. 31 #TechKKHS Go ● 「プロダクト」以外の問題が少ない ○ コードフォーマットが固定 ■ 設定やスタイルの良し悪しの議論が発生しない ○ 静的解析が充実している ■ 自動化(CIによる指摘)がしやすい ○ 学習コストが低い ■ 言語仕様がミニマム

Slide 32

Slide 32 text

© 2012-2022 BASE, Inc. 32 #TechKKHS Python ● 機械学習エンジニアがAPIサーバをメンテできる ● 容易に機械学習系のライブラリを利用できる

Slide 33

Slide 33 text

© 2012-2022 BASE, Inc. 33 #TechKKHS Amazon ECS on Fargate ● コンテナ ○ Goと合わせるとAnsibleやChefなどは不要 ● アプリエンジニアでもメンテが容易 ○ キャッチアップ可能な量の設定群 ○ 現状のメンバー数ではKubernetesはオーバースペック

Slide 34

Slide 34 text

© 2012-2022 BASE, Inc. 34 #TechKKHS Terraform ● 専門家でないからこそコード化する ○ AWSリソースの可視化 ○ Unkown Unkownの軽減 ■ 今存在するリソースすべてをAWS Consoleから把握するのは不可能

Slide 35

Slide 35 text

© 2012-2022 BASE, Inc. 35 #TechKKHS 基盤化 ● 共通ライブラリ ○ DB操作、HTTPサーバとしての基本機能、運用で必要な仕組み ■ 全社的なSaaS移行やAPM導入にも柔軟に対応できた ● CI/CDの整備 ○ デプロイの容易さ

Slide 36

Slide 36 text

© 2012-2022 BASE, Inc. 36 次の一手

Slide 37

Slide 37 text

© 2012-2022 BASE, Inc. 37 #TechKKHS 未来 ● より定量的に仮説検証を繰り返したい ● データ駆動開発の本格化 ○ PMMのJOIN ■ Product Marketing Manager ○ Looker導入 ○ GA/GTM本格化

Slide 38

Slide 38 text

© 2012-2022 BASE, Inc. 38 まとめ

Slide 39

Slide 39 text

© 2012-2022 BASE, Inc. 39 #TechKKHS 柳川まとめ 自分たちで決めて決めて決め続ける 4年間を振り返ると、新規事業チームが推進力を持って 改善しながら進むためのキーワードはこれだと実感しています 歴史のスタートは振り返ってみると技術選定だったのかもしれません 技術選定でオーナーシップを持てたことが今まで事業が続いてきた秘訣のように思います 新規事業はリリースして終わりではなくてグロースが待っています グロースする前に死ぬこともあるし、グロースできないと死にます とにかく出してチームで改善を回し続ける そのためには何ができるか 技術選定が偉大なチームの第一歩になることを願って 神になってクリエイションしましょう

Slide 40

Slide 40 text

© 2012-2022 BASE, Inc. 40 #TechKKHS 清水まとめ - 新規事業開発と技術選定 ● チームがプロダクトに向き合う時間を最大化できるか ● チームが学習できるか ○ 裁量をもって決断できる ○ 試行と反省の回数と速度を最大化する ○ 小さく失敗できる ● 一緒にフルサイクル開発に挑戦するメンバーを募集中です!