新規事業を
⽀える⽂化と加速させる技術
~ devops / GCP / DDD ~
@mmmmao0530
⾃⼰紹介
- 名前 : ⼤⻄ 真央(@mmmmao0530)
- 所属 : 新規事業開発室 エンジニアリンググループ 関⻄⽀店勤務
- 社歴 :
- Sier
- Biglobe : スクラム推進、ドメイン駆動設計導⼊
- Sansan :
> Sansanプロダクト Webエンジニア ⼤阪拠点⽴ち上げ
> Sansanプロダクト エンジニアリングマネージャー
> 新規サービス 開発リーダー 兼 グループリーダー
今⽇話すこと
エンジニアの⽴場から
事業⽴ち上げ時に⼤切にしている
ポイントを紹介します
アジェンダ
- チェックイン
- ⽂化的な取り組み
- ⽂化の⼤切さ
- ⽬指すべき⽂化
- ⽬指すべき⽂化に向けて
- 技術的な取り組み
- ドメイン駆動設計
- GCPサーバレスサービス
- まとめ
チェックイン
組織体制(エンジニア関連のみ)
Sansan事業部
Eight事業部
DSOC
CSIRT
CxO室
新規事業開発室
約150名のエンジニア
2019年5⽉時点
組織体制(エンジニア関連のみ)
Sansan事業部
Eight事業部
DSOC
CSIRT
CxO室
新規事業開発室
7名のエンジニア
2019年9⽉時点
新規事業開発室の体制と⾃⾝の関わり⽅
新規事業開発室
BサービスAサービス Cサービス
開発リーダー アジャイルコーチ アジャイルコーチ
7名のエンジニア
新規事業開発室の体制と関わり⽅
新規事業開発室
BサービスAサービス Cサービス
開発リーダー アジャイルコーチ アジャイルコーチ
メインの話
7名のエンジニア
B2Bサービスを開発(社内トライアル中)
体制
エンジニア
3名
×
PdM
1名
×
営業
1名
×
⽂化的な取り組み ~ ⽂化の⼤切さ ~
VUCAの時代
• Volatility (不安定で変化が激しい)
• Uncertainty (不確実性が⾼く先⾏きが⾒えない)
• Complexity (様々な要素が複雑に絡み合う)
• Ambiguity (物事の因果関係が曖昧)
VUCAの時代
• Volatility (不安定で変化が激しい)
• Uncertainty (不確実性が⾼く先⾏きが⾒えない)
• Complexity (様々な要素が複雑に絡み合う)
• Ambiguity (物事の因果関係が曖昧)
予測不能で
具体的な解決策が存在しない
世界
VUCAの時代
• Volatility (不安定で変化が激しい)
• Uncertainty (不確実性が⾼く先⾏きが⾒えない)
• Complexity (様々な要素が複雑に絡み合う)
• Ambiguity (物事の因果関係が曖昧)
新規事業は
VUCAの時代の
ど真ん中
VUCA時代に必要な考え
学習
適応
変化
VUCA
マインド
VUCAマインドは勝⼿に名付けました
VUCA時代に必要な考え
エンジニア組織として、⼤切にするポイント
• ⽂化?
• 技術?
• ツール?
VUCA時代に必要な考え
エンジニア組織として、⼤切にするポイント
• ⽂化
• 技術
• ツール
全部⼤事
なぜ⽂化も含まれるのか?
ソフトウェア開発上の問題の多くは、技術的という
より社会学的なものである
ピープルウェアより
なぜ⽂化も含まれるのか?
• devopsとは⽂化運動だ
• devopsとは思考の⽅法であり、仕事の
⽅法である
• devopsとは効率的に仕事をするために、
社会構造、⽂化、技術を⾰新する⽅法
を⾒つけること
Effective DevOpsより
⽂化を中⼼に捉える
ツール
技術
⽂化
⽂化の⼤切さの別観点
VUCAマインドをどのレイヤーが受け⼊れるべきか?
会社
組織
チーム
個⼈
VUCAマインドをどのレイヤーが受け⼊れるべきか?
会社
組織
チーム
個⼈
なぜ個⼈なのか
⼀番影響を受ける個⼈が
VUCAマインドを持つことで
会社全体が変わる
過去経験則として
⾃分⾃⾝を変えることは出来る
過去経験則として
リーダー(⼈)はメンバー(他⼈)を
変化させることができない
過去経験則として
⽂化はメンバーを変化させることができる
⽂化的な取り組み ~ ⽬指すべき⽂化 ~
会社から期待されていること
持続的に成果を出し続ける組織
⽂化を考える上での外的要因
学習
適応
変化
VUCA
マインド
⽬指す⽂化
学習・適応・変化を
楽しむことができ
成果を加速させる⽂化
⽂化的な取り組み ~ ⽬指すべき⽂化に向けて ~
⽬指すべき⽂化に近づく考え
• 成⻑思考
• ⾮難のない⽂化 / not ヒューマンエラー
• 信頼マネジメント
• チーム学習
• 早期フィードバック
• エッセンシャル思考
成⻑思考
• ⽣まれつきのスキルより、努⼒して学習することによりス
キルを向上させる
• xxxは⾃分だと出来ないと考えるより、出来るために⼩さな
⾏動を起こし、学習していく
• 未知のものを拒絶せず、興味を⽰す
• リスクを背負うことを推奨
⾮難のない⽂化 / not ヒューマンエラー
• インシデントは罰ではなく、学習のチャンス
• インシデントは犯⼈探しではなく、環境・仕組みの改善探し
• 恐怖感のある環境だと保守的になる
https://www.irasutoya.com/2014/10/blog-post_90.html
信頼マネジメント
• リーダーはマイクロマネジメントしない
• 信頼しつつチームとして確認する
• 可能な限り権限を委譲する
• 全員が主体的に・⾃信を持って⾏動する
https://www.irasutoya.com/2017/10/blog-post_327.html
チーム学習
• 積極的に⾃分の学びを共有する
• 積極的に他⼈の学びを共有してもらう
• 「知らない」は当たり前で、学習のチャンス
早期フィードバック
• プロダクトが進むべき道に関する
フィードバック
• 働いた結果に対するメンバーからの
フィードバック
• 新しいことにチャレンジした結果の
セルフフィードバック
エッセンシャル思考
• 最⼩の時間で成果を最⼤にする
• 80:20の法則
• 答えがわからないので、最⼩の時間で答えを
⾒つけにいく
⽬指すべき⽂化に近づく考え
• 成⻑思考
• ⾮難のない⽂化 / not ヒューマンエラー
• 信頼マネジメント
• チーム学習
• 早期フィードバック
• エッセンシャル思考
補⾜:具体的な取り組み
• プランニング・チーム振り返り
• プロダクトミッション・営業資料作成
• プロダクトデモ
• ⾏動⽬標を中⼼とした⽬標設定&プランニング
• YWTによる個⼈振り返り&チームからのフィードバック
• ペアプロ・バディプロ・モブプロ
• ラーニングセッション
⽂化的な取り組み:まとめ
⽂化を中⼼に捉え
個⼈が変えていく・変わっていく
技術的な取り組み
開発コンセプト
安定したインフラですばやく動け
Facebookからお借り
使⽤⾔語
• フロントエンド
• React、Redux、TypeScript
• BFF
• Python、Django
• バックエンド
• Kotlin、Ktor
技術的な取り組み
• ドメイン駆動設計
• GCP サーバレスサービス
技術的な取り組み ~ ドメイン駆動設計 ~
ドメイン駆動設計とは
採⽤理由
• ⾃分たちがエンドユーザにならないサービス
• エンジニアが営業をする機会は少ない
採⽤理由
• ⾃分たちがエンドユーザにならないサービス
• エンジニアが営業をする機会は少ない
• ビジネス と 開発 でギャップが⽣まれやすい状況
採⽤理由
• ⾃分たちがエンドユーザにならないサービス
• エンジニアが営業をする機会は少ない
• ビジネス と 開発 でギャップが⽣まれやすい状況
• 良いサービスが作りにくい環境(完全に個⼈の意⾒です)
採⽤理由
エンジニアもビジネスに向き合い、開発に繋げたい
実践していること
• ビジネスの構造をドメインモデルで定義(PdMと対話)
• 概念ごとの関連性
• ビジネスルール
• PdMからビジネスの切れ⽬を教えてもらう
• 境界づけられたコンテキスト = マイクロサービスの単位
• 得られた知識(ドメインモデル)をコードに落とし込む
技術的な取り組み ~GCPサーバレスサービス~
アーキテクチャ
App Engine
Frontend
Cloud SQL Cloud Storage
Cloud Tasks
Stackdriver
Cloud Build
Cloud Functions
App Engine
BFF App Engine
Backend
アプリケーション
CI / CD
ロギング/ エラー通知
ストレージ / データベース
認証
Auth0(予定)
画像変換
ConvertAPI
アーキテクチャポイント
• インフラ構築
Ø GAE にデプロイするだけで⾃動構築
• デプロイ
Ø GAE で⽤意されたコマンドを実⾏することで、Blue-Green デプロイメント
Ø GAE - GitHub 連携による⾃動デプロイ(トラフィック移⾏だけ⼿動)
• 認証
Ø Auth0 により開発レスでテナントに応じた認証に対応
• ログ調査
Ø Stackdrier Logging によるログの可視化・検索・分析
• エラー通知
Ø Stackdriver Error Reporting による Slack・メール・アプリ への通知
• ⾮同期実⾏
Ø Cloud Tasks によるメッセージング制御
アーキテクチャポイント
ビジネスの本質に注⼒する
アーキテクチャを構築
技術的な取り組み:まとめ
• ビジネスの本質に向き合う(DDD)
• ビジネスの本質に注⼒する(SaaS / Paas)
まとめ
予測不能な時代を受け⼊れ
ビジネスの成功を最優先に考え・⾏動していく
We are hiring!!
新規事業を支える文化と加速させる技術~ devops / GCP / DDD ~

新規事業を 支える文化と加速させる技術 ~ devops / GCP / DDD ~