$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
決済システムは一人ではつくれなかった話
Search
netprotections
August 30, 2022
Technology
1
1.6k
決済システムは一人ではつくれなかった話
開発PM勉強会 vol.14の登壇資料です。
https://peer-quest.connpass.com/event/255783/
netprotections
August 30, 2022
Tweet
Share
More Decks by netprotections
See All by netprotections
新旧ツールを駆使した レガシーアプリの解読 #cm_odyssey
netprotections
0
55
Debeziumを活用した RDBMSイベントソーシングの仕組み
netprotections
0
950
Amazon Aurora Cluster Cloneを用いたDataLake構築
netprotections
2
550
株式会社ネットプロテクションズ 会社紹介資料
netprotections
1
60k
株式会社ネットプロテクションズ エンジニア職向け会社紹介資料
netprotections
0
17k
Other Decks in Technology
See All in Technology
2024 眼科AIコンテスト手法解説スライド 第5回日本眼科AI学会総会
minamikoyasuganka
0
110
pmconf2024_UPSIDER
upsider_tech
0
7.4k
セキュリティ系アップデート全体像と AWS Organizations 新ポリシー「宣言型ポリシー」を紹介 / reGrowth 2024 Security
masahirokawahara
0
130
[GDG DevFest Bangkok 2024] - The Future of Retail E-commerce with Gemini AI
punsiriboo
0
300
2024/11/29_失敗談から学ぶ! エンジニア向けre:Invent攻略アンチパターン集
hiashisan
0
440
ミスが許されない領域にAIを溶け込ませる プロダクトマネジメントの裏側
t01062sy
8
8.4k
2024/12/05 AITuber本著者によるAIキャラクター入門 - AITuberの基礎からソフトウェア設計、失敗談まで
sr2mg4
2
580
MySQL 8.0 から PostgreSQL 16 への移行と RLS 導入までの道のりと学び
baseballyama
0
1k
Autonomous Database サービス・アップデート (FY25)
oracle4engineer
PRO
0
270
A/Aテストにおけるサンプルサイズ/japanr2024
nikkei_engineer_recruiting
1
610
プロセス改善とE2E自動テストによる、プロダクトの品質向上事例
tomasagi
1
3.7k
総会員数1,500万人のレストランWeb予約サービスにおけるRustの活用
kymmt90
3
2.9k
Featured
See All Featured
How GitHub (no longer) Works
holman
310
140k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Gamification - CAS2011
davidbonilla
80
5.1k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Visualization
eitanlees
145
15k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
24
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Testing 201, or: Great Expectations
jmmastey
40
7.1k
A Philosophy of Restraint
colly
203
16k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Transcript
Copyright(C) Net Protections,Inc. All Rights Reserved. 決済システムは⼀⼈ではつくれなかった話 - 事業会社に来て「⼀⼈⽬エンジニア」として決済システムを世に出すまでの苦悩と葛藤 -
Copyright(C) Net Protections,Inc. All Rights Reserved. ⾃⼰紹介 2 相澤 雄⼤
Aizawa Yuta 2011年10⽉にネットプロテクションズに⼊社。2014年よりシステム統 括の⽴場で新規決済事業の⽴ち上げに参画し、BtoC向けカードレス決済 「atone(アトネ)」を⽴ち上げました。現在はBusinessとTechnology が垣根なく融合したIT組織とアーキテクチャの構築に注⼒しています。 プライベートではサウナをこよなく愛する2児の⽗。よいロウリュを温度 と湿度の関係で導くことができるサウナ・スパプロフェッショナルの資 格を保有しています。 株式会社ネットプロテクションズ ビジネスアーキテクトグループ VP of Architecture
Copyright(C) Net Protections,Inc. All Rights Reserved. 2009年 2011年 2012-2013年 2012-2014年
2014-2017年 2018-2022年 新卒でフューチャーアーキテクト株式会社へ⼊社 在籍期間中に⼩売流通系の2つのプロジェクトに参画 最初のプロジェクトで企画・要件定義、その後のプロジェクトで設計・開発・保守運⽤を担当 株式会社ネットプロテクションズへ参画 参画初期はNP後払い事業の業務部⾨とシステム部⾨の架け橋的役割を担いながらIT部⾨の「何でも屋」として奔⾛ 最初の1年間は事業理解のため営業やカスタマーサポートも経験 ポイント会員事業のリニューアル アプリケーションやインフラの構成を検討するシステム担当として参画 ゲーム、商品交換、懸賞などポイントを楽しく使える新機能を約1年かけてサービスローンチ クレジットカード決済事業のPCIDSS準拠 PMとして参画し、アプリ構成・システムアーキテクチャ・セキュリティ基準を⾒直し 社内施設・制度等も⾒直し、運⽤設計を含め約1年半かけて準拠を達成 BtoC向けカードレス決済「 (アトネ)」の⽴ち上げ システム統括の⽴場で参画し、決済システム全体の開発(Web/Mobileアプリ、基幹システム全般) エンジニアは⾃分ひとりの状態から開発組織を⼤きくしてサービスローンチを実現 BizとTechが垣根なく融合した「つぎのIT組織」と「事業横断アーキテクチャ」づくり 現在は会社全体のIT組織設計やアーキテクチャづくりに注⼒ BtoC向け事業を中⼼に開発プロジェクト推進及びそのフォローも継続して実施中 本⽇お話しすること 3 事業会社に来て「⼀⼈⽬エンジニア」として決済事業を⽴ち上げたときの話をします🧑💻 本⽇は ココの話
Copyright(C) Net Protections,Inc. All Rights Reserved. ⽬次 4 01 |
はじめに • atoneとは • Net Protectionsの開発組織と事業を⽀える機能群 • atoneが⽴ち上がるときの状況 02 | 本編 • 本⽇お伝えしたいこと • 開発組織とシステム構成 • 技術選定 • 事業と経営 03 | おわりに • 本⽇のまとめ
Copyright(C) Net Protections,Inc. All Rights Reserved. 5 クレジットカード不要で、誰でも・すぐに・便利に・お得に ECサイト・実店舗の両⽅で使える会員登録制の後払い決済サービス スマホアプリをダウンロードすれば利⽤状況の管理やコード決済も可能
ECサイト 実店舗 とは
Copyright(C) Net Protections,Inc. All Rights Reserved. 6 ※1 ⼝座振替以外の⽀払い⽅法では、利⽤⽉のみ190円(税抜)が発⽣いたします。 ※2
利⽤上限額は50,000円を基準として、お客様のご利⽤状況に応じて変動いたします。上限⾦額に関わらず、審査結果はお客様の利⽤状況や注⽂内容によって変動いたします。 シンプルで分かりやすい「やさしい後払い」を提供 買い物やお⾦管理の不安を取り除いて 安⼼してお買い物ができるサービス設計 とは
Copyright(C) Net Protections,Inc. All Rights Reserved. Net Protectionsの開発組織と事業を⽀える機能群 7 開発組織と共に横断思想でシステムを育て「資産価値」を上げていく
例︓NP後払いのために構築した与 信の仕組みは、他の事業でも活⽤で きるようにする 本⽇は ココの話
Copyright(C) Net Protections,Inc. All Rights Reserved. atoneが⽴ち上がるときの状況 8 これらを複合的に考えて「atone」を⽴ち上げる必要があった fufururu(現
) 決済会員に先⾏して「ポイント会員」の システムを既に構築していた 創業当初から運営していた「NP後払い」事 業の延⻑に会員制の戦略があった
Copyright(C) Net Protections,Inc. All Rights Reserved. 本⽇お伝えしたいこと 9 組織が育たなければシステムは育たない 1
技術の弱みは使い⽅次第でカバーできる 2 三位⼀体だったから苦難も乗り越えられた 3
Copyright(C) Net Protec;ons,Inc. All Rights Reserved. 本⽇お伝えしたいこと 10 組織が育たなければシステムは育たない 1
技術の弱みは使い⽅次第でカバーできる 2 三位⼀体だったから苦難も乗り越えられた 3
Copyright(C) Net Protections,Inc. All Rights Reserved. 開発組織とシステム構成 11
Copyright(C) Net Protections,Inc. All Rights Reserved. 本当はこうしたかった話 | 開発組織とシステム構成 12
開発組織 潤沢な予算を⼿に「NP後払い」や 「ポイント会員」の刷新と合わせた 開発体制を敷いていく システム構成 単⼀事業だけでなく 複数の決済事業で活⽤できる 横断的なプラットフォームを 構築していく
13 でも実際は・・・
Copyright(C) Net Protections,Inc. All Rights Reserved. でも実際は… | 開発組織とシステム構成 14
開発組織 • エンジニアは「⾃分ひとり」しかいなかった • 限られた予算の中で組織(開発体制)をどう増やしていくかも考えなければならなかった ◦ 外部へ開発委託できず、ほぼすべて「内製」せざるを得ない状態だった • つくれる⼈がいないから教えながらつくっていく必要があった ◦ 開発未経験の社員やインターンで参加している学⽣にプログラミングを教えながら進めていった • 貴重な予算の⼤半はセキュリティ対策や当時の体制で内製化が困難だったスマホアプリ領域へ ◦ 余談︓ここも内製化を狙って当時のクロスプラットフォームの開発フレームワークに⼿を出すも⼤失敗…
Copyright(C) Net Protections,Inc. All Rights Reserved. でも実際は… | 開発組織とシステム構成 15
• 余裕は全くなかったので、既存資産を活かして「最⼩限の開発⼯数」で実現できる構成を選択 • 独⽴して構築する領域、既存システムとのシナジーを考える領域を⾒定める ◦ ⼤半の機能は独⽴させて構築 ▪ 独⽴して構築することで市場ニーズに合わせた新規機能開発を速く⾏えるメリットもある ◦ 世の中に出してみないと分からない領域はシステム仕様を固定させずにあえて柔軟につくる ▪ まずはオペレーションと組み合わせてながら、本当に必要な業務フローを⾒定める ▪ 新規事業の開発では、最初に「作り込みすぎない」ことも重要な考え⽅ ◦ 重要なリスクコントロール領域は、既存の「NP後払い」のデータを参照できるように ▪ 機能は新規事業側に実装しつつ、横断的にデータ活⽤ができるようシステム全体を構築 • サービス化を視野に⼊れつつ、初⼿は既存システムとあえてデータ連携させて構築することも ◦ たとえば会員データは「ポイント会員」を親データとして構築し初期の開発⼯数を下げる ◦ サービスリリース翌年にポイント会員システム依存となっていたデータを切り離してサービス化 システム構成
Copyright(C) Net Protections,Inc. All Rights Reserved. 開発組織 システム構成 今振り返って思うこと |
開発組織とシステム構成 16 システム開発は組織開発。 決済システムは⼀⼈の⼒では 本当にどうにもならない。 事業を⽴ち上げながら、 未来に向けて資産価値もあげる 取り組みは本当に⼤変。 プロダクト規模相応の⼈数がいなければ、いつまで たってもスピードは上がらない。組織をつくること を考える。 フェーズが進めばシステム規模も⼤きくなりメンバ ー構成も変化する。1チームですべてを認知するの が難しくなる。 チームで意⾒を出し合いながら、意図するシステム 構成に近づけるよう、組織の形を進化させていくこ とが⼤切。 決済は⾯取り勝負の世界。事業システムの開発はビ ジネスのためにある。先⼿を打つ開発の必要性も⼗ 分に理解できる。 それでも、常に将来の構成を⾒据えながら、今に取 り組むべき。ロードマップを考えているか否かで、 技術負債の溜まり⽅が⼤きく異なる。 絶対に譲れないものは主⽬的で刷新する。それ以外 は、事業上ROIの⾼い機能開発に混ぜ込みながら、 少しずつ変えていく。
Copyright(C) Net Protections,Inc. All Rights Reserved. 本⽇お伝えしたいこと 17 組織が育たなければシステムは育たない 1
技術の弱みは使い⽅次第でカバーできる 2 三位⼀体だったから苦難も乗り越えられた 3
Copyright(C) Net Protections,Inc. All Rights Reserved. 技術選定 18
Copyright(C) Net Protections,Inc. All Rights Reserved. 技術選択における制約 | 技術選定 19
エンジニアは⾃分ひとりの開発組織において選択できる「技術」も限られていた なるべく仕組みでカバーでき、未経験者でも習熟が容易な技術を選定せざるを得ない 決済は⾯取りでスピード勝負の世界、少ないリソースでもとにかくはやく⽴ち上げたい 採⽤実績もあり 実務でやってた 社内で採⽤実績なし… 個⼈的に取り組んでいた技術
Copyright(C) Net Protections,Inc. All Rights Reserved. ⾔語・フレームワーク選定の苦悩 | 技術選定 20
強み 弱み • 型を意識しない書き⽅ができるので、開発未 経験者でもコードを書く学習コストが低い • アプリ基盤をととのえれば、未経験者でもレ ールに沿った開発で⾃⾛できる • フルスタックなフレームワークやライブラリ を活⽤して開発⼯数を最⼩限に抑えられる • 静的な型付けができず品質を求める決済シス テムには向いていない • パフォーマンス⾯でも⼤量の⼀括処理に向い ていない • Web画⾯/API/バッチ/⾮同期処理と複数の システムを構築する必要があったがフルスタ ックで⼩回りが効かない エンジニア1⼈状態で「Ruby on Rails」を使って決済システムを作るときの強みと弱み 本当にRailsで決済システムをつくって良いのだろうか… 🤔
Copyright(C) Net Protections,Inc. All Rights Reserved. ⾔語・フレームワーク選定の苦悩 | 技術選定 21
技術の弱みをカバーする戦略をとることで、⼩さな開発組織で迅速な⽴ち上げを実現 静的な型付けができず品質を求める決済 システムには明らかに向いていない テストコード⽂化と厳格なCI/CD レビューフローの徹底 パフォーマンス⾯でも⼤量の⼀括処理に 向いていない サービスローンチ初期の規模なら許容可能 システム移⾏計画を⽴てた上でリプレイス 複数システムを構築する必要があったが フルスタックで⼩回りが効かない フルスタックを解体して全システムで利⽤ (ビジネスロジック層以下を部分的にGem化)
Copyright(C) Net Protec;ons,Inc. All Rights Reserved. ⽴ち上げ当初のatoneシステム構成 | 技術選定 22
⚙システム規模の⽬安 画⾯数︓ 50画⾯ API本数︓ 30本 基幹バッチ︓ 50本 その他処理︓ 20個 📝補⾜事項 • サービスローンチ当初は「EC決済」のみ • 現在は部分的に別の技術でリプレイス ※事業システムが呼び出す汎⽤的な機能群はJava,Kotlin,Goなどで実装
Copyright(C) Net Protec;ons,Inc. All Rights Reserved. 本⽇お伝えしたいこと 23 組織が育たなければシステムは育たない 1
技術の弱みは使い⽅次第でカバーできる 2 三位⼀体だったから苦難も乗り越えられた 3
Copyright(C) Net Protections,Inc. All Rights Reserved. 24 事業と経営
Copyright(C) Net Protections,Inc. All Rights Reserved. 本当はこうしたかった話 | 事業と経営 25
「課題を抱えながらも、なんとか全てのシステムを構築︕」 最後の総合テストも間もなく終えて、 さぁこれからリリースだ︕という時に…
26 でも実際は・・・
Copyright(C) Net Protec;ons,Inc. All Rights Reserved. でも実際は… | 事業と経営 27
完成したシステムが⽬の前にある中で 親会社の意向により事業が⼀時停⽌に… 背景の補⾜ • 株式会社ネットプロテクションズは過去に親会社が3度変わっており、当初は主要株主 (親会社)が変わって間もないタイミングだった。 • 2021年12⽉15⽇に、株式会社ネットプロテクションズホールディングスは東京証券取引 所第⼀部(現在の東証プライム市場に相当)に上場を果たしている。 • 現在では、親会社に納得してもらえる戦略の幅の中でしか動けないということはなく、株 主に向き合ったうえでより⾃由な経営ができるようになっている。 新規事業を世に出すより「既存事業を伸ばす・改善する」に注⼒する⽅針へ転換
28
29
Copyright(C) Net Protections,Inc. All Rights Reserved. 約1年後に再稼働 | 事業と経営 30
もうダメだと思いかけたその時に、親会社(株主)が変わって追い⾵ 半年後にリリースを⽬指して再びスタートすることに ここから東証⼀部上場まで株式会社アドバンテッジパートナーズにご⽀援をいただきながら駆け抜けることに︕ (現在の東証プライム市場)
Copyright(C) Net Protections,Inc. All Rights Reserved. 三位⼀体 | 事業と経営 31
経営・事業・開発が⼀体になっていたからこそ最速で再稼働できた リリース直前で事業が⽌まる = 普通だったら嫌になって あきらめてしまうこと • ビジネスとシステムの垣根が低 いことは、組織が壊れずに再稼 働ができた⼤きな要因だった • 経営陣(CEO/CTO)とも会社の 主戦略の1つとして「絶対に復 活させたい」というコミュニケ ーションがとれていた IT投資の予算を獲得して 強みを活かしたエンジニア体制 を整えることができた • 決済システム構築経験者やRuby 経験豊富なエンジニアがこのタ イミングでチームへジョイン • 経験者の⾼い専⾨性を活かしつ つ、初期関与メンバーは Biz×Techでチームをリード ⼀度作りきっていたからこそ事 業性質を考え「ここだけは直し たい」リストが⼿元にあった 懸念となっていたアーキテクチャ を再検討し⾒直すことで結果的に 品質が向上した • 決済モジュールはよりサービ スの拡張性が持てるよう構成 を⾒直し • ⾮同期処理プロセスを追加し 決済処理の可⽤性を向上
Copyright(C) Net Protections,Inc. All Rights Reserved. Biz×Techの組織の強み | 事業と経営 32
Biz×Techが⼀体となった組織が事業推進を加速させ「次の新しい事業」を⽣み出す⼟壌となる atoneの開発に携わったメンバーが 翌2018年に海外事業として次世代 型スマホ後払い決済「AFTEE(アフ ティー)」を⽴ち上げ 事業⽴ち上げ初期からatoneシステ ムの実装を担っていたメンバーが現 在の事業責任者としてatoneを推進 経験者の⾼い専⾨性を活かしながら Biz×Techでリードできる開発組織 未経験者を Biz×Techで成⻑⽀援
Copyright(C) Net Protections,Inc. All Rights Reserved. サービスローンチまでの全体スケジュール | 事業と経営 33
Copyright(C) Net Protections,Inc. All Rights Reserved. 本⽇のまとめ | おわりに 34
組織が育たなければシステムは育たない • プロダクト規模相応の組織がなければどうにもならない • 意図するシステム構成に近づけるよう、チームで意⾒を出して開発組織の形を最適化させていく • 未来を⾒据えながら今に取り組み、事業上優先度の⾼い開発と⼀緒に少しずつ変えていく 技術の弱みは使い⽅次第でカバーできる • 選択できる「技術」は開発組織の状況によって制約を受ける • 弱みをカバーする戦略をとることで、⼩さな開発組織で迅速な⽴ち上げが実現可能 • ローンチ初期は弱みを許容し、移⾏計画を⽴ててリプレイスしていく選択も 三位⼀体だったから苦難も乗り越えられた • 組織が壊れずに再稼働できたのは、経営と事業と近い距離に開発組織があったから • ⼀度全部作りきっていたからこそ「ここだけは直したい」が⾒えていた • Biz×Techの組織が事業の推進を加速させ「次の新しい事業」を⽣み出す⼟壌となる
None