人間による開発者生産性の測定

開発者生産性の測定は難しい課題です。開発サイクル時間やスループットに焦点を当てた従来の指標は限界があり、他に目を向けるべき明確な答えはありません。定性的指標は、開発者自身から得られたデータを使用して、開発者生産性を測定し理解するための強力な方法を提供します。組織は、システムからのデータではなく、人間からのデータを使用して開発者生産性を測定することを優先すべきです。

2024年3月19日


Photo of Abi Noda

Abi Nodaは、組織が開発者生産性を測定および改善する支援に特化したDXの創設者兼CEOです。プログラマー兼研究者として、Abiは定期的に開発者エクスペリエンスに関するコンテンツと研究を発表しています。DX以前は、2019年にGitHubに買収されたPull Pandaの創設者兼CEOでした。

Photo of Tim Cochran

Tim Cochranは、AmazonのSoftware Builder Experience(ASBX)グループのプリンシパルです。以前はThoughtworksでテクニカルディレクターを務めていました。

Timは、スケールアップ企業とエンタープライズ企業の両方で20年以上の経験があります。彼はテクノロジー戦略と、デジタルトランスフォーメーション目標を可能にするための適切なテクノロジー投資についてアドバイスしています。彼は開発者エクスペリエンスの熱心な提唱者であり、データドリブンアプローチを使用して開発者エクスペリエンスを改善することに情熱を注いでいます。


今この瞬間、あるテクノロジー企業の幹部は取締役たちにこう言います。「エンジニアリングチームの生産性を測定する方法が必要です。」ワーキンググループが潜在的な解決策を探求するために集まり、数週間後に、リードタイム、デプロイ頻度、エンジニア一人当たりの作成プルリクエスト数を指標として実装することを提案します。

間もなく、上級エンジニアリングリーダーが新しく作成されたダッシュボードを確認するために会合を開きます。すぐに、質問と疑問が提起されます。あるリーダーはこう言います。「リードタイムは2日で、それらのベンチマークによると『低パフォーマンス』ですが、実際に問題があるのでしょうか?」。別のリーダーはこう言います。「一部のチームが他のチームよりも頻繁にデプロイしていないことは、驚くことではありません。しかし、これが改善の機会を意味するかどうかは分かりません。」

このストーリー展開に聞き覚えがあるなら、心配しないでください。世界最大のテクノロジー企業の一部を含む、ほとんどの人にとって馴染みのあるものです。DORAなどの指標がリーダーが期待していたインサイトを提供できない場合、測定プログラムが不十分になることは珍しくありません。

しかし、より良いアプローチがあります。速度と出力の基本的な測定にのみ依存するのではなく、開発者自身からのインサイトの取得に焦点を当てたアプローチです。私たちは多くの組織がこの人間中心のアプローチへの飛躍を支援してきました。そして、それがもたらす開発者生産性の劇的な理解の向上を目の当たりにしてきました。

ここで言及しているのは、*定性的測定*です。この記事では、多くの組織がこの取り組みを支援してきた経験から得られたこのアプローチの概要を示します。定性的指標の定義と、それらを提唱する方法から始めます。その後、このデータを収集、追跡、および活用する方法に関する実践的なガイダンスを示します。

今日、開発者生産性は、財政引き締めとAIなどの変革技術という背景の中で、企業にとって重要な懸念事項となっています。さらに、企業がアジャイルとDevOpsの変革を超えて検討するにつれて、開発者エクスペリエンスとプラットフォームエンジニアリングはますます注目を集めています。これらの懸念事項に共通しているのは、意思決定の指針となり、進捗状況を追跡するために測定に依存していることです。そしてそのためには、定性的測定が重要です。

注記:「開発者生産性」と言う場合、開発者の個々のパフォーマンスではなく、開発者が円滑に作業できる程度を意味します。組織によっては、「開発者生産性」という用語は、開発者によって誤解される可能性があるため、問題のある用語だと考えています。組織には、開発者にとってより肯定的な意味合いを持つ「開発者エクスペリエンス」という用語を使用することをお勧めします。

定性的指標とは何か?

私たちは、定性的指標を、人間が提供するデータで構成される測定値として定義します。これは実際的な定義です。社会科学の中で単一の定義は見つからず、私たちが見つけた代替定義には、後でこのセクションで説明する欠陥があります。

図1:定性的指標は人間から得られた測定値です

「指標」という言葉の定義は明確です。しかし、「定性的」という用語には、2019年の学術論文What is Qualitative in Qualitative Researchで述べられているように、権威ある定義はありません。

定性的研究の定義はたくさんありますが、「定性的」であるという独自の特性に対処する定義を探すと、社会科学の広範な分野にわたる文献は乏しいです。この記事の主な理由は、このパラドックスにあります。簡単に言えば、研究者はそれが何であるかを知っているかのように振る舞いますが、一貫した定義を定式化することはできません。

私たちが聞いた別の定義は、定性的指標は質を測定し、定量的指標は量を測定するというものです。この定義には2つの理由で問題があると私たちは考えています。まず、「定性的指標」という用語には*指標*という用語が含まれており、これは出力が*量*(つまり、測定値)であることを意味します。第二に、質は通常、数値とスコアに変換される序数尺度によって測定されます。これは、再び定義に矛盾します。

私たちが聞いた別の議論は、感情分析の出力は、分析の結果が数値になるため*定量的*であるということです。感情分析から得られるデータが定量的であることに同意しますが、元の定義に基づくと、これは「定性的指標」が完全に矛盾語であるという立場をとる場合を除き、依然として定性的*指標*(つまり、定性的に生成された量)です。

定性的指標とは何かを定義することの問題に加えて、問題のある口語表現にも遭遇しました。「ソフトメトリック」という用語はその一例です。このフレーズは、人間から収集されたデータがシステムから収集された「ハードメトリック」よりも*弱い*ことを有害で誤って暗示しているため、このフレーズには注意が必要です。また、「主観的指標」という用語も、人間から収集されたデータは、次のセクションで説明するように、客観的または主観的な可能性があるという事実を誤解しているため、推奨しません。

定性的指標:人間から得られた測定値
タイプ定義
態度指標特定の主題に対する主観的な感情、意見、または態度。1~10の尺度で、IDEの満足度はどの程度ですか?
行動指標個人の労働経験に関する客観的な事実または出来事。変更を本番環境にデプロイするのにどれくらいの時間がかかりますか?

この記事の後半では、これらの測定値の収集と使用方法について説明しますが、まず、このアプローチを実践した現実世界の例を示します。

Pelotonは、開発者生産性の測定戦略の中心に定性的指標を据えているアメリカのテクノロジー企業です。定性的指標を収集するために、彼らの組織は、製品運用組織の一部であるテクノロジー有効化および開発者エクスペリエンスチームが主導する、半期ごとの開発者エクスペリエンス調査を実施しています。

テクノロジー学習とインサイトの責任者であるThansha Sadacharamは次のように説明しています。「私は強く信じており、私たちの多くのエンジニアも本当にそれを高く評価していると思いますが、エンジニアはロボットではなく人間です。そして、基本的な数字を見るだけでは、全体像を把握できません。そのため、私たちにとって、開発者エクスペリエンス全体を理解するのに役立つ包括的な調査を行うことが非常に重要でした。」

各調査は、開発者の約半数のランダムサンプルに送信されます。このアプローチにより、個々の開発者は1年に1回だけの調査に参加するだけで済み、調査への回答に費やす時間を最小限に抑えながら、統計的に有意な代表的なデータ結果セットを提供できます。テクノロジー有効化および開発者エクスペリエンスチームは、調査結果を分析し、組織全体のリーダーと共有する責任も負っています。

Pelotonの開発者エクスペリエンス調査の詳細については、Thansha Sadacharamとのこのインタビューを聞いてください。

定性的指標の提唱

幹部は、定性的指標の信頼性や有用性についてしばしば懐疑的です。Googleのような非常に科学的な組織でさえ、これらのバイアスを克服しなければなりませんでした。エンジニアリングリーダーは、システムの検査にテレメトリデータを使用することに慣れているため、システムメトリックに傾倒しています。しかし、人々の測定には同じアプローチを当てにすることはできません。

定性的指標と定量的指標を対立させるのを避けてください。

私たちは、組織が内部の「指標の戦い」に陥るのを目撃してきました。これは時間とエネルギーの無駄です。私たちのアドバイスは、推進者にとって、定性的指標と定量的指標をどちらか一方として対立させるのを避けることです。この記事の最後に説明するように、それらが補完的なツールであると主張する方が良いでしょう。

私たちは、定性データへの反対の根本的な原因は、以下で説明する誤解であると考えています。この記事の後半では、無形のものや重要な文脈を明らかにする能力など、自己申告データの明確な利点を概説します。

誤解:定性データは主観的のみである

従来の職場調査は、従業員の主観的な意見や感情に焦点を当てるのが一般的です。そのため、多くのエンジニアリングリーダーは、調査では開発者から主観的なデータしか収集できないと直感的に考えています。

次のセクションで説明するように、調査では事実またはイベントに関する客観的な情報も収集できます。GoogleのDevOps Research and Assessment(DORA)プログラムは、優れた具体的な例です。

客観的な調査の質問の例

  • コードのコミットから、コードが本番環境で正常に実行されるようになるまでにかかる時間はどれくらいですか?
  • 組織はどのくらいの頻度でコードを本番環境にデプロイしたり、エンドユーザーにリリースしたりしますか?

誤解:定性データは信頼できない

アンケートの課題の1つは、あらゆるバックグラウンドを持つ人々が特別な訓練を受けることなくアンケートの質問を作成することです。その結果、多くの職場アンケートは、信頼できる、または妥当な測定値を得るために必要な最低限の基準を満たしていません。しかし、適切に設計されたアンケートは正確で信頼性の高いデータを生み出します(この記事の後半で、その方法についてガイダンスを提供します)。

一部の組織では、アンケートで回答者が虚偽の回答をする可能性を懸念しています。これは、データの使用方法に関する懸念がある状況で発生する可能性があります。私たちの経験では、アンケートが開発者を悩ませるボトルネックの理解と改善を支援するためのツールとして展開される場合、回答者が虚偽の回答をしたり、システムを操作したりするインセンティブはありません。

アンケートデータが常に100%正確であるとは限りませんが、システム指標も多くの場合不完全であることをリーダーにしばしば思い出させます。例えば、多くの組織は、パイプラインから集計されたデータを使用してCIビルド時間を測定しようとしますが、正確な結果を得るためにデータのクレンジング(バックグラウンドジョブの除外、並列ジョブの考慮など)に多大な労力を費やす必要があることがわかります。

2種類の定性的指標

定性的な指標には2つの主要なタイプがあります。

  1. 態度指標は、特定の対象に対する主観的な感情、意見、または態度を捉えます。態度指標の例としては、「1~10点の尺度で、あなたのIDEの満足度はどのくらいですか?」という質問に対する数値的な回答があります。
  2. 行動指標は、個人の仕事経験に関する客観的な事実または出来事を捉えます。行動指標の例としては、「変更を本番環境にデプロイするのにどれくらいの時間がかかりますか?」という質問に対する数量的な回答があります。

私たちは、多くの技術者は定性的な指標について考える際に、行動指標を見過ごしていることに気づきました。これは、GoogleのDORAプログラム(前述)など、ソフトウェア研究における定性的な行動指標の普及にもかかわらず発生しています。

DORAは、変更のリードタイム、デプロイ頻度、変更失敗率などの指標に関する年間ベンチマークを公開しています。多くの人が知らないことですが、DORAのベンチマークは、以下に示すアンケート項目を用いた定性的な方法で取得されています。

リードタイム

あなたが主に作業しているアプリケーションまたはサービスについて、変更のリードタイム(つまり、コードのコミットからコードが本番環境で正常に実行されるまでにかかる時間)はどのくらいですか?

6ヶ月以上

1ヶ月~6ヶ月

1週間~1ヶ月

1日~1週間

1日未満

1時間未満

デプロイ頻度

あなたが主に作業しているアプリケーションまたはサービスについて、あなたの組織はどのくらいの頻度でコードを本番環境にデプロイするか、またはエンドユーザーにリリースしますか?

6ヶ月に1回未満

月に1回~6ヶ月に1回

週に1回~月に1回

日に1回~週に1回

1時間~1日に1回

オンデマンド(1日に複数のデプロイ)

変更失敗率

あなたが主に作業しているアプリケーションまたはサービスについて、本番環境への変更またはユーザーへのリリースのうち、何パーセントがサービスの低下(例:サービス障害またはサービス停止につながる)を引き起こし、その後修正が必要になりますか(例:ホットフィックス、ロールバック、修正、パッチが必要)?

0~15%

16~30%

31~45%

46~60%

61~75%

76~100%

復旧時間

あなたが主に作業しているアプリケーションまたはサービスについて、サービスインシデントまたはユーザーに影響を与える欠陥が発生した場合(例:計画外の停止、サービス障害)、一般的にサービスを復旧するのにどれくらいの時間がかかりますか?

6ヶ月以上

1ヶ月~6ヶ月

1週間~1ヶ月

1日~1週間

1日未満

1時間未満

私たちは、態度データと行動データを同時に収集できることが、定量的な測定の強力な利点であると考えています。

例えば、行動データは、リリースプロセスが高速で効率的であることを示している可能性があります。しかし、それがスムーズで苦痛がないかどうかは、態度データでしか分かりません。これは、開発者の燃え尽き症候群や定着率に重要な影響を与えます。

技術以外の例として、病気で医師の診察を受けた状況を想像してみてください。医師は血圧、体温、心拍数を測定し、「まあ、大丈夫そうですね。異常はありません。」と言います。あなたは驚きますね!「ちょっと待ってください、何かおかしいと感じているんです。」と言うでしょう。

定性的指標の利点

定量的な指標の利点の1つは、開発者を管理者によって「測定されている」と感じさせることを回避することです。特に、開発者のGitやJiraデータから取得された指標と比較した場合、これは正しいと私たちは考えていますが、定量的なアプローチが提供できる主要な客観的な利点には対処していません。

開発者の生産性を測定する場合、定性的な指標には3つの主な利点があります。

定性的指標により、それ以外では測定できないものを測定できる

リードタイムやデプロイ量などのシステム指標は、パイプラインやチケットシステムで何が起こっているのかを捉えています。しかし、生産性を向上させるためには、開発者の仕事のさらに多くの側面を理解する必要があります。例えば、開発者が作業の流れを維持できるかどうか、またはコードベースを簡単にナビゲートできるかどうかなどです。定性的な指標を使用すると、それ以外の方法では測定が困難または不可能なこれらの無形な要素を測定できます。

その興味深い例として、技術的負債があります。Googleでは、技術的負債の指標を特定するための研究において、潜在的な指標として提案された117個の指標の分析が含まれていました。Googleの研究者たちの失望に反し、有効な指標となる単一の指標または指標の組み合わせは見つかりませんでした(Googleが技術的負債をどのように測定するかについては、このインタビューを聞いてください)。

技術的負債に対して未発見の客観的な指標が存在する可能性がありますが、システムまたはコードベースの現在の状態と理想的な状態を比較することに依存しているため、これは不可能であると推測できます。つまり、人間の判断が不可欠です。

定性的指標は、チームとシステム全体の見えにくい部分を明らかにする

チケットシステムとパイプラインからの指標は、開発者が行っている作業の一部を可視化します。しかし、このデータだけでは、全体像を把握できません。開発者は、チケットやビルドには記録されない多くの作業を行っています。例えば、主要な機能の設計、プロジェクトの方向性の決定、チームメイトのオンボーディングの支援などです。

システムからのデータだけでは、これらのすべての活動を可視化することは不可能です。そして、理論的にシステムを通じてすべてのデータを収集できたとしても、インストルメンテーションを通じて指標を収集することには、さらに課題があります。

1つの例は、さまざまなチームワークフロー間で指標を正規化することの難しさです。例えば、タスクの開始から完了までにかかる時間を測定しようとする場合、チケットツールからこのデータを取得しようとします。しかし、個々のチームはしばしば異なるワークフローを持っており、正確な指標を得ることが困難になります。対照的に、開発者にタスクに通常どれくらいの時間がかかるかを尋ねる方がはるかに簡単です。

もう1つの一般的な課題は、クロスシステムの可視性です。例えば、小さなスタートアップは、Jiraなどの課題トラッカーを使用してTTR(復旧時間)を測定できます。しかし、大規模な組織では、エンドツーエンドのシステム可視性を獲得するために、計画システムとデプロイメントパイプライン全体でデータを統合およびクロス属性化する必要があります。これは1年間の作業になる可能性がありますが、開発者からこのデータを取得することで、迅速にベースラインを得ることができます。

定性的指標は、定量的データに文脈を与える

技術者として、定量的な測定に重点を置くのは簡単です。結局のところ、それは明確で分かりやすいように見えます。しかし、より豊富なデータがなければ全体像が語られていないというリスクがあり、それが間違ったことに焦点を当てることにつながる可能性があります。

その1つの例はコードレビューです。一般的な最適化は、コードレビューを高速化しようと試みることです。コードレビューを待つことで無駄な時間や望ましくないコンテキストスイッチが発生する可能性があるため、これは論理的です。レビューの完了にかかる時間を測定し、チームがそれを改善するように促すことができます。しかし、このアプローチは、レビューアーがレビューを急いだり、開発者が適切な専門家を見つけることができなくなったりするなど、ネガティブな行動を促す可能性があります。

コードレビューには重要な目的があります。それは、高品質のソフトウェアが提供されるようにすることです。速度だけでなくプロセスの結果に焦点を当てたより包括的な分析を行うと、コードレビューの最適化は、良好なコード品質、セキュリティリスクの軽減、チームメンバー間での共有知識の構築、および同僚が待たされることがないようにする必要があることがわかります。定性的な測定は、これらの結果が満たされているかどうかを評価するのに役立ちます。

もう1つの例は、開発者のオンボーディングプロセスです。ソフトウェア開発はチーム活動です。したがって、新しい開発者がコミットする速度や最初のコミットまでの時間などの個々の出力指標のみを測定すると、開発者が持ち込んでいるアイデアを十分に活用しているかどうか、質問をするのが安全だと感じているかどうか、クロスファンクショナルな同僚と協力しているかどうかなど、重要な結果を見逃します。

定性的指標の収集方法

多くの技術者は、適切なアンケートの質問を作成し、適切なアンケートツールを設計することがどれほど難しいかを実現していません。実際、心理測定学や産業心理学など、これに関する研究分野全体があります。可能であれば、ここに専門知識を取り入れるか、構築することが重要です。

以下は、組織が犯す最も一般的な間違いを回避するためのアンケート作成に関するいくつかの良いルールです。

  • アンケート項目は慎重に言葉を選んで記述する必要があり、各質問は1つのことだけを尋ねるべきです。
  • アンケート間の結果を比較する場合は、異なるものを測定するような形で質問の言い回しを変更することに注意してください。
  • 言い回しを変更する場合は、厳密な統計的検定を行う必要があります。

アンケート用語では、「良いアンケート」とは「妥当で信頼できる」、または「優れた心理測定特性を示す」ことを意味します。妥当性とは、アンケート項目が実際に測定したい構成概念を測定する程度です。信頼性とは、アンケート項目が集団から、そして時間をかけて一貫した結果を生み出す程度です。

アンケート設計について、技術者に役立つと私たちが考えている考え方があります。それは、アンケート回答プロセスを人間の心の中で行われるアルゴリズムとして考えることです。

個人にアンケートの質問が提示されると、回答に達するために一連の精神的なステップが行われます。以下のモデルは、2012年の画期的な著書『The Psychology of Survey Response』からのものです。

回答プロセスの構成要素
構成要素具体的なプロセス
理解

質問と指示に注意する

質問の論理形式を表す

質問の焦点(求められる情報)を特定する

キーワードを関連する概念にリンクする

情報検索

検索戦略と手がかりを生成する

特定の、一般的な記憶を検索する

欠けている詳細を埋める

判断

記憶の完全性と関連性を評価する

アクセシビリティに基づいて推論する

検索された情報を統合する

部分的な検索に基づいて推定を行う

回答

判断を回答カテゴリにマッピングする

回答を編集する

アンケート回答のプロセスを分解し、各ステップを検査することで、より正確なアンケート結果を得るためのインプットを洗練することができます。優れたアンケート項目の開発には、ソフトウェア設計のプロセスと同様に、厳格な設計、テスト、分析が必要です!

しかし、優れたアンケート設計は、成功するアンケートを実施するための側面の一つに過ぎません。参加率、データ分析、データに基づいてどのように行動するかなど、追加の課題があります。以下は、私たちが学んだベストプラクティスの一部です。

チームとペルソナ別に結果をセグメント化する

組織のリーダーが犯しがちなよくある間違いは、チームやペルソナ(例:役割、在籍期間、役職)別に分類されたデータではなく、会社全体の成果に焦点を当てることです。前述のように、開発者エクスペリエンスは非常に文脈依存であり、チームや役割によって大きく異なる可能性があります。集計結果のみに焦点を当てると、モバイル開発者など、企業内の小規模だが重要な集団に影響を与える問題を見落とす可能性があります。

フリーテキストコメントは多くの場合最も価値がある

私たちは定性的な指標について説明してきましたが、自由記述コメントは非常に価値のある定性的データの形態です。摩擦やワークフローを説明する以外にも、開発者には開発者エクスペリエンスを改善するための多くの優れたアイデアがあり、自由記述によりそれらを捉え、フォローアップすべき人を特定することができます。自由記述コメントは、アンケートでカバーされていない領域を明らかにすることもでき、将来に追加することができます。

ベンチマークと結果を比較する

比較分析は、データを文脈化し、行動を促すのに役立ちます。たとえば、コードの品質に対する開発者の感情は一般的にネガティブに偏っているため、真の問題を特定したり、その大きさを測ったりすることが困難です。より実用的なデータポイントは、「当社の開発者は、他のチームや組織よりもコードの品質について *より* イライラしているか?」です。同業他社よりも感情スコアが低いチームや、業界の同業他社よりもスコアが低い組織は、改善のための注目すべき機会を明らかにすることができます。

適切な場合はトランザクション調査を使用する

トランザクション調査は、開発者のワークフローにおける特定のタッチポイントまたはインタラクション中にフィードバックを収集します。たとえば、プラットフォームチームは、トランザクション調査を使用して、内部開発者ポータルで新しいサービスを作成している最中の開発者からフィードバックを求めることができます。トランザクション調査は、より高頻度のフィードバックとより詳細な洞察を提供することにより、定期的な調査からのデータを増強することもできます。

調査疲れを避ける

多くの組織は、長期間にわたって高い参加率を維持することに苦労しています。フォローアップの不足により、開発者は繰り返しアンケートに回答することは価値がないと感じる可能性があります。したがって、リーダーとチームがアンケート後にフォローアップし、意味のある行動をとることが不可欠です。四半期ごとまたは半期ごとのアンケート頻度はほとんどの組織にとって最適ですが、定期的なチームの儀式(レトロスペクティブなど)に統合された、より頻繁なアンケートで成功している組織も見られます。

調査テンプレート

開始するための簡単なアンケートの質問セットを以下に示します。以下の質問を好みのアンケートツールに読み込むか、すぐに使えるGoogleフォームテンプレートのコピーを作成することで迅速に開始できます。

テンプレートは意図的にシンプルですが、測定戦略が成熟するにつれて、アンケートは非常に大きくなることがよくあります。たとえば、Shopifyの開発者アンケートは20分間、Googleのアンケートは30分間以上です。

回答を収集したら、平均スコアまたはトップボックススコアを使用して、複数選択式の質問を採点します。平均スコアは、各選択肢に1~5の値を割り当て、平均値を求めることで計算されます。トップボックススコアは、最も好ましい上位2つの選択肢を選択した回答の割合によって計算されます。

優れた情報を含む可能性のある自由記述回答を確認するようにしてください。大量のコメントを収集した場合は、ChatGPTなどのLLMツールを使用して、主要なテーマや提案を抽出することができます。結果の分析が完了したら、アンケートへの回答に費やした時間を価値のあるものにするために、回答者に結果を共有してください。

開発者または技術担当者として[組織名を入力]で作業を行うことは、どれくらい容易または困難ですか?

非常に困難

やや困難

容易でも困難でもない

やや容易

非常に容易

あなたが主に作業しているアプリケーションまたはサービスについて、変更のリードタイム(つまり、コードのコミットからコードが本番環境で正常に実行されるまでにかかる時間)はどのくらいですか?

1ヶ月以上

1週間~1ヶ月

1日~1週間

1日未満

1時間未満

仕事で高い生産性を感じるのはどのくらいの頻度ですか?

一度もない

少しの時間

ある程度の時間

ほとんどの時間

常に

次の記述に対する同意または不同意を評価してください。

強く不同意不同意どちらでもない同意強く同意
私のチームは開発のベストプラクティスに従っています
深い作業に十分な時間があります。
私のプロジェクトの自動テストカバレッジの量に満足しています。
本番環境へのデプロイは容易です。
CI/CDツールの品質に満足しています。
私のチームのコードベースは、私にとって貢献しやすいものです。
私のチームの技術的負債の量は、私たちの目標に基づいて適切です。
仕様は、ユーザーのシグナルに従って継続的に見直され、優先順位が再設定されます。

開発者エクスペリエンスを改善する方法に関する追加のフィードバックを共有してください

[自由記述テキストエリア]

定性的指標と定量的指標の併用

定性的指標と定量的指標は、開発者の生産性を測定するための相補的なアプローチです。アンケートから得られる定性的指標は、主観的な測定と客観的な測定の両方を包含する、生産性の包括的な見解を提供します。一方、定量的指標もまた、明確な利点を提供します。

  • 精度。人間は、CI/CDビルドが一般的に高速か低速か(つまり、継続時間が分単位か時間単位に近いのか)を伝えることができますが、ミリ秒単位のビルド時間までは報告できません。測定に高い精度が必要な場合は、定量的指標が必要です。
  • 継続性。一般的に、組織が開発者を調査できる頻度は、四半期に1回または2回が最大です。より頻繁に、または継続的に指標を収集するには、組織は体系的にデータを収集する必要があります。

最終的には、定性的指標と定量的指標の組み合わせ( *混合手法アプローチ* )によって、組織は開発者の生産性とエクスペリエンスを最大限に可視化することができます。では、定性的指標と定量的指標をどのように組み合わせて使用するか?

基線を確立し、どこに焦点を当てるかを決定するために、定性的指標から始めることで成功を収めている組織を見てきました。その後、特定の分野を深く掘り下げるために定量的指標を使用します。

エンジニアリングリーダーは、定性的指標が包括的な見解と文脈を提供し、潜在的な機会を広く理解できるため、このアプローチが効果的であると考えています。一方、定量的指標は、通常、ソフトウェアデリバリープロセスのより狭い範囲のみに利用可能です。

同様に、Googleは、この理由から、ログデータを見る前にまずアンケートデータを参照するように、エンジニアリングリーダーにアドバイスしています。Googleのエンジニアリング研究者であるCiera Jaspan氏は次のように説明しています。「何かが良いか悪いかは、ログデータだけでは実際にはわかりません。たとえば、変更にかかる時間を追跡する指標がありますが、その数値自体は役に立ちません。それが良いことなのか悪いことなのか、問題があるのかどうかはわかりません。」

混合手法アプローチにより、定性的指標と定量的指標の両方の利点を活用しながら、開発者の生産性を完全に理解することができます。

  1. 最良の機会を特定するために、定性的データから始めます
  2. 改善したいことがわかったら、定量的指標を使用してさらに深く掘り下げます
  3. 定性的指標と定量的指標の両方を使用して進捗状況を追跡します

可能な限り多くのデータ(定性的データと定量的データの両方)を組み合わせることでのみ、組織は開発者の生産性の完全な理解を構築し始めることができます。

しかし、最終的には、組織はログベースの指標では検出できない問題を観察して検出できる高度に熟練した人材に多額の投資をしていることを覚えておくことが重要です。開発者の心と声を利用することで、組織は以前は不可能と考えられていた洞察を解き放つことができます。


謝辞

この記事に対するフィードバックについて、Laura Tacho、Max Kanat-Alexander、Laurent Ploix、Martin Fowler、Bethany Otto、Andrew Cornwall、Carol Costello、およびVanessa Towersの皆様に感謝いたします。

重要な改訂

2024年3月19日:記事の残りを公開

2024年3月13日:利点まで公開

2024年3月12日:定性的指標の擁護まで公開