paint-brush
ソフトウェア開発における AI: ELEKS R&D チームからの洞察で GitHub Copilot を探索する@elekssoftware
748 測定値
748 測定値

ソフトウェア開発における AI: ELEKS R&D チームからの洞察で GitHub Copilot を探索する

ELEKS6m2024/02/06
Read on Terminal Reader

長すぎる; 読むには

ELEKS が GitHub Copilot の革新的な機能を探索しながら、ソフトウェア開発における AI の役割を発見します。
featured image - ソフトウェア開発における AI: ELEKS R&D チームからの洞察で GitHub Copilot を探索する
ELEKS HackerNoon profile picture
0-item
1-item

AI はソフトウェア開発に革命をもたらし、ソフトウェア開発をより効率的、生産的、そして革新的なものにしています。この記事では、ELEKS R&D チームが実施した GitHub Copilot の調査から得られた洞察を掘り下げて、ソフトウェア開発における AI の影響を探ります。


ソフトウェア開発の世界が進化し続けるにつれて、 AIの役割はますます重要になっています。コーディングに必要な時間と労力を削減できるなどの利点があるため、ソフトウェア開発における AI が今日ホットな話題になるのも不思議ではありません。


米国に拠点を置く開発者の 92% は、すでに職場と社外の両方で AI コーディング ツールを使用しています。 - GitHub


開発者の 70% は、AI コーディング ツールが、コード品質の向上、完了時間の短縮、インシデント解決機能の強化など、専門的な取り組みにおいて明確な優位性をもたらすと信じています。 - GitHub


開発者の 5 人中 4 人は、AI コーディング ツールによってチームの共同作業が強化されることを期待しています。 - GitHub


AI は人間の入力なしでソフトウェア製品を独自に作成、テスト、起動できる段階にはまだ達していませんが、以前と比較すると全体的な所要時間は大幅に短縮されました。


コードの生成と自動補完、バグの検出と修正によってカスタム アプリケーションの開発を支援できる、AI 駆動のツールが多数利用可能です。 ELEKS 研究開発チームは、そのようなツールの 1 つである GitHub Copilot を徹底的に評価し、開発者のタスク、完了期間、提供される推奨事項の品質基準への影響を評価しました。詳しく見てみましょう。

GitHub コパイロットとは何ですか?

GitHub Copilot は、コードの自動補完と生成のためのツールです。 OpenAI Codex に基づいて構築され、パブリック GitHub リポジトリでトレーニングされています。その結果、あらゆるプログラミング言語のコードが提案されます。ただし、提案の品質は、特定のプログラミング言語とフレームワークに基づくパブリック リポジトリの数に依存します。


GitHub Copilot は、統合開発環境 (IDE) プラグインを使用してプログラム コードを操作します。現在、次の IDE のみがサポートされています。

  • Visual Studio コード
  • ビジュアルスタジオ
  • ネオビム
  • JetBrains のすべての IDE

ELEKS の GitHub Copilot 調査の概要

この調査は、Copilot の使用が開発速度と品質の両方に与える影響を調査することを目的としていました。


この研究を実施するために、さまざまな仮定の実験場として小さなペット プロジェクトが開始されました。 React、Redux、TypeScript、Jest、Vite、PHP、Symfony、Codeception の専門知識を備えた 4 人の熟練した中間開発者で構成されるチームとともに調査を開始し、目標とアプローチを次のように定義しました。

ゴール

アプローチ

Copilot 使用時の開発者の能力とパフォーマンスの依存関係を評価する

バックエンド開発には Symfony フレームワークを選択しました。バックエンド チームには、このフレームワークに関する実質的な経験がありませんでした。
バックエンド ソリューションの品質を評価するために、Symfony の専門家がコード レビューに参加しました。専門家はまた、典型的なものを超えた基本的なプロジェクト構造を開発し、大規模な商業プロジェクトで使用されました。

一般的な開発者のタスクへの影響を調査する

プロジェクトを開始する前に、商用プロジェクトにおける開発者の典型的な作業を網羅した WBS を作成しました。また、タスク見積もりセッションも実施しました。

プログラミング言語とフレームワークへの影響を人気別に調査する

テストカバレッジを備えたWebアプリケーションを開発しました。

タスクの完了時間への影響を評価する

私たちはプロジェクトの個々のタスクの予備的な見積もりを作成しました。

研究の有効性を高める

毎日の同期中にチーム内で知識共有セッションを実施しました。

提案の質を調べる

私たちは、Copilot が非古典的でより複雑なプロジェクト構造をどのように扱うかをテストしました。



ELEKS の GitHub Copilot 調査からの主な発見

ELEKS による GitHub Copilot の調査では、ツールの機能と利点を明らかにする重要な発見がいくつかありました。さらに詳しい説明は次のとおりです。


調査結果は、チームの主観的なフィードバック、作業の観察、およびソリューションのコード レビューに基づいていることに注意してください。

GitHub Copilot には 2 つの動作モードがあります。

  1. コード自動補完モード – ほとんどの場合、パフォーマンスにプラスの影響を与えます。
  2. プロンプト付きのコメントに基づくコード生成モード – 一般的なコード構造でのみ適切に機能します。提案されたコードのバリアントの分析には時間がかかるため、ビジネス ロジックや非典型的なソリューションを生成する場合には逆効果になる可能性があります。

GitHub Copilot コードの提案の品質は、次の要素によって決まります。

  • パブリック リポジトリ内の選択された技術スタックの人気。テクノロジーや言語の人気が高いほど、GitHub Copilot の提案の品質は高くなります。
  • コード構造とアプリケーション アーキテクチャ。ソリューションがより一般的であればあるほど、GitHub Copilot が提供する提案はより効果的になります。これは、プロジェクト開発の開始時に特に顕著です。

GitHub Copilot のその他の利点:

  • 時間が経つにつれて、コード提案の品質が向上します。 GitHub Copilot は、プロジェクトの構造、コード スタイル、プロジェクトの技術ソリューションへの一般的なアプローチを学習して適応します。
  • 開発者の仕事の満足度にプラスの影響を与えます。 GitHub Copilot は、日常的で典型的な退屈なタスクの一部を引き受けます。興味深いタスクの開発と日常的なタスクの比率が変化するため、開発者の快適さが向上します。

チームの一般的な調査結果:

  • このツールはコードの品質にプラスもマイナスも影響を与えませんでした。現時点では、コード レビュー プロセス、開発者による手動コード テスト、自動テストの実行、セキュリティ テストなどを置き換えることはできないと考えています。
  • 有効性は、特定の技術スタックにおける開発者の能力に依存します。開発者のスキルが高ければ高いほど、このツールはより効果的であることがわかります。
  • 新しいテクノロジーを学習するための GitHub Copilot の価値は非常に疑わしいです。
  • チームは、すべてのコード関連ファイルが IDE で開いている場合、コードの提案がより適切になるという印象を持ちました。
  • 他のツールと同様、GitHub Copilot には特定のスキルが必要です。チームが練習すればするほど、より多くの肯定的なフィードバックが得られました。
  • パフォーマンスの向上に関するフィードバックは、技術スタック、専門家の能力レベル、主観的な理由によって異なります。


チームメンバーの生産性が平均して 5 ~ 10% 向上します。 - ELEKS 研究開発チーム


余談ですが、プロジェクト中に、チームは GitHub Copilot でいくつかのバグに遭遇しました。たとえば、Copilot は、別の IDE ウィンドウで開かれている別のプロジェクトのコードに基づいてコードの提案を提案しました。構文的に正しくないコードが提供されました。 Copilot は、コードの自動補完機能を持つ一部のプラグイン (組み込みまたはサードパーティによって追加された) の機能と競合します。

結論

GitHub Copilot は、開発速度と開発者の仕事の満足度にプラスの影響を与える強力なツールです。他の開発ツールと同様、使いこなすには時間がかかります。


現時点では、個人の月額ライセンスの料金はわずか 10 ドルですが、ビジネス プランの価格は月額 19 ドルです。 GitHub Copilot は、特に中程度の能力レベル以上のスペシャリストにとって、プロジェクトで使用すると間違いなく経済的に有益になります。


チームは、GitHub Copilot の使用経験が増えるにつれて、テクノロジーの人気と開発者の能力レベルに応じて、開発速度が 5 ~ 25% 向上する可能性があると予測しています。 GitHub Copilot は、開発者がツールを使用することが有益な場合とそうでない場合の専門知識と理解を徐々に獲得するため、開発を遅らせないことが保証されています。


結論として、GitHub Copilot などのツールに代表される、ソフトウェア開発における AI の影響は否定できません。全体として、GitHub Copilot などのツールは開発者に代わることはできませんが、開発者の快適さと生産性を向上させる貴重なツールとして機能し、ますます AI 主導の世界におけるソフトウェア開発の進化に貢献します。


効率的なソフトウェア開発プロセスと成功への道を切り開くには、 ELEKS の専門家にお問い合わせください


ここでも公開されています。