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
18-E-5_Uzabase_高山温_デブサミ登壇資料
Search
UZABASE
February 26, 2021
Technology
13
56k
18-E-5_Uzabase_高山温_デブサミ登壇資料
UZABASE
February 26, 2021
Tweet
Share
More Decks by UZABASE
See All by UZABASE
株式会社ユーザベース 企業説明資料
uzabasetech
1
600
Other Decks in Technology
See All in Technology
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
810
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
150
Google Cloud で始める Cloud Run 〜AWSとの比較と実例デモで解説〜
risatube
PRO
0
110
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
16
4.1k
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
500
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
2
370
2024年にチャレンジしたことを振り返るぞ
mitchan
0
140
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.3k
レンジャーシステムズ | 会社紹介(採用ピッチ)
rssytems
0
150
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
220
Postman と API セキュリティ / Postman and API Security
yokawasa
0
200
MLOps の現場から
asei
6
640
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
4 Signs Your Business is Dying
shpigford
181
21k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
It's Worth the Effort
3n
183
28k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
Designing for humans not robots
tammielis
250
25k
How GitHub (no longer) Works
holman
311
140k
Documentation Writing (for coders)
carmenintech
66
4.5k
Building Applications with DynamoDB
mza
91
6.1k
Code Review Best Practice
trishagee
65
17k
A Modern Web Designer's Workflow
chriscoyier
693
190k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Transcript
!"#として招聘されて1年で $%&!'()*'(+を大幅改善するために追求した 唯一の成果指標 !"!"#"!#$% !"#$#%&'()*)+),)-'.(/-'012#3&4*#'
5 自己紹介 高山 温 !"#$#%&'()*)+),) / -./0)*1 スペック1 ピクシブ株式会社 2012年-2019年
• 主にサーバーサイドエンジニア、 エンジニアリングマネージャー • 新規プロジェクト立ち上げや福岡オフィ ス立ち上げなどの経験多数 • 2017年からCTO スペック2 ISUCON 6 本選出題担当 2016年 スペック3 株式会社ニューズピックス CTOとして入社 2020年
6 会社名 設立 代表者 本社所在地 事業内容 上場市場 代表取締役CEO 梅田優祐 /
代表取締役COO 稲垣裕介 2334年5月6日 株式会社ユーザベース / Uzabase, Inc. 東京都港区六本木7-7-7 TRI-SEVEN ROPPONGI 13F 企業活動の意思決定を支える情報インフラの提供 東証マザーズ (3966) ձࣾ֓ཁ
7 Our mission 私たちは、世界中で愛される経済情報インフラをつくります。 あらゆる経済情報を人とテクノロジーの力で整理・分析・創出し、 ビジネスパーソンの生産性を高め、創造性を解放します。 私たちは経済情報を通じて世界中の意思決定を支え、世界を変えます。 経済情報で、世界を変える We guide
business people to insights that change the world
8 エキスパート・ネットワーク 経営企画部、新規事業担当者向けにリサーチ支援サービスを提供。専門家にインタビュ ーができる「エキスパートリサーチ」や先端領域における専門家の見解を集約した「エ キスパートオピニオン」を展開 経済情報プラットフォーム 金融機関、事業会社向けに世界中の企業財務データ、業界レポート、市場データ、 9:!情報など、企業戦略の分析や策定に必要な情報を提供 経済ニュースメディア(日本市場向け) 国内外;<<メディアのニュースのほか、012#3&4*#編集部のオリジナル記事・動画
コンテンツを配信し、業界人や専門家のコメントと併せて閲覧可能 =5=マーケティングプラットフォーム ユーザベースグループの企業データベースと顧客の内部データを統合し、データ 分析に基づいて成約確度の高い企業を特定。!=9(アカウント・ベースドマーケテ ィング)の実践を支援 スタートアップ情報プラットフォーム スタートアップの事業概要、資金調達、投資家、提携先、オリジナル記事などをワン ストップで提供 コンサルティング事業 法人向けに新規事業開発・次世代⼈材育成・組織活性化の推進及びユーザベースグルー プの>))>サービスの導入を支援 ベンチャーキャピタル事業 シードからアーリーステージの>))>とメディア関連のスタートアップに特化して投資 0VSTFSWJDFT ʔʮܦࡁใʯʹಛԽͨ͠αʔϏεల։
?
78$は何しに9.:#;&<*#へ? !"#$% 今回のテーマ
<; | Youは何しにNewsPicksへ? @ Youは何しにNewsPicksへ? ミッション駆動 「経済情報で、世界を変える」とい うミッションが浸透 ニュースを届けるだけでなく、人々 の行動が変わることを目指す
個人的な目標「日本を真に豊かな国 にすること」ともマッチ 会社 = プロダクト 多種多様な職種の人が集まって一つ のサービスを作っている 記者などの「人」がやってこそ価値 のある仕事がある 人だけでもテクノロジーだけでもな く、人とテクノロジーの融合 ユーザベースがすごい SaaSどころかtoBのインターネット 企業が無かった時代から、SPEEDA という素晴らしいプロダクトを作っ ていた
A 直面していた技術的課題 ❏ NewsPicksは2013年に誕生して以来ずっと「壮大な創業期」 機能も多く、周辺サービスもいくつかある、まあまあ複雑なシステム ❏ 長らく少数精鋭チームで作ってきたがゆえの暗黙知 ❏ その後2年ほどで開発メンバーの数が一気に50人程度に 新機能開発が先行し、開発効率が後回しになり、
開発者が増えてもスピードが出にくい状況になってしまった <; | Youは何しにNewsPicksへ?
;< 直面していた技術的課題 ❏ NewsPicksは2013年に誕生して以来ずっと「壮大な創業期」 機能も多く、周辺サービスもいくつかある、まあまあ複雑なシステム ❏ 長らく少数精鋭チームで作ってきたがゆえの暗黙知 ❏ その後2年ほどで開発メンバーの数が一気に50人程度に 新機能開発が先行し、開発効率が後回しになり、
開発者が増えてもスピードが出にくい状況になってしまった そんな中での... 突然のCTO <; | Youは何しにNewsPicksへ?
;; 突然のCTO 「まあまあ複雑なシステム」を任されたCTO ❏ 経験はあるが、事業・システム・社内事情、すべてにおいて知識ゼロ ❏ 見えてくる課題は様々 ❏ 期待される役割も様々 ネックポイント
<; | Youは何しにNewsPicksへ?
;5 CTOに期待される役割 エンジニアリング マネージャー プロダクト マネージャー アーキテクト、チーフエンジニア 新規開発、研究開発 採用、発信 <;
| Youは何しにNewsPicksへ?
;6 CTOに期待される役割 エンジニアリング マネージャー プロダクト マネージャー アーキテクト、チーフエンジニア 新規開発、研究開発 採用、発信 すべての期待に
応えられるのは 超人だけ <; | Youは何しにNewsPicksへ?
;7 CTOに期待される役割 エンジニアリング マネージャー プロダクト マネージャー アーキテクト、チーフエンジニア 新規開発、研究開発 採用、発信 ただ、超人じゃなくてもできる
CTO作戦がある <; | Youは何しにNewsPicksへ?
CTO作戦 今回のテーマ
<5 | CTO作戦 ;? CTO作戦 よくできたテンプレートに乗っかる 作戦 =>'?@&".@&)
;B CTO作戦 $%&!'()*'(+とは ❏ CTO協会が監修・編纂している企業のデジタル化と ソフトウェア活用のためのガイドライン ❏ デジタル技術を企業が活用するために必要な要素を 多角的かつ具体的に体系化したもの ❏
目的は「超高速な事業仮説の検証能力を得ること」 <5 | CTO作戦
;@ $%&!'()*'(+ CTO作戦 <5 | CTO作戦
;A $%&!'()*'(+ CTO作戦 <5 | CTO作戦
5< $%&!'()*'(+ CTO作戦 <5 | CTO作戦
5; $%&!'()*'(+ CTO作戦 <5 | CTO作戦
9.:#;&<*#で診断してみた (2019年末) 55 「新機能開発が先行し、開発効率が 後回しになり、開発者が増えても スピードが出にくい状況」 を象徴するような結果に... CTO作戦 <5 |
CTO作戦
56 ところで… デブサミ2020 ベストスピーカー 1位:「質とスピード」和田 卓人氏 <5 | CTO作戦
57 デブサミ2020『質とスピード』和田卓人氏 [4つのキーメトリクス] ・リードタイム ・デプロイ頻度 ・MTTR(平均修復時間) ・変更失敗率 <5 | CTO作戦
58 『LeanとDevOpsの科学』 ❏ DX Criteriaからも参照多数 ❏ ソフトウェア企業の開発スタイルと、 市場占有率や収益性との関係性を科学的に 証明していく試み ❏
より高速かつ安全に仮説検証できる組織が エリート組織に [高速] 開発に迷わない、待たない、 無駄なコミュニケーションが発生しない [安全] 意識しなくてもセキュリティが保たれ、 大きな障害にならず、心理的安全 <5 | CTO作戦
5? 『LeanとDevOpsの科学』 <5 | CTO作戦 入社前からこの本を布教
5B [4つのキーメトリクス ] エリートクラスタとローパフォーマークラスタの差 ・開発速度と品質はトレードオフの関係ではない ・組織間の差はかなり大きく、さらに開いている(2016-2019) ・圧倒的な差は継続的デリバリやDevOpsへの組織的な投資の差 JaSST'20 Kyushu 基調講演「質とスピード〜ソフトウェア開発の典型的な誤解を解く〜(2020
秋バージョン)」2020.11.20 和田卓人氏 <5 | CTO作戦
5@ キーメトリクス <4つのキーメトリクスの計測難易度> • コードがコミットされてからデ プロイが完了するまでの時間 • 多数のリポジトリで画一的に計 測するのが難しい リードタイム:中
• 定義が明確で画一的に計測しや すく、比較的バラつきも少ない デプロイ頻度:低 • 障害の始まりと終わりの定義が 難しい MTTR:高 • 数のリポジトリで画一的に計測 するのが難しい 変更失敗率:中 <5 | CTO作戦
5A キーメトリクス <4つのキーメトリクスの計測難易度> • コードがコミットされてからデ プロイが完了するまでの時間 • 多数のリポジトリで画一的に計 測するのが難しい リードタイム:中
• 定義が明確で画一的に計測しや すく、比較的バラつきも少ない デプロイ頻度:低 • 障害の始まりと終わりの定義が 難しい MTTR:高 • 数のリポジトリで画一的に計測 するのが難しい 変更失敗率:中 高速かつ安全に開発できるエリート組織は、 すべての指標が高い 極論、どれか一つだけを定点観測すれば 十分では? <5 | CTO作戦
おすすめ案 エラー数やSLOなどいくつかの品質に関する指標を 定点観測し、品質低下傾向にでなければ良しとする 6< キーメトリクス • 計測難易度が低く、アクションが取りやすい 「デプロイ頻度」をKPIとする 1 •
MTTRや変更失敗率は定点観測には向かない 2 <5 | CTO作戦
6; デプロイエンジニアリング 「デプロイ頻度」をKPIとして行った改善の 一部を披露します <5 | CTO作戦
65 デプロイエンジニアリング デプロイするためにsshして コマンドを実行していた A.18@. マージされたらbotが動いて Slackでポチポチしていけば デプロイできるように !1".@ 1
cron実行中はデプロイすることが できなかった A.18@. バイナリを上書きするのではなく、 まず移動させてから新しい ディレクトリにバイナリを配置 !1".@ 2 <5 | CTO作戦
デプロイ前の手動確認項目が多数 A.18@. Seleniumやアプリのテストビルド でのシナリオテストで自動化 !1".@ 最低限の動作チェックが主だった プッシュ通知の前後はデプロイできなかった A.18@. サービスの性質上、1日の決まった時間にプッシュ通知が あり、アクセスが増える。blue/greenデプロイだと
切り替えの時にDBへのコネクションが枯渇。 <)B)@+C@8DD&BEデプロイに切り替え • デプロイ作業自体はcanary確認までで完了 • その後数十分かけてrolling切り替え 66 デプロイエンジニアリング !1".@ 3 4 <5 | CTO作戦
67 デプロイエンジニアリング 変わったこと ❏ 1回のデプロイ作業に30分〜1時間かかっていたのが5分に ❏ 開発者1人あたりのデプロイ頻度は2倍〜3倍に ❏ 権限の低い開発者も安全にデプロイできるように ❏
デプロイ作業が面倒という理由で複数のコミットをまとめ てデプロイしていたのが激減 デプロイ頻度を定点観測して開発者全員の意識を 高めるとともに、改善を称えるように <5 | CTO作戦
68 品質への取り組み ❏ [高速] 開発に迷わない、待たない、 無駄なコミュニケーションが発生しない ❏ [安全]意識しなくてもセキュリティが保たれ、 大きな障害にならず、心理的安全 片方に偏ると、もう片方がおろそかになる
エラーを放置して機能開発を優先するマインドに なっては本末転倒! アクセルとブレーキが大事! <5 | CTO作戦
6? 品質への取り組み ❏ いくつかの指標を定点観測できる ようにした ❏ 悪化傾向にならなければOKとした ✔エラー数 ✔レスポンスタイム ✔スマホアプリのCrash
Free率 ✔セキュリティリスクアセスメントの自動化 ✔お問い合わせ起因のチケットの生存期間 MTTRや変更失敗率の指数関数的な 改善を目指せるかは今後の課題 <5 | CTO作戦 指標
6B そして、1年後... 2019年末のDX Criteria 2020年末のDX Criteria <5 | CTO作戦
6@ お伝えしたいこと ❏ ソフトウェア開発組織運営のためのよくできたテンプレがある ❏ 突然CTOになっても大丈夫 ❏ 多くの場合で、デプロイ頻度をKPIにするのは効果的 $%&!'()*'(+ ,*+-と$*.#/0の科学
<5 | CTO作戦
6A お伝えしたいこと ❏ CTOの最も重要な責任は、会社の未来を左右する大きな技術投資 ❏ 短期トレンドを見極めるのは難しい ❏ いつでも変わらず、必要になる技術に投資して社内に蓄積しよう ❏ 開発者がより高速かつ安全に開発できるための技術はどの会社で
も必ず投資すべき技術 <5 | CTO作戦
Uzabaseからのお知らせ <6 | お知らせ 7< 9.:#;&<*# %""F#GHH".<%I$J)K)#.I<8,H LJ)K)#.'(.<%' ポータルサイト M公式(:&"".@N
-LJ)K)#.O(.<% %""F#GHH":&"".@I<8,H$J)K)#.O".<% %""F#GHHB.:#F&<*#I<8,H
Uzabaseからのお知らせ 7; 【UB企業ブース両日開催中】 ブースに来訪してくださった方から抽選で スマートフォン充電器パッドをプレゼント!! <6 | お知らせ
アンケートのお願い 75 本セッションのアンケートにご協力をお願いします ・右のQRコードを読み込んでいただく ・チャットに流れているURLから入力 どちらでも構いません。 <6 | お知らせ
"1+-2&345&64'&7(0)*-(-89