AIを使う上でやってはいけないこと
はじめに
2025年に入ってからChatGPTやGeminiのようなチャットインターフェースのLLM、GitHub Copilotのようなコーディングアシスタント、Claude Code や Codex のようなコーディングエージェントが急速に普及しました。
ソフトウェア開発業務でのAI利用も普及していますが、色々と思うところがあるのでAIをソフトウェア開発に利用する際にやってはいけないことをメモしておこうと思います。
Don't Do This
1. AIが生成した回答を鵜呑みにすること
残念ですがAIに何かを質問しても正しい答えが返ってくることはなかなかありません。最初の回答では表面的な答えしか返ってこないことがほとんどです[1]。インターネットに溢れるブログ記事の正しいとは限らない内容の劣化コピーが返ってくることもあります。AIを問い詰め続けることで、情報を捻り出すことはできますが、体系的な知識にアクセスすることは困難です。
また、AIは論理的な思考ができません。考えているように見える文章を生成しますが、よく読むと誤った内容が含まれていたり、生成された文章の中で矛盾していることがよくあります。残念ですが、AIに質問して返ってきた内容はそのまま仕事に使えるものではありません。(ChatGPTをThinkingモードにしても問題は解決しません。)
2. 議論をするときに、AIが生成したテキストをそのまま自身の主張の根拠にすること
ソフトウェア開発をする際に設計判断を下すために議論をする必要がありますが、その際にAIがこう言ってるからと主張して、建設的な議論を拒否する人たちがいます。先にも書いたように、AIが生成したテキストは間違った主張を含むことが度々ありますし、表面的な答えにしかなっていないことがよくあります。それに、AIが生成したテキストをそのまま自分の主張にするのであれば、その人がAIと開発チームの間に介在する価値はあるのでしょうか。
3. AIが生成したコードをそのまま利用すること
AIが生成したコードは微妙に要件を満たさなかったり、バグを含んでいたりするので、必ず確認してから採用してください。また、Claude Code や Codex のようなコーディングエージェントは不必要な機能を実装することがあるため、生成されたコードを適宜整理する必要があります。人間に必要なのはディレクションの能力です。開発しようとしているソフトウェアにとって必要なものを取捨選択するセンスが人間に要求されます。
4. AIが生成したコードをそのまま他人にレビューさせること
(2) と同様にこれをやってしまうと人間が単なるAIオペレーターでしかなくなるので、その人がいる必要性がなくなります。
さいごに
下記の記事はLLMの思考は本当の思考ではないことについて説明しています。若干専門的な内容を含みますが、LLMができないことを把握するために読むべきです。
私の経験からすると、ChatGPTをコンテキストの限界まで使い倒すことを続けているとLLMの限界が見えてくるので、AIを短い文章で質問すれば何でも答えを教えてくれる都合のいい機械だと思わずに、自分自身の観点でチャットを続ける経験が必要だと思います。もし、AIが答えを教えてくれることに満足しているのであれば、ナレッジワーカー以外の仕事をした方がよいでしょう。
-
ソフトウェアエンジニアリングとは関係ない話題ですが、例えばゴールドの価格は何に影響されるかをChatGPTに聞いても、最初の回答では実質金利の話に触れられることはなかなかありません。それぞれのアセットクラスの特性とマクロ経済学の理論を踏まえれば、論理的に実質金利とゴールドの価格の関係を理解できますが、ChatGPTはこちらから誘導しないとそういった話に向かっていきません。 ↩︎
Discussion