Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BASE BANKチームの 技術選定と歴史/ how to decide technology...
Search
KEITA YANAGAWA
June 28, 2022
Technology
130
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BASE BANKチームの 技術選定と歴史/ how to decide technology selection for startup
KEITA YANAGAWA
June 28, 2022
More Decks by KEITA YANAGAWA
See All by KEITA YANAGAWA
fukugan-dojo-adv
gimupop
0
15
エンジニアの思考法はこの先も技術の外でも 通用するのか
gimupop
0
900
Dev x PM x PL エンジニアはビジネス構造を作れる
gimupop
0
54
プロダクトと事業、その境界線はどこにあるのか 登壇資料
gimupop
0
130
エニアグラム✖️インテグラル✖️AI 15分版
gimupop
0
350
「その気にさせる」エンジニアが 最強のリーダーになる理由
gimupop
4
2.4k
PdMと事業責任者をわける アカウンタビリティというスキルについて ROSCAFE ぴーえむないと
gimupop
1
2.4k
プロダクトマネージャーは 事業責任者の夢をみるのか pmconf2024
gimupop
3
18k
プロダクトマネージャーはどこまで出世すべきか
gimupop
8
5.4k
Other Decks in Technology
See All in Technology
reFACToring
moznion
0
170
41歳でAWSが好きすぎてITエンジニアになったおっさんの話
yama3133
1
740
複数プロダクトで進めるAI機能実装 ── 実践から得たリアルな学びとロードマップ実現への挑戦 / AICon2026_yanari
rakus_dev
1
270
Webアプリ認証の全体像 / The Big Picture of Web App Authentication
kitano_yuichi
1
420
AIツールを導入しても生産性はあがらない? カオナビが直面した 3つの壁と乗り越え方。/ Overcoming 3 Barriers to AI-Driven Productivity at kaonavi
kaonavi
0
160
SRENEXT_2026_Chairs__Talks_in_Tamachi.sre.pdf
srenext
1
140
アップデートで何が変わった?デモで学んで使いこなすIBM Bob2.0
muehara
0
230
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
1
280
OpenTelemetryにおけるGoのゼロコード・コンパイル時計装について #fukuokago
quiver
0
200
AI時代におけるテストの基礎の再定義 / Rethinking the Fundamentals of Testing in the AI Era
mineo_matsuya
13
4.3k
書籍セキュアAPIについて
riiimparm
0
210
大量データに対しても、生成AIを用いてリーズナブルにデータ加工をしたい!Databricksのai_queryについて調べてみた
kamoshika
1
280
Featured
See All Featured
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
470
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
510
Raft: Consensus for Rubyists
vanstee
141
7.6k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Leo the Paperboy
mayatellez
8
1.9k
ラッコキーワード サービス紹介資料
rakko
1
4M
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.6k
Transcript
© 2012-2022 BASE, Inc. 1 #TechKKHS BASE BANKチームの 技術選定と歴史 新規事業プロダクト開発時の技術選定どうやった?
-カケハシ×LINE×BASEの開発者が振り返る技術選定プロセスと内省- BASE株式会社 柳川 慶太 /清水 陽一郎
© 2012-2022 BASE, Inc. 2 #TechKKHS 自己紹介 所属 BASE 株式会社
BASE BANKチーム PdM 事業責任者 経歴 SIer→広告配信システム→BASEエンジニア→BASE BANK PdM キーワード 新規事業 プロダクト開発 組織開発 とにかくやってみる 趣味 アクアリウム ファッション 音楽 SNS Twitter : @gimupop 柳川慶太 (やながわ けいた)
© 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アプリケーション開発」出版予定 清水 陽一郎 (しみず よういちろう)
© 2012-2022 BASE, Inc. 4 1 2 3 #TechKKHS 何を考えて技術選定したか
3年間チームで開発しつづけて思ったこと 新規事業を開発しつづけるチームに必要なこと 今日伝えたいこと
© 2012-2022 BASE, Inc. 5 技術選定をした時にいた人の話
© 2012-2022 BASE, Inc. 6 #TechKKHS 今日は導入時のおきもちの話と リリース後チーム拡大期の話をします
© 2012-2022 BASE, Inc. 7 #TechKKHS なので初期フェーズ検討の詳細は こちらの資料をチェックしてください! Speaker Deck
知見のない技術スタックをプロダクション導入するエンジニアの導入戦略
© 2012-2022 BASE, Inc. 8 #TechKKHS 2018年夏 渋谷
© 2012-2022 BASE, Inc. 9 #TechKKHS 新しく金融系のプロダクト作りたい! ショップさんのキャッシュフローをなめらかにしたい! 作り方は任せます!
© 2012-2022 BASE, Inc. 10 #TechKKHS メンバーは 初期専任メンバーは • PO1名
• エンジニア2名(@hgsgtk @yanagawa)
© 2012-2022 BASE, Inc. 11 #TechKKHS リリース目標は まぁ年内行きたいよね
© 2012-2022 BASE, Inc. 12 #TechKKHS ドメインも複雑だし、納期も厳し目だし、リソースも限られている のりと勢いで乗り越えるしかないな 楽しもう
© 2012-2022 BASE, Inc. 13 #TechKKHS 僕が考えていたこと 新規事業に必要な技術選定ってなんだろう? 要件も決まりきっていないし、リリースしても、すぐにそのまま使われるかわからない。 とにかく不確実性が高いプロジェクト。
1. とにかく早く出すこと 2. 素早く改善サイクルを回し続けられること • 自分たちでコントロールできる範囲が広いほうが良さそう • 既存システムからは切り離したほうが良さそう • 最低限APIとして切り出したい • あえて既存と違う言語、アーキテクチャ、インフラでやるが良さそう
© 2012-2022 BASE, Inc. 14 #TechKKHS 僕が考えていたこと ここまでは考えたが、個人的には言語とか細かいアーキテクチャはそこまでこだわりはない それより早く要件ヒアリングと詳細設計がしたい!逸る気持ちが抑えられない! @hgsgtkに基盤周りは任せて要件定義とアプリケーション設計に集中する形に役割分担
そのパートは任せるので1番いいやつを頼む! これがうまくハマってスピードが出た
© 2012-2022 BASE, Inc. 15 #TechKKHS そんなこんなを乗り越え 生まれた 2018年12月 六本木
© 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
© 2012-2022 BASE, Inc. 17 #TechKKHS まとめると • 既存システムと切り離したAPI •
インフラレイヤーも思い切って切り離す • とにかく自分たちで素早く決めて実行できる状態を作る • 新規事業においては実は技術選定も大事だけどチーム内の役割分担も大事 • 特に最初の立ち上がりが大切な新規事業にとって、乗りと勢いは大事 • 新規事業は現実人依存 • 迷ったら気分が乗る方 • 迷ったらオーナーシップがもてる方をやる • 考えて選定した技術には支持者が絶対付く
© 2012-2022 BASE, Inc. 18 #TechKKHS まとめると 私個人はこのあと、新規プロダクト開発を行う組織に興味がでたので、組織設計 から行うPdMにジョブチェンジしました。 どうしたらアジリティを落とさずにプロダクト成長させ続けられるかという課題
に取り組みながら、新規プロダクト開発とグロースをしています。 どうしたらプロダクト開発組織はより強くなれるのか、再現性を持って再生産で きるかということを日々課題に向き合いながらやっていっています。
© 2012-2022 BASE, Inc. 19 技術選定後に入った人の話 4年後の今の話
© 2012-2022 BASE, Inc. 20 #TechKKHS プロダクトの現在 • グロースしつづけている
© 2012-2022 BASE, Inc. 21 #TechKKHS チームの現在 • エンジニア 8名
◦ チーム拡大中のため採用も強化中 • チームが開発しているプロダクト ◦ YELL BANKの拡張 ◦ 本人確認機能(eKYC) ◦ BASEカード(売上残高を使ったカード決済機能) ◦ 振込申請(売上残高の銀行振込)
© 2012-2022 BASE, Inc. 22 何が良かったか
© 2012-2022 BASE, Inc. 23 #TechKKHS 何が良かったか • アジャイルであること •
フルスタックであること • フルサイクルであること • プロダクトに集中できる技術
© 2012-2022 BASE, Inc. 24 #TechKKHS アジャイルであること • 仮説検証を高速でフィードバックすること ◦
当然のようにXPやアジャイルのテクニックにたどり着く ◦ アーキテクチャ・コードとしての正解 ◦ プロダクトとしての正解
© 2012-2022 BASE, Inc. 25 #TechKKHS フルスタックであること • 仮説検証を繰り返すならばチーム内で作業が完結するほうがよい •
選択肢が絞られてはいけない ◦ ex: AWSリソースの変更を含めたリファクタリング • 反面、求められるスキルは多い ◦ Vue/CSS/PHP/Go/Python/Terraform/AWS/Docker CircleCI/GitHub Actions etc
© 2012-2022 BASE, Inc. 26 #TechKKHS フルサイクルであること • Full Cycle
Developers at Netflix — Operate What You Build • 運用しつづけることで得られる気付き • フィードバックループを高速で回すには自分たちで加速させる必要がある 要件定義 設計 企画 開発 テスト 問い合わせ 対応 デプロイ 運用 Software Developers
© 2012-2022 BASE, Inc. 27 #TechKKHS プロダクトに集中できる技術 • その課題・複雑さはプロダクトに依存するものか? ◦
ユーザーの悩み事を解決している?技術的な悩み事を解決している? ◦ トレードオフはある • プロダクト志向だからこそ技術にとらわれない • 技術志向だからこそプロダクトのためにどんな技術も実践できる
© 2012-2022 BASE, Inc. 28 プロダクトに集中できる 技術選定
© 2012-2022 BASE, Inc. 29 #TechKKHS 独立したアーキテクチャ ネットショップ作成サービ ス 「BASE」
認証・認可、ビジネス ロジックなどシステム処理 ショップ情報提供 サービス提供 APIサーバ群 BASE BANK • デプロイ/ロールバックを任意に実施できる • 構成やシーケンスの変更も容易 ◦ Lambdaに切り出して非同期化
© 2012-2022 BASE, Inc. 30 #TechKKHS Go • 「プロダクト」以外の問題が少ない ◦
開発環境構築が容易 ▪ 最新のGoがあればパッケージ管理、テストが実行可能 ◦ バージョンアップ ▪ Go1.Xの間は後方互換性が保証されている
© 2012-2022 BASE, Inc. 31 #TechKKHS Go • 「プロダクト」以外の問題が少ない ◦
コードフォーマットが固定 ▪ 設定やスタイルの良し悪しの議論が発生しない ◦ 静的解析が充実している ▪ 自動化(CIによる指摘)がしやすい ◦ 学習コストが低い ▪ 言語仕様がミニマム
© 2012-2022 BASE, Inc. 32 #TechKKHS Python • 機械学習エンジニアがAPIサーバをメンテできる •
容易に機械学習系のライブラリを利用できる
© 2012-2022 BASE, Inc. 33 #TechKKHS Amazon ECS on Fargate
• コンテナ ◦ Goと合わせるとAnsibleやChefなどは不要 • アプリエンジニアでもメンテが容易 ◦ キャッチアップ可能な量の設定群 ◦ 現状のメンバー数ではKubernetesはオーバースペック
© 2012-2022 BASE, Inc. 34 #TechKKHS Terraform • 専門家でないからこそコード化する ◦
AWSリソースの可視化 ◦ Unkown Unkownの軽減 ▪ 今存在するリソースすべてをAWS Consoleから把握するのは不可能
© 2012-2022 BASE, Inc. 35 #TechKKHS 基盤化 • 共通ライブラリ ◦
DB操作、HTTPサーバとしての基本機能、運用で必要な仕組み ▪ 全社的なSaaS移行やAPM導入にも柔軟に対応できた • CI/CDの整備 ◦ デプロイの容易さ
© 2012-2022 BASE, Inc. 36 次の一手
© 2012-2022 BASE, Inc. 37 #TechKKHS 未来 • より定量的に仮説検証を繰り返したい •
データ駆動開発の本格化 ◦ PMMのJOIN ▪ Product Marketing Manager ◦ Looker導入 ◦ GA/GTM本格化
© 2012-2022 BASE, Inc. 38 まとめ
© 2012-2022 BASE, Inc. 39 #TechKKHS 柳川まとめ 自分たちで決めて決めて決め続ける 4年間を振り返ると、新規事業チームが推進力を持って 改善しながら進むためのキーワードはこれだと実感しています
この歴史のスタートは振り返ってみると技術選定だったのかもしれません 技術選定でオーナーシップを持てたことが今まで事業が続いてきた秘訣のように思います 新規事業はリリースして終わりではなくてグロースが待っています グロースする前に死ぬこともあるし、グロースできないと死にます とにかく出してチームで改善を回し続ける そのためには何ができるか 技術選定が偉大なチームの第一歩になることを願って 神になってクリエイションしましょう
© 2012-2022 BASE, Inc. 40 #TechKKHS 清水まとめ - 新規事業開発と技術選定 •
チームがプロダクトに向き合う時間を最大化できるか • チームが学習できるか ◦ 裁量をもって決断できる ◦ 試行と反省の回数と速度を最大化する ◦ 小さく失敗できる • 一緒にフルサイクル開発に挑戦するメンバーを募集中です!