Slide 1

Slide 1 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ Findy Team+ Awardを受賞したかった! ベストプラクティス応募内容をふりかえり、 開発生産性向上もふりかえる D-Plus Tokyo #9 2024年大忘年会!開発生産性にトライした1年を振り返ろうLT会 1 Matsutani Yuki 2024.12.18 ©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ

Slide 2

Slide 2 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 本日話すこと ”2024年大忘年会!開発生産性にトライした1年を振り返ろうLT会 ” Findy Team+ Awardを受賞はできませんでした...... ベストプラクティス賞に応募した内容をふりかえりながら、 弊社でのここ1年の開発生産性向上がどうだったのかをふりかえります! 〇〇の取り組みいいですね! 〇〇の取り組みもっと〇〇すると良さそうですね! ということをぜひ懇親会でお話させてください この取り組みよさそう、真似したい!などあればぜひ持ち帰ってください 2

Slide 3

Slide 3 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ アジェンダ - 前提知識紹介 - プロダクト開発組織について - 開発生産性チームについて - XP・ペアプロ文化について - ベストプラクティス応募内容紹介 - 徹底的なユーザーストーリー中心のコミュニケーションと開発 - 徹底的なペア作業の実施 - 不確実性に合わせたフレキシブルなペア・モブプログラミングを実施 - 監査のために必要なフローを守った上でのリリース時間の徹底的な短縮 - 受け入れテスト基盤による、ビジネス的な価値の担保と互換性を両立したモダナ イゼーション - 開発生産性チームによる、開発生産性ふりかえりの定期実施と改善 - 定量的なふりかえり - まとめ 3

Slide 4

Slide 4 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 自己紹介 名前: Matsutani Yuki ほにゃにゃ / まっちゃん X: @honyanyas(yuki / ほにゃにゃ) 所属: 株式会社ADWAYS DEEE アドテクノロジーディビジョン 技術改善第三ユニット(クラウド移行チーム) リードアプリケーションエンジニア 最近のお仕事: オンプレミスからパブリッククラウドへの移行 Ansible CI/CDパイプライン改善 アドウェイズエンジニアブログ運営 趣味: YouTube(自主制作アニメ系みます、日々の更新が楽しみ) お酒(ウイスキー多め、厚岸や宮城峡・アベラワーが好き) 麻雀(見る雀、アプリ、シーズンも半分が終わった) アイコン Xアカウント 4

Slide 5

Slide 5 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 自己紹介 登壇実績: ● 複数プロダクトの技術改善・クラウド移行に向き合うチームのフレキシブル なペア・モブプログラミングの実践 / XP祭り2024 ● SLO導入と Datadog SLO Dashboard / JDDUG#5 アドウェイズエンジニアブログで最近書いた記事: ● 「技術広報やってます!」最近技術広報に携わっているエンジニアが最初に やりはじめたこと ● 【イベント開催レポート】株式会社BuySell Technologiesさんと『2024年を 振り返ろう!若手エンジニアのための交流LTナイト』を開催しました ● 編集チームの運用負荷とPVの伸び悩みからアドベントカレンダーをおやすみ しています ● GitHub Actionsコンテナ利用時にansible-lintの実行結果がローカル環境と 異なったので原因調べました ● 「技術広報の集い #3」に参加して、飛び込みLTしてきました 書いた記事 アイコン 5

Slide 6

Slide 6 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 自己紹介 D-Plus参加: #5から参加してます! 6

Slide 7

Slide 7 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ Delight Mission 喜び つくろう。 「よかった」が めぐる世界を。 Value Exciting わくわく こなすより、 夢中になろう。 Value Eager 熱心 傍観者より、 冒険者になろう。 Value Exceed 超える 前例にならうより、 前例になろう。 Mission & Value めぐる世界を。 小さな変化の積み重ねが革新に繋がる ADWAYS DEEEが世界を変える つくろう。 「よかった」が

Slide 8

Slide 8 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 会社紹介 広告システムを作っております 8 Adways IR資料(2023年12月期 決算説明会)

Slide 9

Slide 9 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 会社紹介 認知メインの広告(ディスプレイ広告)ではなく 体験メインの広告(アフィリエイト、リワード)を扱っています 9

Slide 10

Slide 10 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 会社紹介 D-Plus、本日の登壇をもって3回連続登壇! 10

Slide 11

Slide 11 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 前提知識紹介 11

Slide 12

Slide 12 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ プロダクト開発組織について 大きくプロダクトチームと技術改善チームの2つに分かれています 運用チームや専任チーム(データサイエンティスト)もあります 12

Slide 13

Slide 13 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 開発生産性チームについて 開発生産性向上をミッションとしたバーチャルなチーム(兼務) Team+ CSとのやり取りや各開発チームへの働きかけをしています 13

Slide 14

Slide 14 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ XP・ペアプロ文化について 常に一緒に開発 プロダクトチームはPdMやデザイナーなどの異なるロールともペア作業をする 14 多様性のあるプロダクトチームを目指した共創の3年間の変化 複数プロダクトの技術改善・クラウド移行に向き合うチームの フレキシブルなペア・モブプログラミングの実践

Slide 15

Slide 15 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ ベストプラクティス応募内容紹介 15

Slide 16

Slide 16 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 開発フローから見てどこにアプローチできたのか? 16

Slide 17

Slide 17 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 開発フローから見てどこにアプローチできたのか? 17

Slide 18

Slide 18 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 徹底的なユーザーストーリー中心のコミュニケーションと開発 18 実施した背景・目的(Why) ディスカバリーフェーズで各ロールが連携して、ソリューションのことを決定する が、デリバリーフェーズになるとエンジニアに基本的にお任せ、チーム内の関心ご とが多くなりがちだったりPdMが進捗を理解できない部分もあった。 概要(Who,When,How) エンジニア主体のタスク管理ではなく、PdM主体のストーリー管理とエンジニア主 体のchore管理に変更。 PdMがストーリーには価値の最小の粒度(開発は2,3日で終わる粒度、1ストーリー 1PR)で記載し、エンジニアがそれを元に開発を行い、受け入れ作業をPdMが行 う。ストーリーの実装はそのストーリーの基準を満たす最小のものとする。 リファクタリングはchoreとしてエンジニアが管理・気軽に出すことができること で、価値を確実に生み出しながらリファクタリングによる品質の向上も頻繁にでき る。 成果・効果(What) FBサイクルの高速化)PdMがデリバリーフェーズにおいて受け身にならずに進捗把 握が出き、価値とのズレを確認したらすぐにエンジニアにFBできる 価値への認識向上)価値を記載したストーリーベースで話しているので常にチーム が価値を認識し合うものになる 定量化)価値を記載したストーリーのみポインティングするのでチームとしてどれ だけ価値を出し続けられているか明確に分かる

Slide 19

Slide 19 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 19

Slide 20

Slide 20 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 20

Slide 21

Slide 21 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 詳細 ユーザーストーリーを元にした会話と定着 https://blog.engineer.adways.net/entry/2024/06/21/120000 21

Slide 22

Slide 22 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 徹底的なペア作業の実施 22 実施した背景・目的(Why) プランニングにおいて各タスクに担当者を設定した上で作業を進めていた。 その課題として、タスクが進行中のままになってしまう、担当者間で認識にずれが 生じる、そもそも担当者に偏りが生じてしまうなどの問題が起きていた。 これを解決するために、勤務時間の大半をペア作業時間とする動きを取り入れた。 概要(Who,When,How) 弊社の標準出社時間である10〜19時のうち10〜18時を、チーム外とのミーティン グなどの事情がある場合以外はペア作業時間とした。 ペアはローテーションし、それぞれの作業内容についてチーム全員がある程度理解 した状態が保たれるようにした。 成果・効果(What) 各人が個別に作業を進めていた時と比べて、一人で悩む時間やレビューを待ってい る時間が無くなり、フロー効率を高めることができた。 またペアがローテーションされることで、チーム全員がそれぞれの作業を把握して いる状態となり、属人化による負担の偏りが生じにくい状態となった。

Slide 23

Slide 23 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 23

Slide 24

Slide 24 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 24

Slide 25

Slide 25 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 詳細 常に喋っている!? TanzuLabs流XPで「徹底的な同期コミュニケーション」を体験 して得たものとは https://blog.engineer.adways.net/entry/2024/05/24/110000 25

Slide 26

Slide 26 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 不確実性に合わせたフレキシブルなペア・モブプログラミングを実施 26 実施した背景・目的(Why) 基本的に3人でモブプログラミングを実施をしていたがメンバーが4人 になることで2ペアに分かれてペアプログラミングを行ってアウトプッ トの量を増やし、プロジェクトのスピードを上げたい。 概要(Who,When,How) 不確実性が高いもの(リファインメントを行ったが考えることが必要 になったタスク、途中で認識あわせが必要になったタスクなど):4人 全員で取り組む 不確実性が低いもの(リファインメントで進め方がみえてるタスクな ど):2人で取り組む ※基本はこのスタイル 職務や休暇の関係上チームで3人に稼働となるので、3人ベースに時間 ごとのローテーションを行なった。 成果・効果(What) チームとしてペア・モブプログラミングの選択肢が出てタスクの不確 実性を元にスタンドアップで判断することができる。(もちろん日の 途中で相談、変更もできる)

Slide 27

Slide 27 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 27

Slide 28

Slide 28 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 詳細 複数プロダクトの技術改善・クラウド移行に向き合うチームのフレキシブルなペ ア・モブプログラミングの実践 https://speakerdeck.com/honyanya/flexible-pair-programming-and-mob-pr ogramming 28

Slide 29

Slide 29 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 監査のために必要なフローを守った上でのリリース時間の徹底的な短縮 29 実施した背景・目的(Why) 毎年監査を受けており、修正コードの反映には監査法人に提出する資料の元となる 申請が必要である。 また開発から20年以上が経過するシステムであるため、手作業によるリリース及び 検証が必要な状態であった。 この状況を改善するため、手作業の排除によるリリース時間の徹底的な短縮につな がる仕組みを導入した。 概要(Who,When,How) 実施範囲で記述したメンバーを中心に1ヶ月弱ほどで開発。 またアプリケーション 内部ではGo・テスト駆動開発による開発を実施しGitHub Copilotも活用した上 で、可読性・仕様の透明性・速度のそれぞれを高い水準に保った開発を行なった。 成果・効果(What) それまでトラッキングに関するコードのリリース作業には、最短でも数時間ほど要 していたが、これが15,20分ほどに短縮された。 また手順においても、デプロイに 必要な手動によるサーバー上でのコード反映・プログラムの実行やその手順書の作 成、リリース申請が必要だったところから、ボタンを数回押すだけで必要な書類の 作成及び自動でのデプロイが可能となった。

Slide 30

Slide 30 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 30

Slide 31

Slide 31 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 31

Slide 32

Slide 32 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 受け入れテスト基盤による、ビジネス的な価値の担保と互換性を両立したモダナイゼーション 32 実施した背景・目的(Why) 広告プラットフォームのトラッキングシステムは稼働から20年以上が経過し、一部 の人しか知らない暗黙の仕様が散見される状態となっていた。 この状態を打破するために過去にもモダナイゼーションの試みがなされたものの、 金銭を扱う以上挙動の変化に神経質にならざるを得ず、作業が滞る状態となってい た 概要(Who,When,How) トラッキングシステムの一部分のみをテスト可能だった基盤について、各開発 フェーズごとに実施範囲で記述したメンバーを中心に改修。 テスト基盤は、新旧のシステムに同じデータを入力し、出力データに差異がないか を比較するものとなっている。 成果・効果(What) ビジネス的に最善な形での実装を進めつつ、テスト基盤によって互換性を担保する ことができるため、古いコードを都度翻訳していくような実装の進め方よりも安心 感を持った上でのスピード感のある実装をできた。

Slide 33

Slide 33 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 33

Slide 34

Slide 34 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 34

Slide 35

Slide 35 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 35

Slide 36

Slide 36 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 詳細 20周年を迎えたサービスでビジネスドメインと向き合いモダナイゼーションを推 進 https://blog.engineer.adways.net/entry/2024/04/26/170000 36

Slide 37

Slide 37 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 開発生産性チームによる、開発生産性ふりかえりの定期実施と改善 37 実施した背景・目的(Why) 社内で、なんとなく開発速度が遅いように感じるもののその原因が明確でなく、何 を指標とすればいいのかが定まらないといった課題が存在していた。 これに対し、開発生産性カンファレンスにおいて多くの開発組織がPR数を指標とし ていた点に注目し、部署の目標としてチームごとに平均して1人1日1PRを目標とし て設定した。 概要(Who,When,How) 単に目標を設定するだけでなく、開発生産性チームが主体となって各チームでの定 期的なふりかえりの実施(特にサイクルタイムの長いPRの要因分析やネクストアク ションの模索)を行った。 また、チーム内でサイクルタイム短縮のための実践をしやすいレビューフェーズに 注目したレビュー優先施策の実施や、Feature Flagの導入検討といった技術・文化 両面での改善の模索も行った。 成果・効果(What) 目標設定によるサイクルタイムの短縮が起こり、またそれまで顕在化していなかっ た課題を見つけることができた。

Slide 38

Slide 38 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 38

Slide 39

Slide 39 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 39

Slide 40

Slide 40 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 定量的なふりかえり 40

Slide 41

Slide 41 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 41

Slide 42

Slide 42 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 42 👍 👍 👍

Slide 43

Slide 43 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 43

Slide 44

Slide 44 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 44 👍 👍 👍 👍

Slide 45

Slide 45 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 45

Slide 46

Slide 46 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 46 👍

Slide 47

Slide 47 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 定量比較 1年前と比較して良くなっている 47 期間 2023/11/15~2023/12/14 2024/11/15~2024/12/14 DevOps分析 デプロイ頻度:4件 変更のリードタイム:52.8h 変更障害率:2.4% 平均修復時間:0.5h デプロイ頻度:8.6件(+4.6件) 変更のリードタイム:30.0h(-22.8h) 変更障害率:1.1%(-1.3ポイント) 平均修復時間:9.0h(+8.5h) サイクルタイム分析 コミット〜オープン:22.3h オープン〜レビュー:9.9h レビュー〜アプルーブ:8.3h アプルーブ〜マージ:10.3h コミット〜オープン:17.1h(-5.2h) オープン〜レビュー:3.0h(-6.9h) レビュー〜アプルーブ:1.6h(-6.7h) アプルーブ〜マージ:3.5h(-6.8h) レビュー分析 平均変更行数:387.5行 平均変更行数:219.7行(-167.8行)

Slide 48

Slide 48 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ ここからがもっと大変になるイメージ 導入後のスタートダッシュしきった状態 ここからさらに数値を上げるのは難しい、が向き合わないといけない 48

Slide 49

Slide 49 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ まとめ 49

Slide 50

Slide 50 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ ベストプラクティス応募内容をふりかえり、開発生産性向上もふりかえる いろんなプラクティスがあったみたいだけど......? - XP文化が広がることで開発生産性も上がる - 上流工程からテストまでのプロセス短縮にもつながっている 開発生産性はどうなった......? - 組織全体として1年前と良くなってきている - ここから上げていくのは大変だが向き合う必要がある 50

Slide 51

Slide 51 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ ⤴開発生産性をもっと上げる!⤴ 💪良い開発を増やす!💪 🔄🔄🔄 🤔来年は受賞できるか?🤔 51

Slide 52

Slide 52 text

©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 🙇ご静聴ありがとうございました!🙇 52