ソフトウェアエンジニアでAIツールの開発者でもあるアレックス・エワーロフは、生成AIがコンピュータープログラミングを事実上「解決した」という、広まりつつある主張に異議を唱えた。大規模言語モデルはコード作成を加速できるものの、それは信頼できるソフトウェアを提供するための仕事の一部にすぎないという。
新たに公開した論考で、エワーロフはコードを生み出すことと、安全性、信頼性、拡張性を維持しなければならないシステムを保守することを区別している。実際の本番環境では、非機能要件への対応が作業と費用の大きな部分を占めると指摘する。ソフトウェアが意図した処理を実際に行うようにするという機能要件さえ、解決済みではないとの見方だ。
筆者は、AIを活用した開発を否定しているわけではない。自身を早期からの利用者と位置付け、コーディングモデルの使用、モデルを動かすための実行・制御の仕組みの構築、この分野の指導、言語モデルを利用した製品の開発に携わってきたと説明している。主張の要点は、特定の作業で役立つことを、専門的なソフトウェアエンジニアリングに人間の判断がもはや不要だという結論にまで一般化すべきではない、という点にある。
エワーロフは、個人用ツールや概念実証では、利用者が合理的な判断としてより大きなリスクを受け入れる場合があると指摘する。一方、金銭、安全、法的な結果に関わるシステムでは、誤りに対する許容度が低く、責任を負う人間がその挙動を理解し、制御する必要があると論じている。AIシステム自体は職業上あるいは法律上の責任を負えないため、責任はそれを導入する人や組織に残る。
論考は、言語モデルが確率的に動作する点にも焦点を当てている。コーディング支援ツールの周囲に従来型のソフトウェアを組み合わせ、テストを実行し、コンパイラーや実行時のエラーを報告し、モデルに出力を修正する機会を繰り返し与えることはできる。こうしたフィードバックの循環によってツールは効果を発揮できるが、それによって基盤となるモデルが決定論的な推論システムに変わるわけではないと、エワーロフは述べる。文脈が大きくなり、論理が複雑になれば、なお精度が低下する可能性がある。
実務上の警告は、とりわけ技術部門の指導者に向けられている。生成が速いという理由だけで、開発のあらゆる場面にAIの使用を義務付けないよう求めている。不適切な利用、確認の不足、品質確保の作業の省略は、そこから生じる不具合のしわ寄せを顧客に及ぼしかねないが、導入した企業の責任がなくなるわけではない。
この記事は専門的知見に基づく意見であり、特定のツールを条件を統制して比較したベンチマークではない。いくつかの例も筆者自身の経験に基づいている。それでも、中心となる区別は現在の導入判断に関係する。初期実装時の生産性は、ソフトウェア全体の品質やライフサイクル全体の費用と同じ尺度ではない。コーディング支援ツールを評価するチームは、引き続き自らの作業手順を試し、不具合やセキュリティー面の結果を追跡し、どこで人間による確認を必須とするか決める必要がある。この見方に立てば、AIは強力なエンジニアリングツールになり得るが、エンジニアリングそのものが完了したことの証拠ではない。



