1 ポイント 投稿者 GN⁺ 2024-01-29 | 1件のコメント | WhatsAppで共有

GitHub Copilot研究結果、コード品質に「下方圧力」を発見

  • AIベースのGitHub Copilotがソフトウェア開発に与える影響に関する新たな研究で、否定的な結果が示された。
  • GitClearのホワイトペーパー「Coding on Copilot」は、AI支援コードの品質と保守性を人間が書いたコードと比較して調査した。
  • 研究の結果、コード保守に懸念される傾向が見つかり、2024年にはコード変更量がAI導入前の2021年と比べて2倍に増加すると予想されている。

GitHub研究との対比

  • 他の研究、とりわけGitHubの2022年の研究では、GitHub Copilotを使用した開発者は作業をはるかに速く完了したことが分かっている。
  • GitHubの研究は、生産性向上、開発者満足度の増加、精神的エネルギーの節約といった肯定的な効果を測定した。
  • GitClearの研究は、AI使用時のコード構成の変化を調査し、技術リーダーが2024年に注意すべき点を明らかにしている。

GN⁺の見解

  • この研究は、AIがソフトウェア開発に及ぼす影響を理解するうえで重要だ。特に、コード品質と保守の観点で、AIの利用がもたらしうる潜在的な問題点を強調している。
  • GitHub Copilotのようなツールは開発者の生産性を向上させうるが、長期的なコード品質への影響も考慮すべきであることを示唆している。
  • 技術リーダーはこれらの研究結果を参考に、AI支援ツールの使用時に起こりうる問題を予防し、コード品質を維持するための戦略策定に役立てることができる。

1件のコメント

 
GN⁺ 2024-01-29
Hacker Newsの意見
  • あるユーザーは、コードのエラー修正にあまりにも多くの精神的労力を費やさなければならなかったため、購読を解約したと述べている。特にSQL関連の複雑な問題を解決する際には役に立たなかったという。自分が望むものを直接書くほうが簡単であり、新人開発者がこのような非効率なツールに圧倒されるのではないかと懸念しているという。
  • 別のユーザーは、GPT-4を使ってPHP CRUDアプリケーション開発の効率が大幅に向上したと語っている。簡単な指示に従って生成されたコードは理解しやすく、ほとんどがすぐに動作したという。ユーザーの要求を聞き、問題解決に役立ったとしている。GPT-4は低コストで価値ある支援を提供した一方で、基礎を知らなければ効果的ではないことを強調している。
  • ある議論参加者は、2023年のコミット活動を前年までと比較する方法論に疑問を呈している。Copilotの影響を考慮せず、わずか4つのデータポイントに基づく回帰分析では説得力に欠けると批判している。
  • 別のユーザーは、技術が市場と政府の成長のために使われているものの、それがしばしば不完全な抽象化の上塗りという形で問題を解決していると指摘している。質的な変化が必要であり、LLMs(Large Language Models)が真の努力なしに目標を達成しようとする人間の誤りを助長しているのではないかと懸念している。
  • ある開発者は自分のワークフローを説明し、Copilotがプロトタイプ段階で動くコードを提示すると、問題を十分に理解し正しく構造化するために必要なプロセスの大半を飛ばしてしまう可能性があると述べている。Copilotは最終的な開発段階では非常に有用になり得るが、入力した内容以上の結果を期待すべきではないとしている。
  • ある新人開発者は、Codeiumのような支援ツールはしばしば気が散ると感じており、自分がコードを書く方法を学べなくなるのではないかと心配している。Phindのようなツールは問題を理解する助けになるが、Codeiumは頻繁にうまく動作せず、不便を感じるという。
  • この研究の著者は、コード品質への長期的な関心が高まっていることに興奮を示している。2023年にコードの重複が増え、移動が減ったことは予想外の結果だったという。開発チームとAI支援ツールの開発者が、新たに追加するコードよりも再利用可能なコードを重視するような測定指標とインセンティブを採用することを望んでいる。
  • あるユーザーは、ChatGPTを使ってDjango/PythonベースのYourlsクローンを作ったが、トラフィック追跡機能を適切に考慮できていなかったと述べている。AIツールは初心者開発者のように振る舞うが、はるかに速い速度でミスを生み出すものだとたとえている。
  • DRY(Don't Repeat Yourself)原則への反発はすでに起きており、一部の若い開発者はコードに対して非常に異なる態度を持っていると指摘している。デザインパターンやDRY、SOLID原則に対して軽蔑的な態度を取っているという。
  • 最後に、あるユーザーはCopilotが賢く振る舞おうとしすぎて、しばしば間違った結果を出すと感じている。CopilotにはスマートなIntelliSenseであってほしいのに、実際にはもっと愚かなペアプログラマーのように振る舞うと批判している。多くの人がビジネスロジックに使っており、製品もその方向へ進んでいると考えている。