グローバル最先端の開発生産性とは?「DPE Summit 2023 in SF」参加レポート(Day1)
DPE Summit 2023とは?
Gradleが主催で、昨年から開催されているDPE, DX(開発生産性、開発者体験)に関する2Daysカンファレンス。
開発生産性にフィーチャーした海外カンファレンスでは最大であり、学びの機会として参加しました。
スポンサーは、JET BEAINS、Meta、NETFLIX、Uberと豪華。
会場の様子
会場は、The Midwayという湾岸沿いのオシャレなイベント施設でした。
キャパシティは、
・メイン会場:300人くらい
・サブ会場:100人くらい
で、4~500名くらいが現地参加していたのではと思われます。
Keynote
GradleのCEOによるKeynoteセッション。
GitHubの調査を例に挙げながら、GenAIの登場により、一層DevExへの注目度が高まっている事を紹介。
Uber「Developing at Uber Scale」
UberのSenior Director of Engineeringによるセッション。
組織のスケールに伴う、開発ワークフローの最適化と、AIを活用した開発者体験の向上について。
現在、「Development Platform」という組織があり、約200人のエンジニアが開発者の生産性と満足度の向上に専念している。
戦略として、すべての人が同じツールとプロセスを使用し、パフォーマンスの測定や改善に向けた課題の特定を容易にすることを目指している。
現在は、プラットフォームごとのリポジトリであるが、最終的には、1つのグローバルリポジトリを持つことを目指している。
開発ワークフローは、プラットフォーム間で標準化されており、プロセスを統一し、各種メトリクスを簡単に測定できるようにしている(4500人規模で統一できるのすごい、、、)
またUberでは、2017年からNPS調査を使用して開発者の満足度を計測。
直近で、NPSに影響しているのは、以下の課題が多い。
品質に関連する課題:多くのサービスが連携しているの特性上、デプロイ時のテストの困難さ
デバッグに関する課題:ビルドの失敗や、ローカルまたはCIでのテストの失敗、ステージングでのテストの失敗、または本番環境での何らかの障害
また、全社的にCopilotを導入していて、初期の成果として以下が出ている。
アシストの受け入れ率は29%(実態はもう少し低いかもらしい)
アシストを受け入れたコードの平均は、1.4行(まだそのレベルの精度)
75%がより生産的になったと感じている
NPSスコアは、6.0
次のステップは、独自のコーディングシステムを構築する事で、大規模言語モデルを用い、IDEプラグインに統合して、コーディングのパフォーマンスを向上させることを目指している。
また、AIの活用については、社内でハッカソンを行っており、AIがコードのエラーを自動的に修正するデバッグシステム等、既に多くのツールが生まれている。
エンジニア組織のスケールに伴う、徹底した標準化や、開発者のペインに対して、GenAIを活用する事の重要性が強調されたセッションでした。
Meta「Moving Fast While Delivering High-Quality Code」
MetaのResearch Software Engineerによるセッション。
Mark Zuckerbergも、エンジニアの効率と開発者の生産性の重要性をプレスリリースで言及しており、以下の3つのポイントで開発生産性の向上にトライしている。
Velocity
Readability
Reliability
Velocityの観点では、開発者がコードの変更を書き込み、完成させるまでの時間を測定する「Authoring Velocity」というドライバーを注視。以下の取組でリードタイムを減少。
ビルドシステムのツールチェーンを刷新し、ビルド時間を半分に短縮
スニペットの提供など、複数の機能をサポートするPythonのlanguage service「Wasabi」を導入し「Authoring Velocity」を20%短縮
コードのCyclomatic Complexityを60%減少し、コーディング速度が42%向上
Reliabilityの観点では、LLMを使用して、コードの変更を意図によって自動的にラベル付けし、特定のタイプの変更にかかる時間を測定し、改善が必要なポイントを特定。
また、テストプラン*の品質を評価するために、NLPを用いており、高品質のテストプランは、コードの品質の向上とレビュワーのエンゲージメント向上と相関があった。
*レビュアーに、どのように変更をテストできるかを伝える「このコマンドを実行したらこうなる」という箇条書きのテキスト
Readabilityの観点では、LLMを用いて、コードの読みやすさを評価するためのソリューションを検討中で、課題はモデルを訓練するための適切なデータセットを見つけること。
コードの読みやすさを定量化することができれば、システム停止を引き起こしうるリスクのアラートや、新メンバーがより読みやすいコードのセクションからオンボーディングを始められる等のメリットを想定。
Spotify「An Opinionated View on Metrics Informed Development」
SpotifyのEMによるセッション。
開発生産性に関するmetricsに対するメンタルモデルの解説から。
先行指標と遅行指標があり、本質的には、遅行指標である「Value Creation metrics(収益、月間アクティブユーザー、ユーザー満足度など)」が最も重要である。これらのメトリクスはノイズが少なく、安定しており、長期的・戦略的に使用できる。
先行指標は、アクションやプロセスの変更によってすぐにデータが持つ意味に影響を受ける可能性があるため"Vanity Metrics"になりうる。短期的な意志決定には有用だが、中期での運用においては、文脈の変化がないかの観察が重要。
Data→Information→Knowledgeの3階層をまたぎながら、データを収集し、実用的な洞察を導き出すというプロセスは繰り返しであり、常に評価と洗練が重要。
収集されたすべてのメトリクスの文脈化することが極めて重要。
例えば、バックエンドの開発者と機械学習チームなど、文脈やプロセスが異なるチームの生産性を直接比較することは妥当ではない。
OKRsに設定するメトリクスは、特に、Value (収益、月間アクティブユーザー、ユーザー満足度など)が反映されているかが重要。
データの品質は初めは最適でないかもしれないが、メトリクスを使用して観察することで品質を向上させることができるので、今すぐ計測を始めるべきという話で締めくくられました。
DX「We're Measuring Productivity Wrong」
GitHubに買収されたPullPandaの創業者のセッション。
開発者における生産性の定義は難しく、DORAのFour Key metricsや、SPACEなどのフレームワークは、背景や目的を理解せずに採用することは逆にエンジニア組織にとっては有害。
ログデータの様な"Quantitative"な指標と、"Qualitative"な指標とを使い分けながら課題を分析するのが重要とのこと。
Showdown Live
ライブで回答&オーディエンスが投票するセッション。
めちゃくちゃ面白かった&軽妙なトークで会場も盛り上がってました。笑
いくつかピックアップしてご紹介。
「What is the most important DPE metric for you today?」
→「自己申告による集中力。人々は環境を快適に感じていると集中できるので。」
「What is the most difficult DPE metric to mesure?」
→「開発者の感情の変化を正しく計測すること。」
「When do DPE metrics go wrong?」
→「指標からの具体的な洞察の欠如。」
Happy Hour
セッションが終わり、ネットワーキングタイム。
フードトラックが3台。グルテンフリーメニューやハラルフードが必ずあったのが印象的でした。
ネットワーキング感想
DORA metricsを計測している企業も20人ほど話して半数くらいだったり、Sumsungのエンジニアいわく韓国では、それほどトピックになってないなど、DevProdやDevEXは、グローバルでもまだまだ模索中のドメインだなと改めて感じました。
去年と比較して、Metricsに関連するセッションが増えているらしく、コロナ時のWFHでの生産性や、DORAやSPACEといった"Quantitative"な指標を示唆するフレームワークが広く流通した事による影響が大きそうです。
一方で、UberやMetaの様に、GenAIを用いた開発者のペインの解消による開発プロセス全体の効率化に対する期待の大きさを感じました(セッションも一番人がいた)
Day2では、更にMetricsに関するセッションも予定されているので楽しみです!
(↓Day2更新しました)
「DPE Summit」気になった方は、ぜひ来年一緒にいきましょう!!!(たぶん日本人は自分しかいなかった)
また、セッションのより詳細が気になる方、海外の開発生産性事例に関して興味がある方は、ぜひ気軽にメッセージください!
▼Xはこちら
https://twitter.com/bachio178
▼LinkedInはこちら
https://www.linkedin.com/in/masa-inaba-0249a8286/