IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

グーグルのクラウドを支えるテクノロジー

CTC 教育サービス

 [IT研修]注目キーワード   Python  Power Platform  最新技術動向  生成AI  Docker  Kubernetes 

第194回 「開発者のゴール」に基づいた開発ツールの調査・測定手法 (中井悦司) 2025年3月

はじめに

 今回は、2024年に公開されたエッセイ「Measuring Developer Goals」を紹介します。ここでは、Google社内のソフトウェア開発者向けツールの開発チームが、開発者の生産性をどのように捉えて、開発者にとって長期的に役立つツールをどのように作っていくかという点を論じています。特に、30個の「開発者のゴール」を定義した上で、それぞれのゴールの達成度を開発者自身の主観と、客観的なログデータに基づいて継続的に調査・測定する方法が紹介されています。

CUJによる「開発者のゴール」の策定

 ソフトウェアの開発には、情報収集や開発計画の策定から始まり、実際の開発とデプロイ、そして、デプロイ後のモニタリングなど様々なフェーズがあり、それぞれで複数のツールが利用されます。個々のツールやそこで使われる技術は日々変わっていくため、ツールごとの有用性を評価するだけでは、開発作業全体としての生産性を捉えることはできません。そこで、Googleのツール開発チームでは、個々の技術に依存しない、開発者にとっての普遍的なゴールを明らかにして、既存のツールがそれぞれのゴールの達成に適切に寄与しているかを調査・測定する活動を続けています。たとえば、AIの利用によってコーディングの方法は変わるかもしれませんが、コーディングによって達成したい目的そのものは変わらないはずです。まずは、このような普遍的なゴールを明らかにする必要があります。
 そこで、Googleのツール開発チームでは、CUJ(クリティカル・ユーザージャーニー)を利用して、開発者のゴールを分析しました。通常、CUJは、アプリケーション開発の際に利用するもので、「ユーザー〇〇は、〇〇を達成するために、〇〇を行い、次に〇〇を行い・・・」という形で、ユーザーの利用体験を明示的に文書化することで、アプリケーションが提供するべき機能を洗い出していきます。これを開発者の体験におきかえて、「開発者〇〇は、ゴール〇〇を達成するために、タスク〇〇を行い、次にタスク〇〇を行い・・・」という文章を作成することで、現状のタスクがどのようなゴールに紐づいているかを分析しました。この際、それぞれのゴールは、次の条件を満たすようにしました。

 (1) それぞれのゴールは、技術や環境の変化に依存しない普遍的なものである。
 (2) それぞれのゴールは、開発者自身にとって意味をなすものである。
 (3) それぞれのゴールは、客観的に分析可能な開発者の行動に紐づいている。
 (4) ゴール全体は、開発プロセスの全体を偏りなく網羅している。

(1)は、前述のAIの例のように、技術の変化に依存せずに長期的に調査・測定できるゴールを定義するということです。そして、(2)(3)は、具体的な調査・測定方法として、開発者に対するアンケート調査とログに基づいた客観的な分析を可能にするための条件です。開発者に対するインタビューを行い、既存のログとの整合性を分析しながら、最終的に図1の項目が選定されました。

fig01

図1 開発の6つのフェーズと30のゴール(エッセイ記事より抜粋)

 ここでは、開発プロセスを6つのフェーズに分解して、それぞれに3~6個のゴールが設定されています。全体として、30個のゴールがあります。それぞれのゴールは、CUJに基づいて、「開発者として、〇〇を達成する必要がある」という形の文章になっています。そして、開発者は、これらのゴールを達成するためにさまざまなツールを利用するわけですが、ここでは、ゴールとツールが1対1に紐づくわけではありません。技術の変化で使用するツールが変化しても、達成すべきゴールは変化しないという点がこの部分にも反映されています。図2は、「Develop, Test and Commit Code(コードを開発・テストしてコミットする)」というフェーズの6つのゴールに対して、それぞれどのようなツールが紐づいているかを示した例になります。

fig02

図2 開発者のゴールと使用ツールのマッピングの例(エッセイ記事より抜粋)

 ここでは、具体的なツール名の代わりに、それぞれのツールを担当するチームが記載されています。これにより、それぞれのツール開発チームは、自分たちが提供するツールが何を実現するべきか、言い換えると、開発者に提供するべき本来の価値が理解できます。

アンケート調査とログデータによる調査・測定

 前述のように、これらのゴールは、開発者に対するアンケート調査とログに基づいた客観的な分析を組み合わせて、調査・測定することが意図されています。例えば、あるゴールを達成する際に、十分なツールのサポートがあるかどうかがアンケートでわかります。一方、そのゴールに紐づいたツールの利用時間などがログデータからわかります。図3は、「ensure the code written by others is high quality(他人が書いたコードが高品質であることを担保する)」というゴールに関連して、コードレビューツールの使用ログを紐づけた分析例です。

fig03

図3 開発者へのアンケート調査とログ分析の紐付け例(エッセイ記事より抜粋)

 ここでは、コードレビューツールを使用する1週間あたりの回数(左図)と1回あたりの作業時間(右図)の変化がログデータに基づいて示されており、それぞれ、十分なツールのサポートがあると感じている開発者(青線)とそうでない開発者(赤線)に分けられています。この結果を見ると、十分なサポートがあると感じている開発者は、そうでない開発者よりも、1回あたりの作業時間が長く、1週間あたりの作業回数は少なくなっています。ここからは、細切れのレビューを何度も行っている開発者は、「ensure the code written by others is high quality(他人が書いたコードが高品質であることを担保する)」というゴールの実現に対して、ツールのサポートが十分でないと感じているといった仮説が立てられます。レビューツールの開発者は、このような仮説に基づいて、ツールの改善計画が立てられるようになります。

次回予告

 今回は、2024年に公開されたエッセイ「Measuring Developer Goals」に基づいて、「開発者のゴール」に基づいた開発ツールの調査・測定手法を紹介しました。次回もまた、Google社内の開発関連ツールに関する話題をお届けします。

Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。

 

 [IT研修]注目キーワード   Python  Power Platform  最新技術動向  生成AI  Docker  Kubernetes