
「AIにコードを書かせれば開発が一瞬で終わる。」
そんな期待を持っていた時期が、自分にも以前はあったんですよ。
AIのコーディングエージェントを使うと、指示したとおりのプロジェクト構築が人が作るよりも早い時間でできちゃいますからね。
数秒で数百行のコードを書き、エラーの修正案を出し、設計の相談にも乗ってくれる。
こんなことができるAIは確かにすごい。
でも、実際にAIを使って開発してみると思ったほどすんなりいかない事が多いんです。
コードを書く作業は終わっても、
開発は終わらない。
なんでAIがちゃんと終わりまでできないんだろう???
今日はそんな話です。
AIはプログラマーではなく超高速タイピスト
AIを使い始めると、
コードを書く速度に驚きます。
「ログイン機能を作って」
「CSVをインポートできるようにして」
「管理画面を作って」
こんな依頼をすると、あっという間に
それらしいものが出来上がります。
でも、ここで大体の人が勘違いしちゃいます。
AIが得意なのは、
・コードを書く
・コードを修正する
・コードを説明する
ことであって、
・何を作るべきか決める
・本当に必要な機能を見極める
・ユーザーの課題を理解する
・面白味の追求
こんなことは期待してはいけません。
つまりAIは、
超優秀な作業者ではあるが、プロジェクトマネージャーではない。
ということ。
開発の本当の敵は「仕様変更」
プログラム開発が終わらない最大の理由は何かを考えてみました。
実装速度は問題ない。
バグでもない。
モックアップやプロトタイプを作るまでは、チョッ早でできてしまうので、何に問題もない。
問題は、仕様変更なんです。
例えば、
「顧客一覧を作ってください」
という依頼があったとします。
なんと、AIは数分で作れるんですね。
しかし翌日、
「やっぱり検索機能が欲しい」
って言われた場合、AIに追加指示を出します。
これもAIは、難なくソッコーで作ってくれます。
さらに翌週、
「CSV出力も欲しい」
と言われた場合も、
AIにお願いすれば、叶えてくれます。
その翌日、
「顧客ごとに担当者を紐づけたい」
この段階では、もはや人が手出しするよりもAIにやらせる思考になっているでしょう。
AIは毎回対応できてしまうんですが、開発は終わっていない事に気がつきません?
なぜなら、
AIが速くなったことで、仕様変更も高速化したから、依頼する人もあれもこれも・・・と言ってくるようになっちゃうんです。
AIによって発生する新しい仕事
AIによって、開発スピードが早くなり、改善要望が増える事は、別に悪い事ではないかもしれませんが、
AIは、機能追加や仕様変更をするたびに、その場で付け加えたスパゲッティコードが追加されている傾向があります。
これは、人がやった場合は粗悪になりますが、AIはより複雑な形で実装してしまう事が多いようです。
AI導入前の開発は、
・コードを書く
・テストする
これがエンジニアの主な仕事でした。
AI導入後は、
・AIへの指示を考える
・出力内容を確認する
・間違いを見つける
・設計との整合性を確認する
・セキュリティを確認する
・保守性を確認する
という仕事が増えるんです。
コードを書く時間は減りますが、考える時間は減らない。
むしろ増えることの方が多いはずです。
AIは100点ではなく80点を量産する
AIが作るコードは非常に優秀ですが、多くの場合、
・それっぽい動く
・仕様書も作ってくれる
・何でも質問にもも耐えてくれる
このレベルです。
悪くはないんですが、実はこれは100%ではないんです。
それに比べて実際の業務システムでは、
・パフォーマンス
・セキュリティ
・運用
・保守
・将来の拡張性
ここまで考える必要があるんです。
AIは80点のコードを大量生産できます。
でも残り20点を埋める作業は、依然として人間の仕事なんですよね。
しかもその20点が一番難しいんですよホント。
開発とはコードを書くことではない
正直、若手エンジニアの頃、
「コードを書いている時間こそが開発だ」
と思っていました。
しかし経験を積むと気付くんですよね。
開発とは、次のような事だと。
・要件を整理する
・問題を発見する
・解決方法を考える
・関係者と調整する
・リスクを減らす
コードを書く作業はその一部に過ぎないんですよ。
AIはその一部を劇的に高速化してくれました。
しかし開発全体から見ると、それは氷山の一角だったということです。
AIによってより終わらなくなった開発
少し皮肉な話ですが、
AIのおかげで開発速度が上がると、
「ついでにこれも」
「ここも改善したい」
「だったらこんな機能も」
という要望がどんどん出てきます。
以前なら
工数的に諦めていたことまで実現可能になる。
結果として、開発が早く終わるどころか、開発のゴールがどんどん遠ざかる自体になっています。
悪いことではないかもしれませんが、仕事としてのプロジェクトのボリュームが膨らんだり、
行き当たりばったりのプロジェクトになりがちという危険性もあります。
工程管理も含めて、クライアントや要望者とのコミュニケーションも、TPOに併せて重要になってきているという事ですね。
あとがき
AIはプログラムを書く能力において、
人間を大きく支援してくれる存在です。
しかし開発とは
コードを書くことではありません。
・何を作るか決める
・何を作らないか決める
・どこで完成とするか決める
これらは今も
人間の役割です。
だから、AIにプログラムを書かせても開発は終わらないという事を理解しましょう。
むしろAIによって可能性が広がった結果、
「もっと良くできる」が次々と見つかるようになり、
開発は以前より終わりにくくなっているのかもしれません。
エンジニアの仕事がなくなるのではなく、
「コードを書く人」から「完成を定義する人」へと役割が変わり始めているという事は色々な場所で言われています。
そんな時代に入ったのだと気がついたら、エンジニアの働き方も変えていくべきなんですよね。
ひとりひとりのエンジニアが小さなプロジェクトリーダーのようなスキルが必要になるということが今後のエンジニアに求められる技量だと気がついた人は、未来の開発が少し見えてきた人なんでしょうね。
0 件のコメント:
コメントを投稿