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
組織構造の力学を操作して、アプリ開発プロセスを最大化させる / organizationa...
Search
Masato Ishigaki / 石垣雅人
September 10, 2020
Technology
2
730
組織構造の力学を操作して、アプリ開発プロセスを最大化させる / organizational structure to maximize the development process
2020/09/21 「iOSDC Japan 2020」登壇資料
Masato Ishigaki / 石垣雅人
September 10, 2020
Tweet
Share
More Decks by Masato Ishigaki / 石垣雅人
See All by Masato Ishigaki / 石垣雅人
技術負債による事業の失敗はなぜ起こるのか / Why do business failures due to technical debt occur?
i35_267
3
1.6k
「開発生産性を上げる改善」って儲かるの?に答えられるようにする / Is development productivity profitable?
i35_267
25
18k
「開発生産性」はエンジニア”だけ” のモノではなくなった? / "Development productivity" is no longer just for engineers?
i35_267
8
2.5k
開発生産性の現在地点~エンジニアリングが及ぼす多角的視点 / Current status of development productivity
i35_267
68
25k
開発生産性の低下による、事業の失敗はなぜ起こるのか / ProductivityPitfalls
i35_267
6
1.4k
開発生産性の多角的接点〜1,000名のクリエイター組織 × 開発生産性〜 / Multifaceted touchpoints of development productivity
i35_267
5
1.5k
内製化で強化させる、事業のスケーラビリティーとエンジニアの成長戦略 / insourcing
i35_267
2
350
見積もりをしない。
i35_267
4
1.2k
The Metrics Key_ Connecting Product, System, Team
i35_267
3
4.4k
Other Decks in Technology
See All in Technology
マネジメント視点でのre:Invent参加 ~もしCEOがre:Inventに行ったら~
kojiasai
0
470
グローバル展開を見据えたサービスにおける機械翻訳プラクティス / dp-ai-translating
cyberagentdevelopers
PRO
1
150
サイバーエージェントにおける生成AIのリスキリング施策の取り組み / cyber-ai-reskilling
cyberagentdevelopers
PRO
2
200
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
9
120k
30万人が利用するチャットをFirebase Realtime DatabaseからActionCableへ移行する方法
ryosk7
5
350
Shift-from-React-to-Vue
calm1205
3
1.3k
CyberAgent 生成AI Deep Dive with Amazon Web Services / genai-aws
cyberagentdevelopers
PRO
1
480
大規模データ基盤チームのオンプレTiDB運用への挑戦 / dpu-tidb
cyberagentdevelopers
PRO
1
110
AIを駆使したゲーム開発戦略: 新設AI組織の取り組み / sge-ai-strategy
cyberagentdevelopers
PRO
1
130
生成AIとAWS CDKで実現! 自社ブログレビューの効率化
ymae
2
330
一休.comレストランにおけるRustの活用
kymmt90
3
580
Gradle: The Build System That Loves To Hate You
aurimas
2
150
Featured
See All Featured
Six Lessons from altMBA
skipperchong
26
3.5k
Facilitating Awesome Meetings
lara
49
6k
Raft: Consensus for Rubyists
vanstee
136
6.6k
It's Worth the Effort
3n
183
27k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
3
370
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
Designing for Performance
lara
604
68k
Building Adaptive Systems
keathley
38
2.2k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
Transcript
組織構造の力学を操作して アプリ開発プロセスを最大化させる iOSDC Japan 2020 September 21, 2020 1
2 Outline / Structure of the Talk ・iOSにおける新規事業開発をベースにお話します ・リードタイムを削減しながらも、良いものを市場へ投入したい ・組織とプロセスを操作することでバリューストリームを設計する
・組織構造の力学 / 生産性の可視化・バランス / 意思決定のプロセス
3 About me Masato Ishigaki / 石垣 雅人 DMM.com 総合トップ開発部
部長 2015年度 エンジニア 新卒入社 2017年より、DMMにおける3000万のアカウント(ID)、認証(Auth) のバックエンド 周りのプロダクトオーナーを経て、 2018年7月にリードナーチャリング領域を強化す るチームの立ち上げを行う。 2020年より、DMMの総合トップなどを管轄する総合 トップ開発部の部長を務める。 現在はアプリプラットフォームのプロダクトオーナーにも 従事 @i35_267 i35-267 著 『DMMを支えるデータ駆動戦略』 https://www.amazon.co.jp/dp/4839970165/
事業 40以上の事業を 20以上のグループ会社で運営 規模の大小、ジャンル関係なく 未来を感じるビジネスに投資し 領域とわず、なんでもやります。
数字でみるDMM ※ ) 、 証券、 、 ,他連結( 月期) ※ )
サービスの会員数( 月期) 売上 会員数 事業数 グループ会社 設立 従業員数 ※ ※ 億円 万人 事業以 上 以 上 社 年目 名
6 DMM PointClub DMMの新しいプラットフォームアプリ
7 Client BFF Backends For Frontends API API SDK API
Software Development Kit Application Programming Interface Database iOS ・言語 : Swift ・設計:VIPER+FlowController(マルチモジュール) ・利用技術:SwiftUI+Combine ・CI : Bitrise ・デザインツール: Figma BFF / Backend APIs ・言語 : Go ・設計:DDD(ドメイン駆動設計) ・環境:AWS ECS(Fargate),etc... ・DB : Aurora ・CI : CircleCI ・API定義:OpenAPI (Swagger) ・・ ・ Microservices Tracking ・Firebase→BigQuery→DWH ・AppsFlyer ・AppAnnie Architecture
8 事業責任者 (プロダクトオーナー) 開発チーム UI / UX Designer iOS +
Android Engineer Backend Engineer Growth / Marketing Team 計13 ~ 14名
9 Client BFF Backends For Frontends API API SDK API
Software Development Kit Application Programming Interface Database iOS ・言語 : Swift ・設計:VIPER+FlowController(マルチモジュール) ・利用技術:SwiftUI+Combine ・CI : Bitrise ・デザインツール: Figma Backend APIs ・言語 : Go ・設計:DDD(ドメイン駆動設計) ・環境:AWS ECS(Fargate),etc... ・DB : Aurora ・CI : CircleCI ・API定義:OpenAPI (Swagger) ・・ ・ Microservices Tracking ・Firebase→BigQuery→DWH ・AppsFlyer ・AppAnnie という状況下の中でプロダクトを作るときに意識する部分 「リードタイムを最大限短縮する」 不確実性が高い事業環境下、 予算が尽きる前にできるだけ早く市場へ投入して、 イテレーティブな仮説検証を経て、 稼がなければ、事業が死んでしまう
10 リードタイムを「1/3」に短縮できれば、 1年間で4回リリースを12回 (3倍) にすることができる ※ 2年間だったら、8回 → 24回 ※3年間だったら、12回
→ 36回 ....
11 Client BFF Backends For Frontends API API SDK API
Software Development Kit Application Programming Interface Database iOS ・言語 : Swift ・設計:VIPER+FlowController(マルチモジュール) ・利用技術:SwiftUI+Combine ・CI : Bitrise ・デザインツール: Figma Backend APIs ・言語 : Go ・設計:DDD(ドメイン駆動設計) ・環境:AWS ECS(Fargate),etc... ・DB : Aurora ・CI : CircleCI ・API定義:OpenAPI (Swagger) ・・ ・ Microservices Tracking ・Firebase→BigQuery→DWH ・AppsFlyer ・AppAnnie 考えるべきことは2つ ・どういう組織構造で作っていくか ・どういうプロセスで作っていくか 個々のスキルにプロダクト開発のリードタイムが左右されてないように 構造(仕組み)から生まれる力学を意識してバリューストリームを作っていく。 生産性の再現性を作る
12 サービス iOS / Android UIデザイン バックエンド Pattern.1 専門レイヤーにチームを分ける モバイルチーム
バックエンドチーム スモールチームをどう分けていくか Pattern.2 ドメインチーム体制 サービス iOS / Android UIデザイン バックエンド ドメインチーム
13 サービス iOS / Android UIデザイン バックエンド モバイルチーム バックエンドチーム Pros
/ Cons ・人数 + 0→1フェーズということを考慮した上で、専門性を 持って一気に構築を進める専門レイヤーごとのチームを採 用 ・それぞれのチームでイテレーションを回すことで会話のプ ロトコルを合わせる ・スクラムチームでいう「LeSS」の体制 ・懸念点は、1つのプロダクトを作るにあたって、モバイルと バックエンドのコミュニケーションが必ず必要になること。 オーバーヘッドが高くなる。 Pattern.1 専門レイヤーにチームを分ける スモールチームをどう分けていくか
14 「リードタイム削減 : その1」 全員のプロダクトイメージを完全に一致させる 特に初期の頃は、皆が同じものをイメージしていないと 議論が散らばって、時間だけが過ぎていく これを防ぐ解決策が必要
15 「0→1を組織でスタートを切るための3つの構築」 1. ユーザーストーリーマッピング 構築 2. プロダクトバックログ 構築 3. 開発プロセス
構築 Photo by Martin Katler on Unsplash
16 1. 1. ユーザーストーリーマッピング 構築 ↓ 「Scope」 2. プロダクトバックログ 構築
↓ 「Priority」 3. 開発プロセス 構築 ↓ 「Process」
17 「0→1を組織でスタートを切るための3つの構築」 1. ユーザーストーリーマッピング 構築 2. プロダクトバックログ 構築 3. 開発プロセス
構築 Photo by Martin Katler on Unsplash
18 Scope ユーザーストーリーマッピング
19 Scope ユーザーストーリーマッピング バックボーン ナラティブフロー 画面 詳細 骨格 物語 (ユーザーストーリー)
UIデザイン タスク
20 Scope ユーザーストーリーマッピング アカウント登 録・認証する 支払い方法 を選択する 商品を 検索する 商品を
購入する 商品 ページを見る ジャンル で検索 メールアドレ スで 登録する SNSアカウン トで登録でき る カート に入れる クレジット カード を登録する ポイントを 配る クーポンを 配る 購入完了 メールを送る
21 商品を 検索する 商品を 購入する カート に入れる アカウント登録 ・認証する 支払い方法を
選択する 商品を 検索する 商品を 購入する 商品 ページを見る ジャンル で検索 商品名 で検索 価格が見える 商品 レビューが 見れる メールアドレス で 登録する SNSアカウント で登録できる ゲストで 登録できる カート に入れる クレジットカー ド を登録する ポイントを 配る クーポンを 配る クーポン を使う 電子マネーで 払う バックボーン 抽象度 優先度 t t ナラティブフロー 詳細 購入完了 メールを送る リリース #1(MVP)
increment iterative プロダクト(機能)の積み上げ方 22
23 商品を 検索する 商品を 購入する カート に入れる アカウント登録 ・認証する 支払い方法を
選択する 商品を 検索する 商品を 購入する 商品 ページを見る ジャンル で検索 商品名 で検索 価格が見える 商品 レビューが 見れる メールアドレス で 登録する SNSアカウント で登録できる ゲストで 登録できる カート に入れる クレジットカー ド を登録する ポイントを 配る クーポンを 配る クーポン を使う 電子マネーで 払う バックボーン 抽象度 優先度 t t ナラティブフロー 詳細 購入完了 メールを送る リリース #1(MVP) increment iterative
24 Priority プロダクトバックログ 商品を検索する 商品を購入する 商品を検索する 商品ページを見る アカウント 登録・認証する 支払い方法を
選択する 商品を購入する ジャンルで検索 商品名で検索 価格が見える 商品レビューが見える メールアドレスで 登録する SNSアカウントで 登録する ゲストで登録する カートに入れる クレジットカードを 登録する クーポンを使う 電子マネーを使う 購入完了メールを送る ポイントを配る クーポンを配る カートに入れる ジャンルで検索 商品名で検索 価格が見える 商品レビューが見える メールアドレスで 登録する SNSアカウントで 登録する カートに入れる クレジットカードを 登録する 購入完了メールを送る 初期MVP #1
25 「リードタイム課題 : その2」 初期MVPで作るべき、プロダクトのイメージが重なって無事開発が開始できる 次の出てくる問題として、 各レイヤーのスピード感の違いによる 機能結合のタイミング、デモのタイミング、意思決定のプロセス を整わせなければいけない
API 26 メールアドレスで 登録する ユーザーストーリー UIデザイン iOS API API iOS
API 結合 開発 / 設計 WF デモ Backends API Backends API ジャンルで検索 クレジットカードを 登録する ・ ・ ・
27 「0→1を組織でスタートを切るための3つの構築」 1. ユーザーストーリーマッピング 構築 2. プロダクトバックログ 構築 3. 開発プロセス
構築 Photo by Martin Katler on Unsplash
28 「流れ」を思考する やれることは沢山ある ・バリューストリームを設計する(バリューストリームマッピングを書く) ・TOC(制約理論)を意識して、ボトルネックはどこかを突き止める ・リソース効率ではなく、フロー効率を意識する ・プロセスをモニタリングする / プロセスを制御する
29 「流れ」を思考する やれることは沢山ある ・バリューストリームを設計する(バリューストリームマッピングを書く) ・TOC(制約理論)を意識して、ボトルネックはどこかを突き止める ・リソース効率ではなく、フロー効率を意識する ・プロセスをモニタリングする / プロセスを制御する
30 プロセスをモニタリングする 局所最適化ではなく、全体最適化を目的とした 「かんばん」 ストーリー WF 設計 iOS / BE
開発中 結合 計測をしてボトルネックの可視化 PO確認 クローズ
31 「かんばん」の累積フローを可視化する 工程(プロセス) リードタイム WIP 設計 開発 & 結合 PO確認
クローズ
32 スプリントレビュー(PO確認)待ちでの リードタイムがもったいない ↓ 検証用環境に上げてもらったら、 BitriseのQRコード読み込んで、 速攻確認→クローズの流れ 意思決定のプロセス
リードタイム スタート 価値 工程 WIP制限(作業の制御)をかけて、 1個ずつ流すように制御する ここでいうと複数ストーリーを着手しない WIP制限 Single Piece
Flow(1つのサイクルで1つの仮説)
34 まとめ ・人数規模や事業規模によって組織構造を最適化する ・どういう組織構造で作っていくか(構成と) ・どういうプロセスで作っていくか ・生産性の可視化 ・ボトルネックなプロセスに対策を打ち込む
35 ご清聴ありがとうございました