エンジニアの生産性を高めるために必要な4つの指標

この記事は[モチベーションクラウドシリーズアドベントカレンダー2021](https://qiita.com/advent-calendar/2021/mcs)の2日目の記事です。

はじめまして。リンクアンドモチベーションの河野です。

本記事では、 **"エンジニアにおける生産性の定義と向上"** をテーマに、弊社のエンジニア組織における生産性向上の取り組みを紹介します。

## 生産性の定義
生産性は以下のようなシンプルな計算式で表すことができます。

**「生産性」＝アウトプット÷インプット**

投下した労働力や資源(インプット)に対して、得られる成果(アウトプット)を大きくすることを「生産性の向上」と呼んでいます。

生産性は大きく「物的生産性」と「付加価値生産性」の２つに分類することができます。

### 「物的生産性」とは
投下した労働力によるプロダクトやサービスの「出力量」によって生産性を測る指標です。
同じインプットで多くの出力をすること=生産性が高いことになります。

**「物的生産性」＝アウトプット(出力量)÷インプット(投下した労働力)**

エンジニア組織においては、主に以下のような指標で計測されます。

・デプロイ頻度
・リードタイム
・手戻り率
・ベロシティ
・消化チケットの総数
・など

物的生産性指標の向上と安定化は、特に以下のようなチーム/個人において効果的です。

・組成されたばかりの習熟度の低いチーム
・JOINしたばかりのメンバー
・出力が安定しないジュニア

### 「付加価値生産性」とは
投下した労働力により出力されたプロダクトやサービスが生み出す「付加価値量(≒利益)」によって生産性を測る指標です。
同じインプットで多くの利益を出すこと=生産性が高いことになります。

**「付加価値生産性」＝アウトプット(付加価値量)÷インプット(投下した労働力)**

エンジニア組織において、「物的生産性」と比べて「付加価値生産性」は計測/評価が困難です。なぜなら、直接的に利益を生み出す機能開発だけではなく、ユーザビリティの改善や開発者体験の向上など、エンジニアが関わる開発は多岐に渡るからです。

そういった中で「付加価値生産性」を計測する手法として、OKRを活用するシーンが増えています。OKRとは、事業や組織の目標からブレークダウンし、チームや個人の目標に接続するフレームワークです。
（多くの組織で導入されているフレームワークなので、ここでは詳細な説明は省きます）

OKRを活用することで、「エンジニアリングでビジネスにどう貢献するか」という問いに向き合う機会を創出することができます。

## エンジニアの生産性を高めるために必要な4つの指標
これらの生産性の考え方を踏まえて、弊社のエンジニア組織においては以下の4つの観点で生産性を定義し、計測/改善を進めています。

**[物的生産性の指標]**
1. 技術的な資産/負債
2. エンジニア組織のケイパビリティ

**[付加価値生産性の指標]**
3. 創出したアウトカム/インパクト(OKR)
4. エンジニア組織のエンゲージメントスコア

それぞれの取り組みについて簡単に紹介していきます。


### 1. 技術的な資産/負債
対象となる生産性指標は"物的生産性"です。
開発に関わる様々な資産/負債を可視化し、改善しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/20310/2db2d45b-2007-d89b-295b-b02956eecbf2.png)

エンジニア組織がアウトプットをする上で、スループットに影響があるものを優先的に指標化しています。インシデントレートといった品質面の指標も、"手戻りの発生"による生産性への影響を鑑みて指標に含めています。

### 2. エンジニア組織のケイパビリティ
対象となる生産性指標は"物的生産性"です。
弊社では、書籍[『LeanとDevOpsの科学』](https://www.amazon.co.jp/dp/4295004901)で有名な[Four Keys Metrics](https://cloud.google.com/blog/ja/products/gcp/using-the-four-keys-to-measure-your-devops-performance)をケイパビリティ指標として設定しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/20310/d93ee3ab-b59f-e694-870d-830b1b985fd5.png)

↑の図は、弊社のとあるチームの計測結果です。
計測の結果、デプロイ頻度および[D/D/D](https://twitter.com/hiroki_daichi/status/1100381137929625600?s=20)に課題があることが判明しました。デプロイフローを改善し、3時間かかっていた作業時間を15分まで短縮。その結果としてデプロイ頻度を上げることに成功しました。
（デプロイ頻度向上の取り組みの詳細については、今後のAdvent Calendarの記事で紹介する予定です）

### 3. 創出したアウトカム/インパクト(OKR)
対象となる生産性指標は"付加価値生産性"です。
付加価値量をOKRの達成度合いで計測しています。

OKR策定にあたり、チャーンレートやコストの減少など事業への直接的な貢献度合いではなく、その中間指標としてアウトカムを指標として置いています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/20310/401a5c5f-f984-0e5a-c72c-5408a7726a8a.png)

なぜなら、事業へのインパクトは遅行指標であり、デリバリーする全ての価値が即時影響を与えるものではないからです。アウトプット→インパクトでは遠すぎるため、中間指標/先行指標としてアウトカムを定めています。

また、アウトカムを創出しやすくするための工夫の一つとして、2021年からチームをミッション型組織に編成し直しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/20310/e11ebc64-9a58-5568-1fae-3a9fbf77d1b5.png)

### 4. エンジニア組織のエンゲージメントスコア
対象となる生産性指標は"付加価値生産性"です。
弊社で提供している独自指標のエンゲージメントスコアです。

エンゲージメントスコアとは、企業と従業員の相互理解・相思相愛度合いを示す指標です。
[営業利益率と労働生産性と相関性があるという研究結果](https://www.lmi.ne.jp/about/me/finding/detail.php?id=14)もあり、生産性に寄与する重要な指標と捉えています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/20310/3172c806-dde6-e4bf-6b79-8f8d3ea99670.png)

## おわりに
いかがでしたでしょうか。私どもの取り組みがなにかの参考になれば幸いです。

明日は、フロントエンドテックリードの菊池による
**「Node.jsを安全にアップデートするためにやったこと」**
です。お楽しみに！