GitHubが従業員数1,000名以上の企業に勤務する米国在住のソフトウェア開発者500名を対象とした調査を実施し、開発者の生産性、コラボレーション、AIコーディングツールについて、マネージャーが考慮すべき点を尋ねました。
今日のソフトウェア開発者は、単にソースコードを書いてリリースするだけではなく、生成AIコーディングツールという新たな最先端技術を含む、多くのツール、環境、テクノロジーを使いこなすことが求められています。しかし、開発者にとって最も重要なのは、ストーリーポイントでもデプロイのスピードでもありません。では、何が重要かというと、開発者がいかに効率的かつ生産的に基準を超えるパフォーマンス(成果)を上げ、ワークフローの中で影響力を高められるかであり、それを左右する開発者体験こそに着目すべきなのです。
GitHubの最高製品責任者としてだけでなく、長年にわたりあらゆるソフトウェアスタックで働いてきた開発者として、私はそのように思います。数十年前、機械工学の修士号を取得した私は、研究室でAIを応用する最初期の技術者の一人でした。当時、私たちのモデルで大規模なデータセットを処理するには5日かかりました。現在のAIモデルのスピードを考えると、驚くべきことです。もっと効率よく、本稼働までの時間を短縮できるツールが欲しいと強く思いました。だからこそ、私は開発者体験(DevEx)に情熱を注ぎ、GitHubの最高製品責任者として尽力しているのです。
生成AIが急速に進化する中、GitHubは、新しいツールや現在のワークフローが開発者体験全体に与える影響について、開発者の皆さんからの深い理解を得ることを目指しています。そこで、開発者の生産性、チームコラボレーション、AI、そして開発者が考える、エンタープライズ環境への影響力の強化方法といった、開発者体験(DevEx)の大きな要素に焦点を当てました。
そこで、GitHubはWakefield Researchと提携し、米国在住のエンタープライズ企業の開発者500名を対象とした調査を実施しました。以下の調査結果では、ソフトウェア開発が直面している新時代においてエンタープライズのエンジニアリングチームがイノベーションを推進し、影響力を高めるために、企業はどのように障壁を取り除くことができるのかを紹介します。結局のところ、大規模なイノベーションを起こすには、開発者の生産性を向上させ、満足度を高め、日々最高の仕事ができるようにすることで、開発者自身の能力を高める必要があります。いずれにしても、影響力を発揮できる開発者なくして進歩はありえません。
Inbal Shani
最高製品責任者 // GitHub
GitHubの事前収録セッションで、生成AIがソフトウェア開発にどのような変化をもたらすかをご覧ください。
なぜ開発者体験(DevEx)が重要か
GitHubは、多くの開発者の直面している日々の現実と「開発者が望んでいること」との間に、しばしば大きなギャップがあることを認識しています。
今回の調査では、典型的な開発者体験をより深く理解し、企業が開発者を支援し、より大きな成功を収められるようにするための、主な方法を明らかにしたいと考えました。
その結果、重要なことがひとつわかりました。成功は、卓越した開発者体験への投資から始まるということです。また、調査が明らかにした通り、コラボレーションは、開発者が望む働き方であり、最も生産性を向上させ、満足度を高め、影響力を強化するための核となるものだということです。
コラボレーションは、開発者体験全体を何倍にも向上させます。
DevExは、以下を考慮した計算式として表されます。
- 開発者がコードベースの変更をいかにシンプルかつ迅速に実装、あるいは生産性を高めることができるか。
- いかにチーム内での不協和を少なくし、構想段階から本稼働に至るまで、影響を与えることができるか。
- 開発者の満足度に対し、作業環境、ワークフロー、ツールなどがどのようにプラスまたはマイナスの影響を与えるか。
リーダーにとって開発者体験とは、開発者が生産性、影響力、満足度の高い仕事を実現できるコラボレーション環境を作ることであり、コラボレーションは開発者にとって最も重要な要素のひとつです。
現在のパフォーマンス指標は、開発者の期待を満たしていない
開発者は「パフォーマンス指標は期待を満たしていない」と考えている
現在の開発者の評価方法は、彼らが考えるパフォーマンスの測定方法と一致していません。
- たとえば、GitHubが調査した開発者たちは現在、解決したインシデント数によって評価されていると述べています。しかし、開発者自身は、そうしたバグや問題にどう対処するかが、パフォーマンスにとって、より重要だと考えています。これは、コードの量よりもコードの質を重要なパフォーマンス指標にすべきだという考えと合致します。
- 開発者は、パフォーマンス測定においては、コードの質と同じくらい、コラボレーションやコミュニケーションを重視する必要があると考えています。他者とのコラボレーション能力やコミュニケーション能力は開発者の仕事に不可欠なものですが、「会社がコラボレーション能力やコミュニケーション能力をパフォーマンス指標として使用している」と回答した開発者は、わずか33%でした。
現在パフォーマンス測定に使用されている指標と、開発者がパフォーマンス測定に使用すべきと考える指標の比較。
開発者が、自身のチームが最も取り組んでいると回答した項目の上位には、コードを書くことやセキュリティ脆弱性の発見と修正などが含まれています
開発者は、スキルアップして影響力を高める機会を求めている
開発者に「仕事にプラスの影響を与えるものは何か」を尋ねたところ、新たなスキルの習得(43%)、エンドユーザからのフィードバック(39%)、自動テスト(38%)、新しい問題に対するソリューションの設計(36%)などが上位に挙げられました。
開発者が「仕事にプラスになる」と答えたタスクのトップ
その一方、開発者はコードやテストを書くことにほとんどの時間を費やしており、その後はコードレビュー、ビルド、テストの実行を待つことになると述べています。
今回の調査に回答いただいた企業所属の開発者によると、典型的な一日では、コードの作成、セキュリティ脆弱性の修正、エンドユーザからのフィードバックなど、さまざまなタスクで忙殺されています。また、開発者は「こうしたタスクに同じくらいの時間を費やしている」と答えており、一日を通して限界に近い状態であることがわかります。
開発者が1日に最も時間をかけて取り組むと回答したタスク
特に注目すべきなのは、開発者が新しいコードを書くのとほぼ同じ時間を、ビルドやテストの待ち時間に費やしているという点です。
- このことは、過去10年にわたりDevOpsツールへ投資してきたにもかかわらず、ビルドやテストの待ち時間が依然として根強い問題であることを示唆しています。
- 開発者はコードレビュー、ビルド、テスト実行の待ち時間といった障害に直面し続けています。これらが、新たなスキルの習得や新しい問題に対するソリューションの設計の妨げとなっていることから、これらが開発者の全体的な満足度に大きく影響している要因である可能性として、このたびの調査から示唆できます。
開発者はエンドユーザからのフィードバックを求めているが、困難に直面している
開発者は、仕事にプラスの影響を与える2番目に重要なものとして、「エンドユーザからのフィードバック」(39%)を挙げています。ただし、多くの場合、開発チームがフィードバックを直接得ることは難しいです。
- プロダクトマネージャーやマーケティングチームが間に入ることが多いため、開発者はエンドユーザのフィードバックを直接受け取りにくくなっています。
- 開発者にとっては自動テストや検証テストからフィードバックを受けて作業を改善することが理想的ですが、こうしたテストはエンジニアリングチームに引き継がれる前に他のチームに送られる場合もあります。
開発チームの日常業務の上位2つは、コードの作成(32%)と、セキュリティ脆弱性の発見と修正(31%)です。
- これは、開発者がセキュリティを重視するようになったことを示すと共に、企業がセキュリティを優先するようになったことを明確に示しています。
- 企業の開発チームが、セキュリティに関するポリシーや取締役会からの指示を満たす上で重要な役割を担っていることも示しています。
これまでの要点
開発者は、スキルアップ、ソリューションの設計、エンドユーザからのフィードバック、コミュニケーションスキルの評価などを望んでいます。ただし、ビルドやテストの待ち時間だけでなく、彼らを評価する現在のパフォーマンス指標がその妨げとなっています。
コラボレーションは開発者体験の要である
開発者は協力的な環境で活躍する
企業のエンジニアを対象としたGitHubの調査では、開発者は通常のプロジェクトで平均21人の他の開発者と仕事をし、52%が「日単位または週単位で他のチームと仕事をしている」と回答しています。特に、効果的なコラボレーションを実現するための最も重要な要素として、定期的なタッチポイントを挙げています。
企業で働く開発者は、平均21人の他の開発者と、日単位または週単位で、仕事をすることが多い
その一方、開発者はコラボレーションを全体的な視点からも捉えています。「コラボレーション」として定義されるのは、他者と話したり会ったりすることだけでなく、中断のない作業時間、すべて構成済みの開発環境へのアクセス、正式なメンターとメンティーの関係なども含まれます。
- チーム内のコミュニケーションを避ける時間帯を設けることで、コードを書き、チームの目標達成に向けて取り組むための時間と場所を開発者に提供します。
- すべて構成済みの開発環境へのアクセスは、開発プロセス全体の一貫性を高めることができます。また、開発者のコラボレーションを迅速化し、「でも私のマシンではうまく行きました」という悪名高いセリフを回避することもできます。
- メンターシップは、開発者のスキルアップや共同作業環境に不可欠な、対人関係スキルの構築に役立ちます。
こうした要素は、開発者の一日の業務にマイナスの影響を及ぼす可能性があることに留意する必要があります。効果的でない会議は、開発者の助けになるどころか、集中を妨げる恐れがあることが示唆されています(以前の調査で判明した内容です)。
GitHubの調査によると、効果的なコラボレーションのための重要な要素は、そうした要素が効果的に実践されない場合、開発者の仕事にマイナスの影響が顕著に出るほど重要であることがわかりました。
開発者が仕事中の体験に悪影響を及ぼすタスクとして多く回答しているもの
開発者のコラボレーションについて、さらに詳しく
そこで、GitHubはTwitterのフォロワーからも回答を集めることにし、開発者を対象に、効果的なコラボレーションのヒントを尋ねました。ある開発者の声を紹介します。
また、生産性の高い、価値あるミーティングのポイントも尋ねました。
効果的なコラボレーションがコードの質を向上させる
開発者体験の定義が次々と見直される中で、開発者のコラボレーションの成功要因も明確になってくるでしょう。頻繁に話しかけられたりメッセージを受け取るとフローに影響が出ますが、それでも連絡を取り合う必要性はあります。GitHubの調査では、開発者は「効果的なコラボレーションによって、テストカバレッジが向上し、より速く、よりクリーンで、より安全なコードが書けるようになった」と答えています(どれも、あらゆる開発チームにとってのベストプラクティスです)。これは、他者と効果的に仕事をすることで、より安全かつより優れたソフトウェアを開発できると、開発者が考えていることを示しています。
開発者は、効果的なコラボレーションが、出荷する製品や出荷頻度を向上させるのに役立つと考えています
GitHubが調査した開発者は、コードの質と共に、コラボレーションとコミュニケーションが評価の最優先事項だと考えています。
- DevOpsからアジャイル手法に至るまで、開発者やビジネスの世界では長い間、コラボレーションの重要性が叫ばれてきました。
- それでもまだ、開発者はコラボレーションで評価されていません。
開発者が、上司が自分のパフォーマンスや生産性を評価するために使うべきと考える指標
そこで、開発者にコラボレーションが上手くいっている度合いを測るアイデアを教えてもらいました。ある開発者の声を紹介します。
- 重要なポイント:企業やエンジニアマネージャーは、定期的なチームコミュニケーションを奨励し、特にリモート環境ではチェックインの時間を設ける必要がありますが、開発者が集中して作業することの必要性も尊重する必要があります。
開発者は、効果的なチームコラボレーションを実現するためには、同僚との効果的で定期的なタッチポイント(接点)が重要だと考えています。
エンジニアマネージャーがコラボレーションを向上させるための4つのヒント
GitHubでは、研究者、開発者、プロダクトチーム、アナリストが、開発者の生産性と満足度を研究、改善することに尽力しています。ここでは、開発者間のコラボレーションを向上させたいと考えているエンジニアリーダーのためのヒントを紹介します。
- コラボレーションに関する目標をパフォーマンス目標にする。こうすることで、コラボレーションのための機会とコラボレーションに対する期待が膨らみます。一例として、ランチミーティング、共同プロジェクトなどの形が考えられます。
- 企業におけるコラボレーションのあり方を定義し、その範囲を広げる。情報共有のための時間か、相談のための時間かを相手に伝えます。役割と責任をまとめたマトリックスを作成しておくと、各人の役割を明確にできます。GitHubのチームでも導入しています。
- 開発者同士が会話し、お互いを知るための時間を設ける。特に、リモートワークやハイブリッド型の企業では、開発者の時間や仮想空間の一部を関係構築に充てる必要があります。リモートワークに関するGitHubのガイドはこちら >
- 主要なエンジニアや優秀なエンジニアを見極める。学術的な研究によって、企業におけるチェンジエージェントのプラスの影響と、チェンジエージェントはコラボレーションにおいて特に優れた人材であるべきことが裏付けられています。優秀なエンジニアを見極め、望ましい行動の模範となれるポジションに昇格させることが重要です。
これまでの要点
開発者の効果的なコラボレーションを、コードの質を高めるためのパフォーマンス指標にする必要があります。定期的なタッチポイント、集中して取り組む時間、すべて構成済みの開発環境へのアクセス、正式なメンターとメンティーの関係により、テストカバレッジの向上、より速く、よりクリーンで、より安全なコード作成が実現します。
個人のパフォーマンスとチームのコラボレーションを向上させるAI
開発者は既に仕事でAIコーディングツールを使っている
大企業に勤める米国在住の開発者の実に92%が「仕事やプライベートでAIコーディングツールを使用している」と回答しており、70%が「こうしたツールの使用に大きなメリットを感じている」と回答しています。
- AIの浸透が進み、開発者の日常業務への取り組み方を既に変えています。そのため、企業やエンジニアリングリーダーは、開発者が未承認のアプリケーションを使用しないよう、エンタープライズグレードのAIツールを導入することが重要になります。また、企業は、AIツールを倫理的かつ効果的に使用するためのガバナンス基準を確立する必要があります。
ほぼすべての開発者が、すでにAIコーディングツールを仕事中や仕事外で使っています
開発者は、AIコーディングツールが自身のパフォーマンスを高めると考えている
ほとんどの開発者が職場でAIツールを試していることから、「開発者がAIを利用するのは単なる興味本位ではない」ということが、今回の調査結果で明らかになりました。むしろ、AIコーディングツールはパフォーマンス基準の達成に貢献すると認識されています。
- GitHubの調査では、開発者は「AIコーディングツールによって、コードの質の向上、アウトプットの高速化、本稼働レベルでのインシデントの減少など、既存のパフォーマンス基準を満たすことができる」と答えています。また、これらの指標は、コードの量以外のパフォーマンスの測定に使用されるべきだと考えています。
開発者は、AIコーディングツールが既存のワークフローに組み込まれ、より効率的な作業をもたらすと広く考えていますが、AIがソフトウェアの作り方を変えるとは考えていないようです
開発者の約3分の1が「上司は現在、作成したコードの量に基づいてパフォーマンスを評価している」と回答しています。また、同数の開発者が「AIベースのコーディングツールを使用するようになっても、この状況は続く」と予測しています。
- 特に、開発者が作成するコードの量は、必ずしもそのビジネス価値と一致しません。
- 賢明な判断をしましょう:ソフトウェア開発で使われるAIツールの増加は、コードの量の増加につながることが少なくありません。エンジニアリングリーダーは、それでもコードの量の測定が生産性とアウトプットを測定する最善の方法であるかどうかを問う必要があります。
開発者は、AIコーディングツールがチームのコラボレーションを促進すると考えている
個人のパフォーマンスの向上にとどまらず、調査した開発者の5人のうち4人以上(81%)が「AIコーディングツールはチームや企業内のコラボレーションの促進に役立つ」と回答しています。
- 実際のところ、セキュリティレビュー、プランニング、ペアプログラミングは、AIコーディングツールの助けを借りて開発チームが取り組むべき、そして取り組むことが期待される最も重要なコラボレーションのポイントです。これはまた、開発者が職場でAIコーディングツールを利用することが増える中、コードレビューやセキュリティレビューが引き続き重要であることも示しています。
開発者は、AIコーディングツールを使い始めるにつれ、チームがより協力的になる必要があると考えている
特に、開発者は「AIコーディングツールによって、ソリューションの設計に集中する時間が増える」と考えています。これは企業に直接的なメリットがあります。開発者は定型的なコードを書く代わりに、AIを使って新しい機能や製品の設計により多くの時間を費やすことができると考えています。
- 開発者は既に生成AIコーディングツールを使ってワークフローの一部を自動化し、セキュリティレビュー、プランニング、ペアプログラミングなど、より共同作業の多いプロジェクトに時間を割いています。
開発者は、AIコーディングツールによって、より価値の高い問題解決に集中できるようになると考えています
開発者は、AIが生産性を高め、燃え尽き症候群を防止すると考えている
今回、回答していただいた開発者によると、AIコーディングツールは全体的な生産性の向上に役立つだけでなく、よりスマートなワークフォース(労働力)を育てるスキルアップの機会をもたらします。
- 57%の開発者が「AIコーディングツールはコーディングの言語スキルの向上に役立つ」と考えています。これは、最も多く選ばれたメリットです。また、開発者は、AIコーディングツールはスキルアップの補助として機能するだけでなく、認知的な労力の軽減にも役立つと答えています。精神力と時間はどちらも有限な資源であるため、41%の開発者は「AIコーディングツールは燃え尽き症候群の防止に役立つ」と考えています。
- GitHubが以前実施した調査では、87%の開発者が「AIコーディングツールGitHub Copilotが、反復作業をこなす中で精神力を保つのに役立った」と報告しています。このことから、AIコーディングツールによって、開発者は認知的な労力を温存し、ソフトウェア開発や研究開発のより困難で、革新的な側面に集中できることを示しています。
- AIコーディングツールは、開発者の業務中のスキルアップを支援します。GitHubの調査では、開発者は常に、仕事にポジティブに作用する要素の第1位として「新しいスキルの習得」を挙げています。しかし、開発者の30%は「学習やスキル獲得が勤務時間全体にマイナスの影響を与える」とも答えており、学習とスキル獲得は勤務時間の仕事を増やすと考えている開発者もいることがうかがえます。特に、「AIコーディングツールの最大のメリットは新しいスキルの習得である」という回答もあります。こうしたツールは、開発作業に加えて学習するのではなく、業務中に学習もできるよう支援します。
開発者体験を全面的に向上させるAI
GitHubの調査によると、「AIコーディングツールを使用することで、開発者はコードの質、完了までの時間、インシデントの数に関する基準をよりよく達成できる」ということが示唆されています。これらはすべて、開発者が自分のパフォーマンスを評価する上で重要な領域だと考えている指標です。
また、AIコーディングツールは、コーディングエラーの可能性を減らし、コードの精度を高めることができます。最終的には、より信頼性の高いソフトウェア、アプリケーションパフォーマンスの向上、開発者のパフォーマンスを示す数値の向上につながります。AIテクノロジーの進歩に伴い、こうしたコーディングツールが開発者のパフォーマンスやスキルアップに与える影響はさらに大きくなると思われます。
既存の開発者ワークフローに組み込むことで、より高い効率性を生み出すAIコーディングツール
開発者は、AIコーディングツールによって生産性が向上すると考えています。しかし、GitHubの調査によると、開発者はこれらのツールがソフトウェア開発のライフサイクルを根本的に変えるとは考えていません。これらのツールは開発の効率性を高めるものだと考えています。
- 自動化やAIの活用は、かなり前から開発者ワークフローの一部となっており、開発者は既に機械学習ベースのセキュリティチェックやCI/CDパイプラインなど、さまざまな自動化されたツールやAI搭載ツールを活用しています。
- 業務を全面的に見直さなくても、こうしたツールは既存のワークフローの効率性を高め、開発者がソリューションの開発に集中する時間を確保します。
これまでの要点
ほぼすべての開発者(92%)が職場でAIコーディングを利用しており、こうしたツールは日常業務を改善するだけでなく、スキルアップの機会ももたらしてくれると述べています。開発者は、AIツールを使用することでパフォーマンスやコーディングスキルの向上、チームのコラボレーションの強化など、さまざまなメリットを体感しています。
今後の見通し
開発者の満足度、生産性、組織への影響はすべてAIコーディングツールによって改善され、開発者体験全体に大きな影響を及ぼします。
92%の開発者が「既に仕事やプライベートでAIコーディングツールを使用している」と回答しており、AIが普及していることは明らかです。GitHubが調査した開発者の70%は「AIコーディングツールの使用に際し、既に大きなメリットを感じている」と答えています。また、調査した開発者の81%は、「AIコーディングツールによってチームがより協力的になる」ことを期待しています。これは、開発スピードと開発者体験の両方を向上させたい企業にとって、究極のメリットとなります。
特に、57%の開発者は、AIが自分のスキルアップに役立つと考え、日々のワークフローに学習と開発を組み込む可能性があります。技術部門のリーダーはこのことを念頭に置いて、満足度、生産性、そして開発者体験の全体を高めるソリューションとしてAIを検討し始めるべきです。
AIツールの探求に加え、開発者体験を高めるためにエンジニアリングリーダーとビジネスリーダーが考慮すべき3つのポイントを紹介します。
- 開発者の生産性を高め、影響力を強化し、創造的で有意義な仕事をするためのツール、プロセス、プラクティスによって、開発者がフロー状態に入れるよう支援する。
- 組織間の垣根を取り払い、開発者が効率的にコミュニケーションができる機会を提供することで、コラボレーションを促進させる。
- AIへの重要な投資を通じて、開発者ワークフロー内でスキルアップの機会を提供し、企業が将来に向けた実験や革新を実現できるよう支援する。
調査手法
本レポートは、Wakefield ResearchがGitHubからの委託のもと、2023年3月14日から2023年3月29日にかけて、従業員1,000人以上の企業に勤める非管理職の米国在住のソフトウェア開発者500名を対象としたオンライン調査結果に基づいて作成されています。調査手法の詳細については、press@github.comまでお問い合わせください。