Coursera共同創業者で、ディープラーニング分野の第一人者として知られるアンドリュー・ン氏は、コーディングエージェントの活用が広がっても、開発者にはソフトウェアエンジニアリングの基礎理解が不可欠だとの見方を示した。
同氏はこのほど、Xへの投稿で「たとえコーディングエージェントがコードをすべて書けるようになっても、開発者はソフトウェアの基本原理を理解していなければならない」と指摘した。そのうえで、「基礎が分かっていれば、エージェントに何を任せ、何を見送るべきかを的確に伝えられる」と述べた。
ン氏によれば、AIアプリケーション開発はAIだけで完結するものではない。AIは単独で動作するのではなく、より大きなアプリケーションの一部として機能するため、開発者にはアプリケーション全体を設計し、作り込む力が求められるという。
基礎を持たないまま「バイブ・コーディング」だけで開発を進める初学者でも、簡単なアプリを作ることはできる。ただ、その場合はコーディングエージェントが、遅延、可用性、一貫性、信頼性、保守性、シンプルさ、コストといった観点で不適切な選択をしやすいとした。開発者自身がこうしたトレードオフを理解しておらず、エージェントに適切な方向性を示せないためだ。
ン氏は、自身が進めた「AIエンジニアリング・スキル」に関する研究を踏まえ、開発者に必要なソフトウェアエンジニアリングの力を5つに整理した。
第1は、フルスタックでアプリケーションを構築する力だ。
同氏は「コーディングエージェントの登場で、フロントエンドやモバイルなど特定領域を担ってきた開発者でも、フルスタックの役割を担いやすくなった」と説明する。一方で、UIコンポーネント、キャッシュ、ページレンダリング、API設計、認証、状態・セッション管理、非同期処理、データ永続化、テスト、セキュリティ、アクセシビリティまで、スタック全体の仕組みを理解する必要があるとした。
第2は、データ管理だ。データはソフトウェアの土台であり、エージェントが移行作業を支援できたとしても、いったん決めたデータ構造は容易には変えにくいと指摘した。
同氏は「データへのアクセスパターンを理解していれば、何をどれだけの期間保存すべきか判断できる」と説明。リレーショナル、ドキュメント、キー・バリュー、グラフといった保存方式の選択によって、速度、拡張性、可用性、信頼性、コストが変わるとした。
さらに、「AIシステムはデータソースから情報を取得し、それを判断材料に使う。データアーキテクチャを誤れば、AIは自分に何の情報が欠けているかすら把握できない」と指摘。「こうした問題は、文脈を理解している人が直接手を入れて修正する必要がある」と述べた。
第3は、システムアーキテクチャ設計だ。ユーザー数、遅延の重要度、コストなど、ソフトウェアに何を求めるのかを理解して初めて、プラットフォームの選定やフロントエンドとバックエンドの責務分担、システムの分割方法、モノリスかマイクロサービスかといった判断が可能になるとした。
同氏は「適切なアーキテクチャは、プロジェクトの段階によって異なる」と説明。プロトタイプ向けの構造が初期の本番システムには適さないこともあり、サービスの拡大に合わせて構造は再び変化すると述べた。
第4は、安定運用とセキュリティを担保する力だ。同氏は「システムが正しく動いているか確認するには、テスト戦略が必要だ」とし、単体テストと統合テストの比率、利用ツール、どの程度までコードを検査するかというカバレッジの設計が欠かせないとした。
加えて、APIのリクエスト制限のような障害時の状況を見越した設計や、エラー発生時にサービス影響を抑えながら機能を縮退させる仕組み、障害範囲の最小化が重要だと説明した。セキュリティ対応を開発初期に前倒しする「シフトレフト」の流れを踏まえ、開発者がセキュリティエンジニアの役割を一部担う場面も増えるとの見方を示した。
第5は、本番運用とスケーリングの力だ。デプロイ環境の設定、リリース戦略、CI/CDの自動化まで、ソフトウェア開発ライフサイクル全体を扱えることが重要だという。
同氏は「運用段階では、監視ツールの導入やアラート設定、障害対応が必要になる」と説明。トラフィック規模を踏まえたサーバー増強やロードバランシングに加え、シャーディング、インデクシング、レプリケーションを通じてデータ基盤を調整できる必要があると述べた。
そのうえで同氏は、「コーディングエージェントは、AI要素を含まないソフトウェアも含め、ソフトウェアの作り方そのものを変えた。文法知識の暗記の価値は、今後ますます低下する」と指摘した。一方で、「ソフトウェアがどう動くのかを深く理解している開発者は、理解のないままバイブ・コーディングだけを続ける開発者を大きく上回る」と強調した。
ソフトウェアの基礎を理解していれば、何ができて何ができないのかも判断しやすくなる。ン氏は、こうした理解こそが、コーディングエージェントを活用して成果物を作るうえで重要な文脈になると締めくくった。