Github 調査: 生産性、コラボレーション、AI コーディング ツールに対する開発者の認識

 データホエール乾物 

翻訳: Duan Qiuyang データホエール メンバー

研究の背景

GitHub の最高製品責任者である Inbal Shani 氏は次のように述べています。

今日の開発者は、単にコードを書いて出荷するだけではなく、新しい分野の生成 AI コーディング ツールを含む、さまざまなツール、環境、テクノロジの適用に熟練している必要があります。しかし、開発者にとって最も重要なのは、ストーリー ポイントや展開速度ではありません。これは開発者エクスペリエンス (DevEx)であり、開発者がどれだけ効果的かつ生産的に標準を超えてフロー状態に入り、影響を与えることができるかを定義します。

私は GitHub の最高製品責任者としてだけでなく、技術スタック全体のさまざまな部分で働いた経験を持つ長年の開発者としてこれを言っています。数十年前、機械工学の修士号を取得したとき、私は人工知能を研究室に応用した最初の技術者の一人になりました。当時、私たちのモデルが大規模なデータセットを処理するのに5 日かかりましたが、今日の AI モデルの速度を考えると衝撃的でした。私は効率を高め、生産時間を短縮するツールを切望しています。だからこそ、私は開発者エクスペリエンスに情熱を注いでおり、GitHub の最高製品責任者としてそれを重視しています。

生成 AI の急速な開発において、私たちは、新しいツールと現在のワークフローが全体的な開発者のエクスペリエンスにどのような影響を与えるかについて、開発者からより深い理解を得る必要がありました。出発点として、開発者の生産性、チームのコラボレーション、人工知能、そして開発者がエンタープライズ環境で効果を最大限に高めることができると考える方法など、開発者エクスペリエンスの最大の要素のいくつかを検討しました。

これを行うために、私たちは Wakefield Research と提携して、米国内の従業員 1,000 人以上の企業の開発者500 人にインタビューしました。

ソフトウェア開発のこの新時代において、エンタープライズ エンジニアリング チームがイノベーションを推進し影響力を発揮できるよう、組織が障壁を取り除く方法を示します。最終的に、大規模なイノベーションを実現する方法は、開発者の生産性を向上させ、満足度を高め、毎日最高の仕事ができるようにすることで開発者に力を与えることです。結局のところ、開発者に影響を与える力がなければ進歩はあり得ません。

調査の主な結論

  • 人工知能が登場し、大規模に使用されています。米国の開発者の92%はすでに AI コーディング ツールを仕事の内外で使用しています。

  • ビルドとテストを待つのは依然として問題です業界全体で DevOps に投資しているにもかかわらず、開発者は依然として、コードの作成以外に仕事で最も時間がかかるのはビルドとテストを待つことだと語っています。

  • 開発者はさらなるコラボレーションを望んでいます。エンタープライズ環境の平均的な開発者は、他の21人のエンジニアと協力しており、コラボレーションがパフォーマンス評価の最大の指標であることを期待しています。

  • 彼らは人工知能が役立つと考えています。開発者の 5 人に 4 人以上が、AI コーディング ツールによってチームのコラボレーションが強化されることを期待しています。

  • 開発者も AI に大きなメリットがあると考えています。70%が、AI コーディング ツールが仕事での優位性をもたらすと回答し、AI がもたらす最も重要な利点としてコードの品質、完了までの時間、インシデントの解決時間の向上を挙げています。

GitHub では、ほとんどの開発者の日常と「『開発者が何を望んでいるのか』についての会話」の間には大きなギャップがあることが多いことを認識しています。

この調査を通じて、私たちは典型的な開発者のエクスペリエンスをより深く理解し、企業が開発者をサポートしてより成功するための重要な方法を特定したいと考えています。

d8f63f5ac750d804d991a121cbeafd82.png

C = コラボレーション、開発者エクスペリエンス全体の乗数。

開発者エクスペリエンス (DevEx) は、以下を考慮した式です。

  • 開発者にとって、コードに変更を実装することがいかに簡単かつ迅速であるか、むしろ生産的であるかということです。

  • アイデアから制作、そしてインパクトに至るまでがどれほどスムーズであるか。

  • 作業環境、ワークフロー、ツールが開発者の満足度にプラスまたはマイナスの影響を与える可能性があります。

リーダーにとって、開発者エクスペリエンスとは、開発者が仕事で最も生産性が高く影響力があり満足感を得ることができる共同作業環境を作り出すことです。開発者にとって、コラボレーションは方程式の最も重要な部分の 1 つです。

具体的な研究結果

1. 現在の評価指標は開発者の期待を満たしていない

  • 多くの場合、開発者はパフォーマンスを評価する方法と矛盾して、より多くのことを行いたいと考えています

  • 新しいスキルを学び新しい問題に対する解決策を設計することは、開発者の勤務時間に最もプラスの影響を与えますが、開発時間のほとんどはコード レビュー、ビルド、テストを待つことに費やされます。

  • 開発者はまた、成果物の量や効率ではなく、他者と協力して作業する能力やコードの品質が、開発者を測定するための主要なパフォーマンス指標であるべきだと信じています。

2. 開発者は評価指標が期待を満たしていないと述べた

現在の開発者の評価方法は、開発者が考えるパフォーマンスの評価方法と一致していません。

  • たとえば、私たちが調査した開発者は、現在、解決したインシデントの数によって評価されていると述べました。しかし、開発者は、これらのバグや問題にどのように対処するかが、より重要なパフォーマンス指標であると信じています。これは、コードの量よりもコードの品質が優先され、コードの品質が引き続き最も重要な指標であるべきであるという信念と一致しています。

  • 開発者はまた、パフォーマンス指標に関しては、コードの品質と同じくらいコラボレーションとコミュニケーションが重要であるべきだと考えています。他者と協力しコミュニケーションする能力は仕事にとって非常に重要ですが、会社がそれをパフォーマンス指標として使用していると回答した開発者はわずか33%です。

0f1379a352e3ff14ce34e9325255498a.png

パフォーマンスの測定に現在使用されているメトリックは、開発者がパフォーマンスの測定に使用する必要があると考えているメトリックと比較されます。

1cb682f23d2a89ab591c4b69d1b68b33.png

開発者らは、コードの作成やセキュリティの脆弱性の発見と修正などのタスクにチームが最も労力を費やしたと回答し、最も上位にランクされました。

3. 開発者はスキルを向上させ、影響力を高めるさらなる機会を望んでいます

開発者に、業務にプラスの影響を与えたものは何かと尋ねたところ、上位の要望は、新しいスキルの習得(43%)、エンド ユーザーからのフィードバックの取得(39%)、テストの自動化(38%)、新しい問題解決策の設計(36%)でした。

289e900931826d38179738878f5df62f.png

開発者が自分の仕事に最も影響を与えると考えるタスク

しかし開発者らは、ほとんどの時間をコードの作成とテストに費やし、コードがレビューされるか、ビルドとテストが実行されるのを待つと言う。

私たちが調査した企業開発者は、通常、チームがコードの作成、セキュリティの脆弱性の修正、エンド ユーザーからのフィードバックの取得など、さまざまなタスクで忙しいと報告しました。開発者らはまた、これらのタスクにほぼ同じ時間を費やしたとも述べており、これらのタスクが 1 日を通して長丁場だったことを示唆しています

7da47e6c968c88346f055cc30b3f6d93.png

開発者が毎日最も時間を費やしていると言っていること

注目すべきことに、開発者は、新しいコードの作成に費やすのと同じ時間を、ビルドとテストの待機に費やしていると述べています

  • これは、過去 10 年間に DevOps ツールに投資してきたにもかかわらず、ビルドとテストの待ち時間が依然として慢性的な問題であることを示しています。

  • 開発者はまた、コードレビュー、ビルド、テストの実行を待つなどの障壁に直面し続けており、これにより新しいスキルを学習したり、新しい問題に対するソリューションを設計したりする能力が妨げられる可能性があり、これらの要因が開発者の全体的な満足度に最大の影響を与えることが当社の調査で示されています。

4. 開発者はエンドユーザーからのフィードバックを求めていますが、課題に直面しています

開発者らは、エンドユーザーからフィードバックを得ることが(39%)、仕事にプラスの影響を与えるために 2 番目に重要であると述べていますが、開発チームにとって、このフィードバックを直接受け取ることは多くの場合困難です。

  • プロダクト マネージャーやマーケティング チームは仲介者として機能することが多く、開発者がエンド ユーザーから直接フィードバックを受け取ることが困難になります

  • 理想的には、開発者は自動テストや検証テストからフィードバックを受け取り、作業を改善できますが、場合によっては、これらのテストがエンジニアリングに引き渡される前に他のチームに送信されることがあります。

開発チームの毎日のタスクの上位 2 つは、コードの作成(32%) とセキュリティの脆弱性の発見と修正(31%) です。

  • これは、開発者がセキュリティをいかに真剣に受け止めているかを示しており、企業がセキュリティをいかに優先事項にしているかを浮き彫りにしています。

  • また、セキュリティに関するポリシーや取締役会の指示を満たす上で、企業の開発チームが果たす重要な役割も示しています。

5. 開発者は協力的な環境で成功する

エンタープライズ エンジニアを対象とした調査では、開発者は通常のプロジェクトで平均21人の開発者と共同作業していると述べ、 52% が毎日または毎週他のチームと共同作業していると報告しました。特に、彼らは効果的な協力のための最も重要な要素として定期的な連絡をランク付けしました。

af151b83865f024e635f9993f302cf9d.pngエンタープライズ環境の開発者は通常、毎日または毎週、平均して 21 人の他の開発者と共同作業します。

しかし、開発者はコラボレーションについて、単に他の人と話したり会議したりすることだけではなく、中断のない労働時間、完全に構成された開発者環境へのアクセス、正式なメンターとメンティーの関係など、コラボレーションの全体的な視点も持っています。

  • チームのコミュニケーションがなくなると、開発者はコードを書いてチームの目標に取り組むための時間とスペースが得られます。

  • 完全に構成された開発者環境にアクセスすると、開発プロセス全体の一貫性が促進されます。また、開発者がより迅速に共同作業を行うことができ、悪名高い「しかし私のマシンでは動作する」という事態を回避するのにも役立ちます。

  • メンターシップ システムは、開発者がスキルを向上させ、共同作業環境に不可欠な対人スキルを構築するのに役立ちます。

3a247bfd3efc0fd432cd1c29481ea5ee.png

私たちの調査によると、効果的なコラボレーションにとって最も重要な要素は非常に重要であるため、それらが効果的に行われない場合、開発者の作業に著しく悪影響を与える可能性があります。

8187d70eb87a1c44cfb6062834891836.png

開発者が最も頻繁に言うタスクは、勤務日のエクスペリエンスに悪影響を及ぼします。

効果のない会議は、開発者を助けるどころか、注意をそらしてしまう可能性があります。

6. 開発者がどのようにコラボレーションするかについてもっと知りたい

そこで、Twitter のフォロワーからいくつかの回答を得ました。効果的にコラボレーションするためのヒントを開発者に尋ねました。ある開発者のコ​​メントは次のとおりです。

8cebaabbdccf32b415858455d977b72.png
  1. 仲間と協力し、彼らのアイデアを取り入れることで相乗効果を発揮します。

  2. 情報とリソースを共有してチームワークを促進します。

  3. 定期的な会議をスケジュールして、ブレインストーミング、目標の設定、役割の調整を行います。

  4. Slack や Teams などの共同チャット ツールを使用して、コミュニケーションをオープンに保ちます。

  5. より明確にコミュニケーションを図り、誤解を避けるために、対面またはビデオ会議を奨励します。

  6. ドキュメントを共有し、リアルタイムで共同作業することで「横並び」を実現します。

  7. 対立を迅速かつ専門的に解決して、健全なチーム環境を維持します。

  8. 模範を示し、共同創造とオープンなコミュニケーションを促します。

  9. チームメンバーに、助けやサポートが必要なときは助けを求めるよう奨励します。

  10. コラボレーションの進捗状況と改善を追跡するために、明確で測定可能な目標を設定します。

また、何が会議を生産的で価値のあるものにするのかについても尋ねました。

dc61ef707e2ae89f07375f6098f45e7c.png
  1. 非同期で解決できる場合は会議を開催しないでください。

  2. 会議の議題を事前に発表します。

  3. 合理的な期間を設定します。

  4. ミーティング後に明確な目標を明確に設定します。

076d6ff766dc1edfe2bcaa6833e78da3.png
  1. 対立に駆り立てられると(全員が同意するトピックに多くの時間を浪費してしまいます)、私たちは合意のない事柄に焦点を当てる必要があります。

  2. トピックや読み物を事前に送信します。

  3. メモを記録/共有します。

  4. 会議後の明確な行動と所有権

7. 効果的にコラボレーションしてコードの品質を向上させる

開発者のエクスペリエンスが定義され続けるにつれて、成功する開発者のコ​​ラボレーションも定義されます。ツイートやメッセージが多すぎるとワークフローが中断される可能性がありますが、それでも接続を維持する必要があります

私たちの調査では、開発者は、効果的なコラボレーションによりテスト カバレッジが向上し、コードをより速く、よりクリーンに、より安全に作成できると述べています。これは、どの開発チームにとってもベスト プラクティスです。これは、開発者が他のユーザーと効果的に協力すれば、より優れた安全なソフトウェアを構築できると信じていることを示唆しています。

426166b4c79df6a647e4b51ee8ffd911.png

開発者は一般に、効果的なコラボレーションが公開内容と公開頻度の向上に役立つことに同意します。

私たちが調査した開発者は、コードの品質とともにコラボレーションとコミュニケーションが評価の最優先事項であるべきだと感じていました。

  • DevOps からアジャイル手法に至るまで、開発者とより大きなビジネスの世界は、コラボレーションの重要性について長い間議論してきました。

  • しかし、開発者は現時点ではまだ評価されていません。

私たちは開発者に、コラボレーションの測定についての意見を共有するように依頼しました。ある開発者の見解は次のとおりです。企業とエンジニアリング マネージャーは、チームの定期的なコミュニケーションを奨励し、チェックインの時間を設定する必要があります。特にリモート環境では、開発者の作業ニーズと集中力を尊重する必要があります。

0926a5e239be3685e6ac670180fb3189.png

開発者は、効果的なチームワークには同僚と効果的かつ定期的に連絡を取ることが重要であると信じています。

8. エンジニアリングマネージャーがコラボレーションを改善するための 4 つのヒント

GitHub では、研究者、開発者、製品チーム、アナリストが開発者の生産性と満足度の研究と向上に専念しています。開発者間のコラボレーションを改善したいと考えているエンジニアリング リーダーへのアドバイスは次のとおりです。

  1. 協力を業績目標の目標にします。これにより、人々がコラボレーションするためのスペースと期待が生まれます。これは、昼食と学習、共同プロジェクトなどの形をとることができます。

  2. 組織内のコラボレーション状況を定義し、枠組みを作ります。何かについて聞かれたときと、何かについて言われたときを人々に知らせてください。役割と責任を概説するマトリックスは、全員の役割を定義するのに役立ちます。これは、GitHub チームがすでに実装しているものです。

  3. 開発者に話し合ってお互いを知る時間を与えてください。特に、リモート組織やハイブリッド組織では、開発者の時間と仮想空間の一部を関係構築に費やす必要があります。

  4. 主要なエンジニアと著名なエンジニアを特定します。学術研究は、組織における変化の推進者がプラスの影響を与えることと、組織がどのように優れたコラボレーションを行うべきかを裏付けています。重要なのは、優秀なエンジニアを特定し、望ましい動作をモデル化できる場所に昇格させることです。

9. 開発者はすでに職場で AI コーディング ツールを使用しています

米国の大企業で働く開発者の92%が仕事中またはプライベートな時間に AI コーディング ツールを使用していると報告しており、70% がこれらのツールを使用することで大きなメリットがあると感じていると回答しています。

  • AI は定着しており、開発者の日常業務への取り組み方はすでに変わりつつあります。このため、ビジネスおよびエンジニアリングのリーダーは、開発者が未承認のアプリケーションを使用しないようにエンタープライズ グレードの AI ツールを導入することが重要になります。企業はまた、AI ツールの使用が倫理的かつ効果的であることを保証するために、AI ツールの使用に関するガバナンス基準を確立する必要があります。

b3dbe1038ea313e26abf8b3888b2ff29.png

ほぼすべての開発者がすでに職場内外で AI コーディング ツールを使用しています。

67915102bbfed3e0e9d718d54e929295.png

10. 開発者は AI コーディング ツールによってパフォーマンスが向上すると信じている

ほとんどの開発者は職場で AI ツールを実験しているため、私たちの調査結果は、開発者が AI を使用するきっかけは単に興味があるだけではないことを示唆しています。むしろ、AI コーディング ツールがパフォーマンス基準を満たすのに役立つということを裏付けるものです。

  • 私たちの調査では、開発者は AI コーディング ツールが既存のパフォーマンス基準を満たし、コードの品質を向上させ、出力を高速化し、運用レベルのインシデントを削減するのに役立つ可能性があることを示しました。また、コード数を超えてパフォーマンスを測定するために、これらのメトリクスを使用する必要があると考えています。

開発者の約 3 分の 1 は、マネージャーが現在、作成するコードの量に基づいてパフォーマンスを評価していると報告していますが、同数の開発者は、AI ベースのコーディング ツールを使用し始めると、この状況が変わると予想しています。
  • 開発者が生成するコードの量は、必ずしもそのビジネス価値と一致するとは限らないことに注意してください。

  • 賢くいてください。ソフトウェア開発における AI ツールの使用が増加している (コード サイズが増加することがよくあります) ため、エンジニアリング リーダーは、コード サイズを測定することが生産性と成果を測定する最適な方法であるかどうかを問う必要があります。

11. 開発者は、AI コーディング ツールがチームワークの向上につながると考えている

個人のパフォーマンスの向上に加えて、調査対象の開発者の 5 人に 4 人以上 ( 81% ) が、AI コーディング ツールがチームや組織内のコラボレーションの強化に役立つと回答しました。

  • 実際、セキュリティ レビュー、計画、ペア プログラミングは、開発チームが AI コーディング ツールの助けを借りて取り組むべきコラボレーションおよびタスクの最も重要なポイントです。また、開発者が業務で AI コーディング ツールの使用を増やすにつれて、コードとセキュリティのレビューが引き続き重要であることも示唆しています。

19c860a3b23d723bdfa812de3a8e532b.png

開発者は、AI コーディング ツールの使用を開始するにつれて、チームがより協力的になる必要があると考えています。

場合によっては、開発者が1 行以上のコードで同じことを実行できることがあります。それでも、私たちの調査に参加した開発者の3 分の 1 は、マネージャーは作成するコードの量に基づいてパフォーマンスを評価すると述べています。

特に、開発者は、AI コーディング ツールを使用すると、スキームの設計により多くの時間を費やすことができると信じています。これは組織に直接的なメリットをもたらします。つまり、開発者は、定型的なコードを作成するよりも、AI を使用した新機能や製品の設計により多くの時間を費やすことができると確信しています。

  • 開発者はすでに生成 AI コーディング ツールを使用してワークフローの一部を自動化し、セキュリティ レビュー、計画、ペア プログラミングなどのより共同作業に費やす時間を確保しています。

12. 開発者はAIが生産性を高め、燃え尽き症候群を防ぐことができると考えている

e531919a​​e60db99c99714800dce5bb20.png開発者は、AI コーディング ツールが、より価値のある問題解決に集中できるようになると信じています。

私たちの調査によると、AI コーディング ツールは全体的な生産性の向上に役立つだけでなく、より賢い労働力を生み出すためのスキルアップの機会も提供します。

  • 開発者の57%は、AI コーディング ツールがコーディング言語スキルの向上に役立つと考えており、これが最大の利点であると考えています。開発者らは、AI コーディング ツールはスキル向上に役立つだけでなく、認知作業の軽減にも役立つと述べており、精神的能力と時間は限られたリソースであるため、開発者の 41% が AI コーディング ツールが燃え尽き症候群の防止に役立つと考えています

  • 私たちが以前実施した調査では、開発者の87%が、AI コーディング ツールである GitHub Copilot が、より反復的なタスクを完了しながら頭脳労働を維持するのに役立ったと報告しました。これは、AI コーディング ツールを使用すると、開発者が認知的な努力を保留し、ソフトウェア開発や研究開発のより困難で革新的な側面に集中できることを示唆しています。

  • AI コーディング ツールは、開発者が作業しながらスキルを向上させるのに役立ちます。私たちの調査では、開発者は一貫して、新しいスキルの学習を、前向きな勤務時間の最大の要因としてランク付けしています。しかし、30%は L&D が全体の勤務日に悪影響を及ぼしたと回答しており、一部の開発者が L&D によって勤務日が増えると感じていることを示唆しています。特に、開発者らは、AI コーディング ツールの最大の利点は新しいスキルを学習できることだと述べています。これらのツールは、開発者が学習や開発を追加のタスクにするのではなく、仕事中に学習するのに役立ちます。

開発者はすでに生成 AI コーディング ツールを使用してワークフローの一部を自動化し、セキュリティ レビュー、計画、ペア プログラミングなどのより共同作業に費やす時間を確保しています。

展望

開発者の満足度、生産性、組織への影響はすべて、AI コーディング ツールから恩恵を受けることができ、開発者のエクスペリエンス全体に大きな影響を与えます。

開発者の92%がすでに仕事やプライベートな時間に AI コーディング ツールを使用していると回答しており、AI が定着していることを明確に示しています。私たちが調査した開発者のうち、70%が AI コーディング ツールを使用することで大きなメリットが得られたと回答し、調査した開発者の81%が、AI コーディング ツールによってチームのコラボレーションがさらに強化されることを期待しています。これは、次のことを検討している企業にとって純利益にとって重要です。開発者の生産性と開発者のエクスペリエンスの両方を向上させます。

特に、開発者の57%は、AI がスキルの向上に役立ち、学習と開発を日常のワークフローに統合できる可能性があると信じています。これらすべてを念頭に置いて、テクノロジー リーダーは、満足度、生産性、全体的な開発者エクスペリエンスを向上させるソリューションとして AI の検討を開始する必要があります。

AI ツールの探索に加えて、エンジニアリングおよびビジネスのリーダーは、開発者のエクスペリエンスを向上させるために次の 3 つの重要な点を考慮する必要があります。

  1. 開発者の生産性を高め、影響力を高め、創造的で有意義な仕事を行うのに役立つツール、プロセス、プラクティスを使用して、開発者をフロー状態に導きます。

  2. 組織のサイロを打破し、開発者に効果的なコミュニケーションの機会を与えることでコラボレーションを促進します。

  3. AI への重要な投資により開発者のワークフローのスキルを向上させる余地を作り、組織の実験と将来に向けたイノベーションを支援します。

参考文献:

https://github.blog/2023-06-13-survey-reveals-ais-impact-on-the-developer- experience/

02a80211218737a1890ac58ada3173d0.png

整理整頓が難しくて3好き

おすすめ

転載: blog.csdn.net/Datawhale/article/details/131297782