<-- mermaid -->

2022年における開発組織のパフォーマンス計測とNewsPicksの取り組みについて

NewsPicksの高山です。

2020年と2021年は「開発生産性」またはほぼ同義の「開発者体験」に注力した2年でした。特に2021年は、自分でも少しウザいぐらいに登壇やブログやインタビューでこの話をしていました。(後半からは「開発生産性」から派生してKotlinの話が主でした)

tech.uzabase.com codezine.jp hatenanews.com zine.qiita.com zine.qiita.com tech.uzabase.com hatenanews.com

今回のブログでは、2021年のNewsPicks開発組織のパフォーマンス計測の現状と、界隈の動向についてまとめていきます。

背景

『LeanとDevOpsの科学』によると、一般的にアジャイル開発で良いとされる開発スタイルを多く取り入れている企業は、収益性や市場占有率なども高い傾向にあるということでした。

book.impress.co.jp

特にFour Keys(後述します)と呼ばれる「デプロイの頻度」「変更のリードタイム 」「変更障害率」「サービス復元時間」を主要な指標として提案していますが、この本では他にも情報の透明性や心理的安全性も同様に相関する指標だと書いてあったと記憶しています。

結局のところ、「組織の開発力」という抽象的な概念はそれ自体は計測できないものの、Four Keysなどなどを定点観測することでだいたい把握できるのです。

そうであれば一番計測のしやすい「デプロイの頻度」のみを計測すれば十分と判断して追ってきたのが過去2年でした。

デプロイ頻度の計測

NewsPicksではGitHubリポジトリごとの週間デプロイ回数を定点観測しています。 具体的には、デプロイするたびにGitのタグを打つルールに統一し、GitHub APIからタグの数を集計するGoogle Apps Scriptを作っています。

ごく一部のリポジトリについては「変更失敗率」(hotfixタグの割合)も計測しています。

例えば過去半年のデプロイ頻度ダッシュボードです。年末年始は目に見えて減っていますが、基本的に上がり調子で来ているのがわかります。

デプロイの頻度はエリート組織とそうでない組織には何十倍も何百倍も差があるそうです。毎日何十回もデプロイしている組織と、数ヶ月に1回しかデプロイしない組織の差がそれにあたります。ですので、基本的にはデプロイ回数は毎年倍々で増やしていくことを目指して施策を打っています。

Findy Teams

2021年からはFindy Teamsというサービスを使い始めました。Findy Teamsはまさに開発組織のパフォーマンスを可視化するためのサービスです。

最近だとPR TIMESさんやANDPADさんのブログでも紹介されていました。

developers.prtimes.jp

tech.andpad.co.jp

参考までにFindy Teamsで見られるNewsPicksの2021年のグラフを公開します。

NewsPicksで一番参考にしているのは、「平均プルリク作成数」です。(平均とは3週間の移動平均のことです)

年間を通じて基本的には上がり基調で進行していました。ただし、11月から少し大きめの開発が落ち着いて足踏み感が出てしまっていたようです。このような偽らざる実態を定期的に可視化し、チームリーダー全員で意識合わせして打ち手を考えます。

具体的な打ち手としては、「平均プルリククローズ時間」を下げていくように体制を作っていこうとしています。作られたプルリクはいち早くマージまで持って行くように、例えばレビュワーの負荷を分散するなどが挙げられます。

(「平均プルリククローズ時間」などが直近にかけて大幅に下がっているグラフになっているのは、まだクローズされていないプルリクが今後クローズされたタイミングでグラフに計上されるためです)

ちなみに、ほぼすべてのリポジトリをGitHub Flowで開発していますので、プルリクのマージ数はデプロイ回数とかなり近いはずです。それでも「平均プルリククローズ時間」などの付随指標が見られることには価値を感じています。

また、スマホアプリ開発は「デプロイ回数」では測りにくいため、Findy Teamsによる可視化が役に立っています。

Four Keys

『LeanとDevOpsの科学』で提唱されている4つの指標はその後Four Keysという名前が付いて、Google Cloudのブログにも取り上げられていました。

cloud.google.com

このブログ記事によると、「変更障害率」や「サービス復元時間」といった指標も、障害報告レポートなどを集計すれば計測可能とあります。

実際リクルートさんではGoogle Cloudのブログを参考に、4つすべての指標を見られるダッシュボードを作ったそうです。

engineer.recruit-lifestyle.co.jp

このように具体的な事例があると、とりあえず計測しやすい「デプロイ頻度」だけを見れば大丈夫という僕の持論もアップデートが必要そうですね。

まとめ

そんなわけで、NewsPicksでは組織の開発力を可視化して開発生産性を高める活動の成果指標としています。2020年も2〜3倍のデプロイ頻度成長でしたが、2021年も3〜4倍の成長ができていたそうです。(ただし開発者数も数割増えています)

2021年は、Findy TeamsやFour Keysをはじめとして、開発組織のパフォーマンス計測手法が一気に充実した年だったとを感じます。

開発生産性に対する技術投資も、効果が見えやすくなったことでさらにどの会社も力を入れることができるようになったのではないでしょうか。

宣伝

開発者体験を向上し続けるNewsPicksの開発に興味のあるエンジニアの方はご応募お待ちしています!

apply.workable.com

また、このあたりの話を来月のイベントでお話ししますのでご興味があれば見てみてください。

findy.connpass.com

イベントレポートが出ました。

engineering-org.findy-teams.com

Page top