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

Findy Team+ Awardを受賞したかった!ベストプラクティス応募内容をふりかえり、開...

yuki
December 18, 2024

Findy Team+ Awardを受賞したかった!ベストプラクティス応募内容をふりかえり、開発生産性向上もふりかえる / Findy Team Plus Award BestPractice and DPE Retrospective 2024

D-Plus Tokyo #9 2024年大忘年会!開発生産性にトライした1年を振り返ろうLT会
https://d-plus.connpass.com/event/336938/

yuki

December 18, 2024
Tweet

More Decks by yuki

Other Decks in Programming

Transcript

  1. ©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ Findy Team+ Awardを受賞したかった! ベストプラクティス応募内容をふりかえり、 開発生産性向上もふりかえる

    D-Plus Tokyo #9 2024年大忘年会!開発生産性にトライした1年を振り返ろうLT会 1 Matsutani Yuki 2024.12.18 ©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ
  2. ©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 本日話すこと ”2024年大忘年会!開発生産性にトライした1年を振り返ろうLT会 ” Findy Team+

    Awardを受賞はできませんでした...... ベストプラクティス賞に応募した内容をふりかえりながら、 弊社でのここ1年の開発生産性向上がどうだったのかをふりかえります! 〇〇の取り組みいいですね! 〇〇の取り組みもっと〇〇すると良さそうですね! ということをぜひ懇親会でお話させてください この取り組みよさそう、真似したい!などあればぜひ持ち帰ってください 2
  3. ©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ アジェンダ - 前提知識紹介 - プロダクト開発組織について

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

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

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

    めぐる世界を。 Value Exciting わくわく こなすより、 夢中になろう。 Value Eager 熱心 傍観者より、 冒険者になろう。 Value Exceed 超える 前例にならうより、 前例になろう。 Mission & Value めぐる世界を。 小さな変化の積み重ねが革新に繋がる ADWAYS DEEEが世界を変える つくろう。 「よかった」が
  7. ©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 徹底的なユーザーストーリー中心のコミュニケーションと開発 18 実施した背景・目的(Why) ディスカバリーフェーズで各ロールが連携して、ソリューションのことを決定する が、デリバリーフェーズになるとエンジニアに基本的にお任せ、チーム内の関心ご

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

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

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

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

    この状態を打破するために過去にもモダナイゼーションの試みがなされたものの、 金銭を扱う以上挙動の変化に神経質にならざるを得ず、作業が滞る状態となってい た 概要(Who,When,How) トラッキングシステムの一部分のみをテスト可能だった基盤について、各開発 フェーズごとに実施範囲で記述したメンバーを中心に改修。 テスト基盤は、新旧のシステムに同じデータを入力し、出力データに差異がないか を比較するものとなっている。 成果・効果(What) ビジネス的に最善な形での実装を進めつつ、テスト基盤によって互換性を担保する ことができるため、古いコードを都度翻訳していくような実装の進め方よりも安心 感を持った上でのスピード感のある実装をできた。
  12. ©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ 開発生産性チームによる、開発生産性ふりかえりの定期実施と改善 37 実施した背景・目的(Why) 社内で、なんとなく開発速度が遅いように感じるもののその原因が明確でなく、何 を指標とすればいいのかが定まらないといった課題が存在していた。

    これに対し、開発生産性カンファレンスにおいて多くの開発組織がPR数を指標とし ていた点に注目し、部署の目標としてチームごとに平均して1人1日1PRを目標とし て設定した。 概要(Who,When,How) 単に目標を設定するだけでなく、開発生産性チームが主体となって各チームでの定 期的なふりかえりの実施(特にサイクルタイムの長いPRの要因分析やネクストアク ションの模索)を行った。 また、チーム内でサイクルタイム短縮のための実践をしやすいレビューフェーズに 注目したレビュー優先施策の実施や、Feature Flagの導入検討といった技術・文化 両面での改善の模索も行った。 成果・効果(What) 目標設定によるサイクルタイムの短縮が起こり、またそれまで顕在化していなかっ た課題を見つけることができた。
  13. ©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行)
  14. ©ADWAYS DEEE Inc. ハッシュタグ: #でぃーぷらすトウキョウ ベストプラクティス応募内容をふりかえり、開発生産性向上もふりかえる いろんなプラクティスがあったみたいだけど......? - XP文化が広がることで開発生産性も上がる -

    上流工程からテストまでのプロセス短縮にもつながっている 開発生産性はどうなった......? - 組織全体として1年前と良くなってきている - ここから上げていくのは大変だが向き合う必要がある 50