SlideShare a Scribd company logo
© 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
清水まとめ - 新規事業開発と技術選定
● チームがプロダクトに向き合う時間を最大化できるか
● チームが学習できるか
○ 裁量をもって決断できる
○ 試行と反省の回数と速度を最大化する
○ 小さく失敗できる
● 一緒にフルサイクル開発に挑戦するメンバーを募集中です!

More Related Content

Similar to 20220628_TECHPLAY.pdf

20190515 hccjp hybrid_strategy
20190515 hccjp hybrid_strategy20190515 hccjp hybrid_strategy
20190515 hccjp hybrid_strategy
Osamu Takazoe
 
【Webinar-Slide】DataBridgeとは
【Webinar-Slide】DataBridgeとは【Webinar-Slide】DataBridgeとは
【Webinar-Slide】DataBridgeとは
Talend KK
 
チーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組みチーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組み
Yuta Matsumura
 
[Track1-1] AIの売上予測を発注システムに組み込んだリンガーハットのデータ活用戦略
[Track1-1] AIの売上予測を発注システムに組み込んだリンガーハットのデータ活用戦略[Track1-1] AIの売上予測を発注システムに組み込んだリンガーハットのデータ活用戦略
[Track1-1] AIの売上予測を発注システムに組み込んだリンガーハットのデータ活用戦略
Deep Learning Lab(ディープラーニング・ラボ)
 
Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」
Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」 Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」
Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」
Tsuyoshi Hirayama
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
NTT DATA Technology & Innovation
 
20200717 kanazawauniv takasu キャリア、コミュニティとアカデミア、そして事業開発
20200717 kanazawauniv takasu  キャリア、コミュニティとアカデミア、そして事業開発20200717 kanazawauniv takasu  キャリア、コミュニティとアカデミア、そして事業開発
20200717 kanazawauniv takasu キャリア、コミュニティとアカデミア、そして事業開発
Nico-Tech Shenzhen/ニコ技深圳コミュニティ
 
祝★AWSスタンダードコンサルティングパートナーに認定されました
祝★AWSスタンダードコンサルティングパートナーに認定されました祝★AWSスタンダードコンサルティングパートナーに認定されました
祝★AWSスタンダードコンサルティングパートナーに認定されました
Core Concept Technologies
 
[20171031 db tech salon] クラウド移行をベトナムで!? by 株式会社インサイトテクノロジー 森 茂紀
[20171031 db tech salon] クラウド移行をベトナムで!? by 株式会社インサイトテクノロジー 森 茂紀[20171031 db tech salon] クラウド移行をベトナムで!? by 株式会社インサイトテクノロジー 森 茂紀
[20171031 db tech salon] クラウド移行をベトナムで!? by 株式会社インサイトテクノロジー 森 茂紀
Insight Technology, Inc.
 
NoSQL勉強会
NoSQL勉強会NoSQL勉強会
NoSQL勉強会Yuji Otani
 
AIOpsで実現する効率化 OSC 2022 Online Spring TIS
AIOpsで実現する効率化 OSC 2022 Online Spring TISAIOpsで実現する効率化 OSC 2022 Online Spring TIS
AIOpsで実現する効率化 OSC 2022 Online Spring TIS
Daisuke Ikeda
 
アジャイル開発の中の設計
アジャイル開発の中の設計アジャイル開発の中の設計
アジャイル開発の中の設計
Takuya Okamoto
 
20180215 devsumi-base
20180215 devsumi-base20180215 devsumi-base
20180215 devsumi-base
真一 藤川
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
 
Xpjug lt-20210918
Xpjug lt-20210918Xpjug lt-20210918
Xpjug lt-20210918
Takeshi Hirosue
 
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
Insight Technology, Inc.
 
QualityとDeliveryを両立させるために僕らがやったこと
QualityとDeliveryを両立させるために僕らがやったことQualityとDeliveryを両立させるために僕らがやったこと
QualityとDeliveryを両立させるために僕らがやったこと
Takeshi Sekiguchi
 
BASEのアーキテクチャを育てる - 20221213 BASE Tech Talk
BASEのアーキテクチャを育てる - 20221213 BASE Tech TalkBASEのアーキテクチャを育てる - 20221213 BASE Tech Talk
BASEのアーキテクチャを育てる - 20221213 BASE Tech Talk
Tadashi Matsuda
 
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかなぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのか
Yusuke Suzuki
 
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを 移行ツールで最新化
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを移行ツールで最新化 Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを移行ツールで最新化
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを 移行ツールで最新化
Kaz Aiso
 

Similar to 20220628_TECHPLAY.pdf (20)

20190515 hccjp hybrid_strategy
20190515 hccjp hybrid_strategy20190515 hccjp hybrid_strategy
20190515 hccjp hybrid_strategy
 
【Webinar-Slide】DataBridgeとは
【Webinar-Slide】DataBridgeとは【Webinar-Slide】DataBridgeとは
【Webinar-Slide】DataBridgeとは
 
チーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組みチーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組み
 
[Track1-1] AIの売上予測を発注システムに組み込んだリンガーハットのデータ活用戦略
[Track1-1] AIの売上予測を発注システムに組み込んだリンガーハットのデータ活用戦略[Track1-1] AIの売上予測を発注システムに組み込んだリンガーハットのデータ活用戦略
[Track1-1] AIの売上予測を発注システムに組み込んだリンガーハットのデータ活用戦略
 
Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」
Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」 Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」
Cloud Festa 2021 Winter 「デザイナー、データサイエンティスト、 クラウドエンジニア、で実現する共創の世界」
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
 
20200717 kanazawauniv takasu キャリア、コミュニティとアカデミア、そして事業開発
20200717 kanazawauniv takasu  キャリア、コミュニティとアカデミア、そして事業開発20200717 kanazawauniv takasu  キャリア、コミュニティとアカデミア、そして事業開発
20200717 kanazawauniv takasu キャリア、コミュニティとアカデミア、そして事業開発
 
祝★AWSスタンダードコンサルティングパートナーに認定されました
祝★AWSスタンダードコンサルティングパートナーに認定されました祝★AWSスタンダードコンサルティングパートナーに認定されました
祝★AWSスタンダードコンサルティングパートナーに認定されました
 
[20171031 db tech salon] クラウド移行をベトナムで!? by 株式会社インサイトテクノロジー 森 茂紀
[20171031 db tech salon] クラウド移行をベトナムで!? by 株式会社インサイトテクノロジー 森 茂紀[20171031 db tech salon] クラウド移行をベトナムで!? by 株式会社インサイトテクノロジー 森 茂紀
[20171031 db tech salon] クラウド移行をベトナムで!? by 株式会社インサイトテクノロジー 森 茂紀
 
NoSQL勉強会
NoSQL勉強会NoSQL勉強会
NoSQL勉強会
 
AIOpsで実現する効率化 OSC 2022 Online Spring TIS
AIOpsで実現する効率化 OSC 2022 Online Spring TISAIOpsで実現する効率化 OSC 2022 Online Spring TIS
AIOpsで実現する効率化 OSC 2022 Online Spring TIS
 
アジャイル開発の中の設計
アジャイル開発の中の設計アジャイル開発の中の設計
アジャイル開発の中の設計
 
20180215 devsumi-base
20180215 devsumi-base20180215 devsumi-base
20180215 devsumi-base
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
Xpjug lt-20210918
Xpjug lt-20210918Xpjug lt-20210918
Xpjug lt-20210918
 
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
 
QualityとDeliveryを両立させるために僕らがやったこと
QualityとDeliveryを両立させるために僕らがやったことQualityとDeliveryを両立させるために僕らがやったこと
QualityとDeliveryを両立させるために僕らがやったこと
 
BASEのアーキテクチャを育てる - 20221213 BASE Tech Talk
BASEのアーキテクチャを育てる - 20221213 BASE Tech TalkBASEのアーキテクチャを育てる - 20221213 BASE Tech Talk
BASEのアーキテクチャを育てる - 20221213 BASE Tech Talk
 
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかなぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのか
 
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを 移行ツールで最新化
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを移行ツールで最新化 Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを移行ツールで最新化
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを 移行ツールで最新化
 

Recently uploaded

Solanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer EventSolanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
K Kinzal
 
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
yamamotominami
 
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
You&I
 
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Eventシグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
K Kinzal
 
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdfクラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
TatsuyaHanayama
 
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
You&I
 

Recently uploaded (6)

Solanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer EventSolanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
 
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
 
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
 
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Eventシグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
 
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdfクラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
 
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
 

20220628_TECHPLAY.pdf

  • 1. © 2012-2022 BASE, Inc. 1 #TechKKHS BASE BANKチームの 技術選定と歴史 新規事業プロダクト開発時の技術選定どうやった? -カケハシ×LINE×BASEの開発者が振り返る技術選定プロセスと内省- BASE株式会社 柳川 慶太 /清水 陽一郎
  • 2. © 2012-2022 BASE, Inc. 2 #TechKKHS 自己紹介 所属 BASE 株式会社 BASE BANKチーム PdM 事業責任者 経歴 SIer→広告配信システム→BASEエンジニア→BASE BANK PdM キーワード 新規事業 プロダクト開発 組織開発 とにかくやってみる 趣味 アクアリウム ファッション 音楽 SNS Twitter : @gimupop 柳川慶太 (やながわ けいた)
  • 3. © 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アプリケーション開発」出版予定 清水 陽一郎 (しみず よういちろう)
  • 4. © 2012-2022 BASE, Inc. 4 1 2 3 #TechKKHS 何を考えて技術選定したか 3年間チームで開発しつづけて思ったこと 新規事業を開発しつづけるチームに必要なこと 今日伝えたいこと
  • 5. © 2012-2022 BASE, Inc. 5 技術選定をした時にいた人の話
  • 6. © 2012-2022 BASE, Inc. 6 #TechKKHS 今日は導入時のおきもちの話と リリース後チーム拡大期の話をします
  • 7. © 2012-2022 BASE, Inc. 7 #TechKKHS なので初期フェーズ検討の詳細は こちらの資料をチェックしてください! Speaker Deck 知見のない技術スタックをプロダクション導入するエンジニアの導入戦略
  • 8. © 2012-2022 BASE, Inc. 8 #TechKKHS 2018年夏 渋谷
  • 9. © 2012-2022 BASE, Inc. 9 #TechKKHS 新しく金融系のプロダクト作りたい! ショップさんのキャッシュフローをなめらかにしたい! 作り方は任せます!
  • 10. © 2012-2022 BASE, Inc. 10 #TechKKHS メンバーは 初期専任メンバーは ● PO1名 ● エンジニア2名(@hgsgtk @yanagawa)
  • 11. © 2012-2022 BASE, Inc. 11 #TechKKHS リリース目標は まぁ年内行きたいよね
  • 12. © 2012-2022 BASE, Inc. 12 #TechKKHS ドメインも複雑だし、納期も厳し目だし、リソースも限られている のりと勢いで乗り越えるしかないな 楽しもう
  • 13. © 2012-2022 BASE, Inc. 13 #TechKKHS 僕が考えていたこと 新規事業に必要な技術選定ってなんだろう? 要件も決まりきっていないし、リリースしても、すぐにそのまま使われるかわからない。 とにかく不確実性が高いプロジェクト。 1. とにかく早く出すこと 2. 素早く改善サイクルを回し続けられること ● 自分たちでコントロールできる範囲が広いほうが良さそう ● 既存システムからは切り離したほうが良さそう ● 最低限APIとして切り出したい ● あえて既存と違う言語、アーキテクチャ、インフラでやるが良さそう
  • 14. © 2012-2022 BASE, Inc. 14 #TechKKHS 僕が考えていたこと ここまでは考えたが、個人的には言語とか細かいアーキテクチャはそこまでこだわりはない それより早く要件ヒアリングと詳細設計がしたい!逸る気持ちが抑えられない! @hgsgtkに基盤周りは任せて要件定義とアプリケーション設計に集中する形に役割分担 そのパートは任せるので1番いいやつを頼む! これがうまくハマってスピードが出た
  • 15. © 2012-2022 BASE, Inc. 15 #TechKKHS そんなこんなを乗り越え 生まれた 2018年12月 六本木
  • 16. © 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
  • 17. © 2012-2022 BASE, Inc. 17 #TechKKHS まとめると ● 既存システムと切り離したAPI ● インフラレイヤーも思い切って切り離す ● とにかく自分たちで素早く決めて実行できる状態を作る ● 新規事業においては実は技術選定も大事だけどチーム内の役割分担も大事 ● 特に最初の立ち上がりが大切な新規事業にとって、乗りと勢いは大事 ● 新規事業は現実人依存 ● 迷ったら気分が乗る方 ● 迷ったらオーナーシップがもてる方をやる ● 考えて選定した技術には支持者が絶対付く
  • 18. © 2012-2022 BASE, Inc. 18 #TechKKHS まとめると 私個人はこのあと、新規プロダクト開発を行う組織に興味がでたので、組織設計 から行うPdMにジョブチェンジしました。 どうしたらアジリティを落とさずにプロダクト成長させ続けられるかという課題 に取り組みながら、新規プロダクト開発とグロースをしています。 どうしたらプロダクト開発組織はより強くなれるのか、再現性を持って再生産で きるかということを日々課題に向き合いながらやっていっています。
  • 19. © 2012-2022 BASE, Inc. 19 技術選定後に入った人の話 4年後の今の話
  • 20. © 2012-2022 BASE, Inc. 20 #TechKKHS プロダクトの現在 ● グロースしつづけている
  • 21. © 2012-2022 BASE, Inc. 21 #TechKKHS チームの現在 ● エンジニア 8名 ○ チーム拡大中のため採用も強化中 ● チームが開発しているプロダクト ○ YELL BANKの拡張 ○ 本人確認機能(eKYC) ○ BASEカード(売上残高を使ったカード決済機能) ○ 振込申請(売上残高の銀行振込)
  • 22. © 2012-2022 BASE, Inc. 22 何が良かったか
  • 23. © 2012-2022 BASE, Inc. 23 #TechKKHS 何が良かったか ● アジャイルであること ● フルスタックであること ● フルサイクルであること ● プロダクトに集中できる技術
  • 24. © 2012-2022 BASE, Inc. 24 #TechKKHS アジャイルであること ● 仮説検証を高速でフィードバックすること ○ 当然のようにXPやアジャイルのテクニックにたどり着く ○ アーキテクチャ・コードとしての正解 ○ プロダクトとしての正解
  • 25. © 2012-2022 BASE, Inc. 25 #TechKKHS フルスタックであること ● 仮説検証を繰り返すならばチーム内で作業が完結するほうがよい ● 選択肢が絞られてはいけない ○ ex: AWSリソースの変更を含めたリファクタリング ● 反面、求められるスキルは多い ○ Vue/CSS/PHP/Go/Python/Terraform/AWS/Docker CircleCI/GitHub Actions etc
  • 26. © 2012-2022 BASE, Inc. 26 #TechKKHS フルサイクルであること ● Full Cycle Developers at Netflix — Operate What You Build ● 運用しつづけることで得られる気付き ● フィードバックループを高速で回すには自分たちで加速させる必要がある 要件定義 設計 企画 開発 テスト 問い合わせ 対応 デプロイ 運用 Software Developers
  • 27. © 2012-2022 BASE, Inc. 27 #TechKKHS プロダクトに集中できる技術 ● その課題・複雑さはプロダクトに依存するものか? ○ ユーザーの悩み事を解決している?技術的な悩み事を解決している? ○ トレードオフはある ● プロダクト志向だからこそ技術にとらわれない ● 技術志向だからこそプロダクトのためにどんな技術も実践できる
  • 28. © 2012-2022 BASE, Inc. 28 プロダクトに集中できる 技術選定
  • 29. © 2012-2022 BASE, Inc. 29 #TechKKHS 独立したアーキテクチャ ネットショップ作成サービ ス 「BASE」 認証・認可、ビジネス ロジックなどシステム処理 ショップ情報提供 サービス提供 APIサーバ群 BASE BANK ● デプロイ/ロールバックを任意に実施できる ● 構成やシーケンスの変更も容易 ○ Lambdaに切り出して非同期化
  • 30. © 2012-2022 BASE, Inc. 30 #TechKKHS Go ● 「プロダクト」以外の問題が少ない ○ 開発環境構築が容易 ■ 最新のGoがあればパッケージ管理、テストが実行可能 ○ バージョンアップ ■ Go1.Xの間は後方互換性が保証されている
  • 31. © 2012-2022 BASE, Inc. 31 #TechKKHS Go ● 「プロダクト」以外の問題が少ない ○ コードフォーマットが固定 ■ 設定やスタイルの良し悪しの議論が発生しない ○ 静的解析が充実している ■ 自動化(CIによる指摘)がしやすい ○ 学習コストが低い ■ 言語仕様がミニマム
  • 32. © 2012-2022 BASE, Inc. 32 #TechKKHS Python ● 機械学習エンジニアがAPIサーバをメンテできる ● 容易に機械学習系のライブラリを利用できる
  • 33. © 2012-2022 BASE, Inc. 33 #TechKKHS Amazon ECS on Fargate ● コンテナ ○ Goと合わせるとAnsibleやChefなどは不要 ● アプリエンジニアでもメンテが容易 ○ キャッチアップ可能な量の設定群 ○ 現状のメンバー数ではKubernetesはオーバースペック
  • 34. © 2012-2022 BASE, Inc. 34 #TechKKHS Terraform ● 専門家でないからこそコード化する ○ AWSリソースの可視化 ○ Unkown Unkownの軽減 ■ 今存在するリソースすべてをAWS Consoleから把握するのは不可能
  • 35. © 2012-2022 BASE, Inc. 35 #TechKKHS 基盤化 ● 共通ライブラリ ○ DB操作、HTTPサーバとしての基本機能、運用で必要な仕組み ■ 全社的なSaaS移行やAPM導入にも柔軟に対応できた ● CI/CDの整備 ○ デプロイの容易さ
  • 36. © 2012-2022 BASE, Inc. 36 次の一手
  • 37. © 2012-2022 BASE, Inc. 37 #TechKKHS 未来 ● より定量的に仮説検証を繰り返したい ● データ駆動開発の本格化 ○ PMMのJOIN ■ Product Marketing Manager ○ Looker導入 ○ GA/GTM本格化
  • 38. © 2012-2022 BASE, Inc. 38 まとめ
  • 39. © 2012-2022 BASE, Inc. 39 #TechKKHS 柳川まとめ 自分たちで決めて決めて決め続ける 4年間を振り返ると、新規事業チームが推進力を持って 改善しながら進むためのキーワードはこれだと実感しています この歴史のスタートは振り返ってみると技術選定だったのかもしれません 技術選定でオーナーシップを持てたことが今まで事業が続いてきた秘訣のように思います 新規事業はリリースして終わりではなくてグロースが待っています グロースする前に死ぬこともあるし、グロースできないと死にます とにかく出してチームで改善を回し続ける そのためには何ができるか 技術選定が偉大なチームの第一歩になることを願って 神になってクリエイションしましょう
  • 40. © 2012-2022 BASE, Inc. 40 #TechKKHS 清水まとめ - 新規事業開発と技術選定 ● チームがプロダクトに向き合う時間を最大化できるか ● チームが学習できるか ○ 裁量をもって決断できる ○ 試行と反省の回数と速度を最大化する ○ 小さく失敗できる ● 一緒にフルサイクル開発に挑戦するメンバーを募集中です!