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
モバイルでもエリートDevOpsチームを目指そう
Search
ko2ic
October 06, 2023
Programming
0
130
モバイルでもエリートDevOpsチームを目指そう
ko2ic
October 06, 2023
Tweet
Share
More Decks by ko2ic
See All by ko2ic
50回面接して学んだ強い技術者チームを作る採用とオンボーディング
ko2ic
0
720
段階的な技術的負債の解消方法.pdf
ko2ic
2
2k
ビジネス中心に7年間走り続けたAndroidをリアーキしてる話
ko2ic
0
33
Other Decks in Programming
See All in Programming
競技プログラミングへのお誘い@阪大BOOSTセミナー
kotamanegi
0
360
短期間での新規プロダクト開発における「コスパの良い」Goのテスト戦略」 / kamakura.go
n3xem
2
180
Spatial Rendering for Apple Vision Pro
warrenm
0
150
rails statsで大解剖 🔍 “B/43流” のRailsの育て方を歴史とともに振り返ります
shoheimitani
2
960
Mermaid x AST x 生成AI = コードとドキュメントの完全同期への道
shibuyamizuho
1
260
useSyncExternalStoreを使いまくる
ssssota
6
1.4k
技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発
yuichiro_serita
0
150
情報漏洩させないための設計
kubotak
4
830
Recoilを剥がしている話
kirik
5
7.2k
「とりあえず動く」コードはよい、「読みやすい」コードはもっとよい / Code that 'just works' is good, but code that is 'readable' is even better.
mkmk884
3
760
return文におけるstd::moveについて
onihusube
1
1.3k
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
350
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
Embracing the Ebb and Flow
colly
84
4.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Adopting Sorbet at Scale
ufuk
73
9.1k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
Fireside Chat
paigeccino
34
3.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Building Your Own Lightsaber
phodgson
103
6.1k
Visualization
eitanlees
146
15k
How STYLIGHT went responsive
nonsquared
96
5.2k
Transcript
モバイルでもエリートDevOpsチームを目 指そう 2023.10.06 Koji Ishii
1. 自己紹介・ニューズピックスについて 2. Four Keysへ計測を変えたきっかけ 3. Four Keysのおさらい 4. Four
Keysへ計測方法を変えた効果 5. 改善するためのモバイルでの具体的な例 6. まとめ 00 目次 ©NewsPicks Inc. All Rights Reserved.
©NewsPicks Inc. All Rights Reserved. 01 自己紹介 ニューズピックスについて
01 自己紹介 ©NewsPicks Inc. All Rights Reserved. 石井幸次 株式会社ユーザベース NewsPicksプロダクトチーム
VP of Mobile Engineering (iOS 6名 Android 6名) エンジニアリングマネージャーでもありますが、 めちゃくちゃプレイヤーです。 経験として、iOSもAndroidもガッツリと開発してきた人間です。 Android中心に開発してます。iOSは全然書いてない こんな本を書いてました (古すぎるけど、まだ売れてるので一応宣伝)
01 NewsPicksについて ©NewsPicks Inc. All Rights Reserved.
01 ©NewsPicks Inc. All Rights Reserved. NewsPicksについて みんな視点 コメントから多少な視点をえる 提携メディアの視点
読んでおきたいニュースを 厳選してお届け NewsPicksの視点 コンテンツの力で、 日本に希望を灯す
©NewsPicks Inc. All Rights Reserved. 02 Four Keysで計測を始めたきっかけ
02 Four Keysで計測を始めたきっかけ ©NewsPicks Inc. All Rights Reserved. モバイル開発の 生産性どうやって計測してます?
02 Four Keysで計測を始めたきっかけ ©NewsPicks Inc. All Rights Reserved. ベロシティで生産性を測定するのはアンチパターン?
02 Four Keysで計測を始めたきっかけ ©NewsPicks Inc. All Rights Reserved. ベロシティで生産性を測定するのはアンチパターン?
チーム同士で比較なんてしないよ! 信頼無くす行動なんてし ないよ!!
02 Four Keysで計測を始めたきっかけ ©NewsPicks Inc. All Rights Reserved. 左のグラフは •
一部機能をリアーキしたときに生産性が爆上がりした (1.7倍〜10倍) • リアーキしたことによって iOSのスクロールにカクツキが 起きたことでその対処をしてたことで生産性が落ちた 実際ベロシティで測ってました • ベロシティは毎スプリントでとっている • 残業時間もわかる • 1時間あたりの消化ポイントがわかる 詳しくはブログで https://tech.uzabase.com/entry/2022/05/20/112737
02 Four Keysへ計測を変えたきっかけ ©NewsPicks Inc. All Rights Reserved. でも・・・
02 Four Keysへ計測を変えたきっかけ ©NewsPicks Inc. All Rights Reserved. ポイントの基準を変えたい!
02 Four Keysへ計測を変えたきっかけ ©NewsPicks Inc. All Rights Reserved. きっかけなんてこんなのものw
03 ©NewsPicks Inc. All Rights Reserved. Four Keysのおさらい
03 Four Keysのおさらい ©NewsPicks Inc. All Rights Reserved. • デプロイ頻度
(高い) • リードタイム (短い) • 変更障害率 (低い) • 平均修復時間 (短い) これが高いレベルでできているチームを エリートチームとしている エリートチームは、KPIを達成する可能性 が2倍高かったという事実
03 Four Keysのおさらい ©NewsPicks Inc. All Rights Reserved. • デプロイ頻度
(高い) • リードタイム (短い) • 変更障害率 (低い) • 平均修復時間 (短い) これが高いレベルでできているチームを エリートチームとしている エリートチームは、KPIを達成する可能性 が2倍高かったという事実
04 ©NewsPicks Inc. All Rights Reserved. Four Keysへ計測方法を変えた効果
04 Four Keysへ計測方法を変えた効果 ©NewsPicks Inc. All Rights Reserved. リリースとデプロイの分離をすること に意識が向いた
04 Four Keysへ計測方法を変えた効果 ©NewsPicks Inc. All Rights Reserved. マージを早くしたいから・・・
04 Four Keysへ計測方法を変えた効果 ©NewsPicks Inc. All Rights Reserved. マージを早くしたいから・・・ •
PRを小さく作る ◦ レビューが早く終わる ◦ 品質維持が容易になる • すぐにマージできる仕組みにする
04 Four Keysへ計測方法を変えた効果 ©NewsPicks Inc. All Rights Reserved.
05 ©NewsPicks Inc. All Rights Reserved. 改善するためのモバイルでの具体的な例
05 Four Keysへ計測方法を変えた効果 ©NewsPicks Inc. All Rights Reserved. マージを早くしたいから・・・ •
PRを小さく作る ◦ レビューが早く終わる ◦ 品質維持が容易になる • すぐにマージできる仕組みにする
05 改善するためのモバイルでの具体的な例 ©NewsPicks Inc. All Rights Reserved. マージを早くしたいから・・・ • PRを小さく作る
◦ レビューが早く終わる ◦ 品質維持が容易になる • すぐにマージできる仕組みにする
05 改善するためのモバイルでの具体的な例 ©NewsPicks Inc. All Rights Reserved. Feature Toggleを簡単に実装/操作できるようにした
分岐したいところで 呼び出すだけ
05 改善するためのモバイルでの具体的な例 ©NewsPicks Inc. All Rights Reserved. サーバーで設定されるトグルも変更可能
05 改善するためのモバイルでの具体的な例 ©NewsPicks Inc. All Rights Reserved. でもマージとリリースの時間軸が 乖離してたら生産性が高い とは言えない
05 改善するためのモバイルでの具体的な例 ©NewsPicks Inc. All Rights Reserved. リリース作業の負担は極力0へ
05 改善するためのモバイルでの具体的な例 ©NewsPicks Inc. All Rights Reserved. 1.Visual Regression Testingの導入
重要な画面はVRTで確認。リリース前に手動で確認するよりも正 確。 詳しくは次のブログ参照 いつでもリリース可能にするためにやったこと 深夜に大量のテストを動かしてるよ 2.ログのテストはUIテストで自動化 広告ログや分析ログで絶対にデグレ回避なものを自動テスト化。 詳しくは次のブログ参照
05 改善するためのモバイルでの具体的な例 ©NewsPicks Inc. All Rights Reserved. 3.E2E / UIテストの高速化
プログラムの変更だけで 40%高速化。 詳しくは次のブログ参照 いつでもリリース可能にするためにやったこと 緊急時でも負担少なくリリースできるよ 4.E2E / UIテストのリトライ処理 UIテストは、クラウド上の端末を使ってると安定しない。 いちいち、それを気にしてられないので、いい感じにリトライをして くれる仕組み化してます。 詳しくは次のブログ参照
05 改善するためのモバイルでの具体的な例 ©NewsPicks Inc. All Rights Reserved. 4. Slackのスタンプを貼ることで翌日リリース 直前状態にできます
いつでもリリース可能にするためにやったこと ちょっとでも面倒なことは自動化 (Zapierで簡単にできる時代) 5. 緊急リリースやテスト環境のビルドも Slack から可能 バージョンコードも指定できるよ
05 改善するためのモバイルでの具体的な例 ©NewsPicks Inc. All Rights Reserved. いつでもリリース可能にするためにやったこと ちょっとでも面倒なことは自動化
(Zapierで簡単にできる時代) 5. リリースノート作成の自動化 Fastlaneでリリースノート用の独自 laneを作り、GitHubの Releaseに対象のdeploygateのQRコードやPRタイトルやそのリ ンクを貼ってある。 5. 結果はSlackに投稿
05 改善するためのモバイルでの具体的な例 ©NewsPicks Inc. All Rights Reserved. ユーザはしょっちゅうリリースされるのを望ん でないのではないか問題
06 ©NewsPicks Inc. All Rights Reserved. まとめ
06 まとめ ©NewsPicks Inc. All Rights Reserved. Four Keysを改善して エリートDevOpsになろう
©NewsPicks Inc. All Rights Reserved. エンジニア 募集中 ご清聴ありがとうございました