Upgrade to Pro — share decks privately, control downloads, hide ads and more …

モバイルでもエリートDevOpsチームを目指そう

ko2ic
October 06, 2023

 モバイルでもエリートDevOpsチームを目指そう

ko2ic

October 06, 2023
Tweet

More Decks by ko2ic

Other Decks in Programming

Transcript

  1. 1. 自己紹介・ニューズピックスについて
 2. Four Keysへ計測を変えたきっかけ
 3. Four Keysのおさらい
 4. Four

    Keysへ計測方法を変えた効果
 5. 改善するためのモバイルでの具体的な例
 6. まとめ
 00
 目次
 ©NewsPicks Inc. All Rights Reserved.

  2. 01
 自己紹介
 ©NewsPicks Inc. All Rights Reserved.
 石井幸次
 株式会社ユーザベース  NewsPicksプロダクトチーム

    
 VP of Mobile Engineering (iOS 6名 Android 6名)
 
 エンジニアリングマネージャーでもありますが、
 めちゃくちゃプレイヤーです。
 経験として、iOSもAndroidもガッツリと開発してきた人間です。
 Android中心に開発してます。iOSは全然書いてない
 
 こんな本を書いてました
 (古すぎるけど、まだ売れてるので一応宣伝)

  3. 01
 ©NewsPicks Inc. All Rights Reserved.
 NewsPicksについて
 みんな視点 コメントから多少な視点をえる 提携メディアの視点

    読んでおきたいニュースを 厳選してお届け NewsPicksの視点 コンテンツの力で、 日本に希望を灯す
  4. 02
 Four Keysで計測を始めたきっかけ
 ©NewsPicks Inc. All Rights Reserved.
 左のグラフは •

    一部機能をリアーキしたときに生産性が爆上がりした (1.7倍〜10倍) • リアーキしたことによって iOSのスクロールにカクツキが 起きたことでその対処をしてたことで生産性が落ちた 実際ベロシティで測ってました 
 • ベロシティは毎スプリントでとっている 
 • 残業時間もわかる
 • 1時間あたりの消化ポイントがわかる 
 詳しくはブログで https://tech.uzabase.com/entry/2022/05/20/112737
  5. 03
 Four Keysのおさらい
 ©NewsPicks Inc. All Rights Reserved.
 • デプロイ頻度

    (高い)
 
 • リードタイム (短い)
 
 • 変更障害率 (低い)
 
 • 平均修復時間 (短い)
 これが高いレベルでできているチームを エリートチームとしている エリートチームは、KPIを達成する可能性 が2倍高かったという事実
  6. 03
 Four Keysのおさらい
 ©NewsPicks Inc. All Rights Reserved.
 • デプロイ頻度

    (高い)
 
 • リードタイム (短い)
 
 • 変更障害率 (低い)
 
 • 平均修復時間 (短い)
 これが高いレベルでできているチームを エリートチームとしている エリートチームは、KPIを達成する可能性 が2倍高かったという事実
  7. 04
 Four Keysへ計測方法を変えた効果
 ©NewsPicks Inc. All Rights Reserved.
 マージを早くしたいから・・・
 •

    PRを小さく作る
 ◦ レビューが早く終わる
 ◦ 品質維持が容易になる
 • すぐにマージできる仕組みにする 

  8. 05
 Four Keysへ計測方法を変えた効果
 ©NewsPicks Inc. All Rights Reserved.
 マージを早くしたいから・・・
 •

    PRを小さく作る
 ◦ レビューが早く終わる
 ◦ 品質維持が容易になる
 • すぐにマージできる仕組みにする 

  9. 05
 改善するためのモバイルでの具体的な例
 ©NewsPicks Inc. All Rights Reserved.
 マージを早くしたいから・・・
 • PRを小さく作る


    ◦ レビューが早く終わる
 ◦ 品質維持が容易になる
 • すぐにマージできる仕組みにする 

  10. 05
 改善するためのモバイルでの具体的な例
 ©NewsPicks Inc. All Rights Reserved.
 1.Visual Regression Testingの導入


    重要な画面はVRTで確認。リリース前に手動で確認するよりも正 確。
 詳しくは次のブログ参照 
 
 
 いつでもリリース可能にするためにやったこと 
 深夜に大量のテストを動かしてるよ 
 2.ログのテストはUIテストで自動化
 広告ログや分析ログで絶対にデグレ回避なものを自動テスト化。 
 詳しくは次のブログ参照 
 
 

  11. 05
 改善するためのモバイルでの具体的な例
 ©NewsPicks Inc. All Rights Reserved.
 3.E2E / UIテストの高速化


    プログラムの変更だけで 40%高速化。
 
 詳しくは次のブログ参照 
 
 
 いつでもリリース可能にするためにやったこと 
 緊急時でも負担少なくリリースできるよ 
 4.E2E / UIテストのリトライ処理 
 UIテストは、クラウド上の端末を使ってると安定しない。 
 いちいち、それを気にしてられないので、いい感じにリトライをして くれる仕組み化してます。 
 
 詳しくは次のブログ参照 
 
 

  12. 05
 改善するためのモバイルでの具体的な例
 ©NewsPicks Inc. All Rights Reserved.
 4. Slackのスタンプを貼ることで翌日リリース 直前状態にできます

    
 いつでもリリース可能にするためにやったこと 
 ちょっとでも面倒なことは自動化 (Zapierで簡単にできる時代)
 5. 緊急リリースやテスト環境のビルドも Slack から可能
 バージョンコードも指定できるよ 

  13. 05
 改善するためのモバイルでの具体的な例
 ©NewsPicks Inc. All Rights Reserved.
 いつでもリリース可能にするためにやったこと 
 ちょっとでも面倒なことは自動化

    (Zapierで簡単にできる時代)
 5. リリースノート作成の自動化 
 Fastlaneでリリースノート用の独自 laneを作り、GitHubの Releaseに対象のdeploygateのQRコードやPRタイトルやそのリ ンクを貼ってある。
 5. 結果はSlackに投稿