Core Concepts
AIアシスト型プログラミングツールは開発者の生産性を向上させるが、タスクの性質や開発者のスキルレベルによって影響は異なる。また、ツールの推奨コードの特性や開発者の評価・判断要因、使用時の課題と期待も明らかになった。
Abstract
本研究は、3つの一般的なソフトウェア開発タスクを設定し、27人のコンピュータサイエンス学生を対象に、3つの人気のあるAIアシスト型プログラミングツール(GitHub Copilot、Tabnine、CodeGeeX)を使用して実験を行った。
実験の結果、AIアシスト型ツールは一般的にタスク完了率の向上、作業時間の短縮、コード品質の改善、開発者の生産性向上に寄与することが分かった。ただし、その影響はタスクの性質や開発者のスキルレベルによって異なり、経験豊富な開発者の場合はツールの使用によって作業時間が増加する可能性も示された。
ツールの推奨コードの特性分析では、「行単位の補完」が最も頻繁に推奨されるが、「コメントの補完」や「文字列の補完」の受け入れ率が最も低いことが明らかになった。開発者がツールの推奨コードを受け入れる・拒否する・修正する理由として、22の要因が特定された。さらに、ツールの使用時の9つの課題と23の期待が明らかになった。これらの知見は、AIアシスト型プログラミングツールの設計と実装の改善に役立つ。
Stats
プログラミングタスクの完了時間は、GitHub Copilotを使用した場合平均で641秒(13%)短縮された。
Tabnineを使用した場合は平均で661秒(14%)短縮された。
CodeGeeXを使用した場合は平均で546秒(11%)短縮された。
Quotes
「この推奨コードを受け入れたのは、長いコードで、ほとんどの構造が既に書かれていたので、時間を大幅に節約できたからです」
「AIツールの自然言語理解能力が不足しているのが課題です」
「推奨コードの順位最適化と、複数の候補から選択できるUIの改善を期待しています」