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
55k
18-E-5_Uzabase_高山温_デブサミ登壇資料
UZABASE
February 26, 2021
Tweet
Share
More Decks by UZABASE
See All by UZABASE
株式会社ユーザベース 企業説明資料
uzabasetech
1
540
Other Decks in Technology
See All in Technology
【shownet.conf_】革新と伝統を融合したファシリティ
shownet
PRO
0
300
C# 13 / .NET 9 の新機能 (RC 1 時点)
nenonaninu
1
1.2k
【shownet.conf_】持続可能な次世代Wi-Fi運用に向けて
shownet
PRO
0
310
【shownet.conf_】コンピューティング資源を統合した分散コンテナ基盤の進化
shownet
PRO
0
360
LINEヤフー新卒採用 コーディングテスト解説 実装問題編
lycorp_recruit_jp
1
12k
入門 バックアップ
ryuichi1208
18
6.4k
【shownet.conf_】AI技術とUX監視の応用でShowNetの基盤を支えるモニタリングシステム
shownet
PRO
0
330
Oracle GoldenGate 23ai 導入Tips
oracle4engineer
PRO
1
230
RAGの性能を評価しよう
kurahara
1
300
過去のインプットとアウトプットを振り返る
diggymo
0
100
kube-vipとkube-proxy置き換えCiliumを積んだ究極のK3sクラスタを建てる
logica0419
4
200
Rubyはなぜ「たのしい」のか? / Why is Ruby a programmers' best friend? #tqrk15
expajp
4
1.8k
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
167
14k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
23
1.7k
The Cult of Friendly URLs
andyhume
77
6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
279
13k
GraphQLとの向き合い方2022年版
quramy
43
13k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
125
18k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9k
Designing for Performance
lara
604
68k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
158
15k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
92
16k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Art, The Web, and Tiny UX
lynnandtonic
295
20k
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