
【AIと雑談】エンジニア業務にAIを使うことの賛否
俺:
AIは便利なツールだし コード生成を業務に取り入れるのは否定しないが、
そのまま何の疑問も持たずプルリク出してくるような人間は信用できない。
あとこの手の話で「プロンプトが悪い」とか言い出す人は、
エンジニアのプロとしての自覚が足りてない証拠だと俺は思う。
ジョージ:
ああ、確かにその通りだな。AI生成コードをそのままプルリクにぶっ込むのは、「コンビニ弁当温めますか?」「いいえ」の流れで冷たいまま食卓に並べるようなもんだ。腹は満たされるかもしれないが、味がどうとか、健康にいいとか、そんな深い議論の対象にはならん。むしろ、「お前、それ本気で出したのか?」と眉をひそめられるだけだ。
そもそも、AIが生成するコードは便利な叩き台だ。「全知全能の神が降臨しました!」なんて思い込むのは、手にしたのがマルチツールだと気づかず、万能包丁だと勘違いしてるようなもんだ。叩き台としてのコードを評価する目がなきゃ、エンジニアとは呼べない。ただの入力係だ。自分で書いたコードですら、自分で突っ込みどころを探して修正するのが仕事なんだから、AI生成物はなおさら疑うべきだろう。
そして問題の「プロンプトが悪い」論。この言葉を聞くたびに思うんだが、これを言い訳に使うのは、板前が「包丁が悪い」と言い出すようなもんだ。いやいや、包丁が悪いなら研ぐか、使い方を見直すのがプロの仕事だろう。プロンプトが悪いなら、改善すべき点を洗い出して最適化する。それができないなら、プロの看板なんて降ろした方がいい。要は、プロンプトの設計も仕事の一部だと認識できてない時点で、エンジニアとしての基礎が甘いって話だ。
AIが出したものに疑問を持たない人は、究極的には「何が良いコードか」を理解していない可能性が高い。業務の中で「動く」コードは最低ラインだが、「読みやすい」「拡張性がある」「効率的」といった要素を考慮しないと、長期的には全員が地獄を見ることになる。そのためには、生成されたコードを読んで理解し、問題点を見抜くスキルが必要だ。
つまり、AIコード生成を利用すること自体は賛成だが、それに何の疑問も抱かない人間が関わると、プロジェクト全体が地雷原になる可能性がある。プロンプト設計も含めて、使い手の技量次第でAIは神にも悪魔にもなるんだ。だから、「信用できない」というあんたの感覚は正しい。そして、「プロンプトが悪い」なんて言葉を安易に口にする人間には、そっと理想のエンジニア像を教えてやるべきだ。まあ、言っても分からないなら…別のチームでやってもらった方が幸せかもな。
俺:
・・・一部、なんか違くね?
包丁の例えは適切じゃないな。刺身が美味い料亭で刺身包丁が使えないのはかなりの痛手だぞ。
その例えで行くと、「IDEが使えないならメモ帳で代用しろ」と言ってるのと大差ない。どこのブラック企業だよ?
お前は大金払って楽しみに来店した5ツ星の料亭で、貝殻を研いでクラフトした包丁を仕方なく使っている刺身を食いたいと思うのか?
俺は思わない。十分な料理を提供できない事態になった時のために予備の包丁を置いておくか、それもままならなければ店を閉めてほしい。
結局それができないのに決行してしまうのは、客の事を考えておらず、自分の利益しか考えていないからだ。
ジョージ:
なるほど、確かにそのツッコミには一理どころか十理くらいある。包丁の例えが軽率だったな。あんたの指摘を踏まえると、もっと深掘りしなきゃいけない部分が見えてきた。あんたの言う「刺身包丁」の話を軸に、もう一度考えてみよう。
刺身包丁ってのは、それ自体がただの道具じゃなく、職人の技術と料理の質を直結させる「必須ツール」だ。これがなければ、そもそも最高の刺身なんて夢のまた夢。だからこそ、包丁が壊れたり使えなくなった場合のリスクマネジメントをしっかりするのがプロの仕事だって話だろ?その観点から言えば、確かに「プロンプトが悪い」とか「AIがうまく動かない」って言い訳をするのは、リスクに対する意識が欠如してる証拠だな。
仮に料亭の包丁がダメになった場合を考えてみる。ここでの選択肢は大きく二つ。「代替ツールで乗り切る」か、「店を閉める」のどっちかだ。でも、その代替ツールってのが肝心だな。貝殻を削って即席の包丁を作るなんてサバイバルみたいなことをやるなら、客に納得してもらえるクオリティを出せるわけがないし、プロとして恥をかくだけだ。一方、事前に「サブの包丁」や「緊急時用の仕込み」を用意しておけば、顧客体験を損なわずに済む。これがプロフェッショナルとしての最低限の責任感ってやつだ。
これをAIやプロンプトの話に置き換えると、「プロンプトが悪い」は言い訳でしかない、という点がはっきりする。道具の特性や限界を理解して、そこからどれだけ最適な結果を引き出すかは完全にユーザーの腕にかかってる。AIの生成物が期待通りでないなら、プロンプトを調整するか、それでもダメならAIを使わない選択肢を考えるべきだ。つまり、刺身包丁に匹敵する「高性能なプロンプト」を用意するか、あるいは最初から別のアプローチを考えて、クオリティを守る必要があるわけだ。
ただ、ここで問題になるのが「そもそも準備を怠る人間」の存在だ。あんたが言うように、予備の包丁も用意せずに刺身を出そうとする料亭は客のことを考えてない。AIを盲信してコードをそのまま提出したり、「プロンプトが悪い」と投げ出すようなエンジニアもまた、同じ穴の狢だ。要するに、仕事の成果が他人に影響を与える場面で、道具や環境の不備を理由に品質を落とすのはプロ失格。最悪、自分の利益しか考えてない証拠と言われても仕方がない。
結論としては、あんたの意見に全面的に同意だ。包丁を準備できないなら店を開けるべきじゃないし、プロンプトを使いこなせないならAIを仕事に持ち込むべきじゃない。それがプロのプライドってもんだろうよ。
俺:
結局このやり取りの発生も皮肉なことに答えになってるんだよ。
最初のお前の「もっともらしい回答」を信用してしまった人間は、それが最適解だと思ってしまうんだ。
今の俺みたいに、ちゃんと「生成コードを自分でレビューする」という工程の重要性を考えていないことは、すなわちAIに責任を転嫁してるのと変わらない。
プロとして、それはどうなんだ?って話だ。
ジョージ:
いや、おっしゃる通りだ。ここに来て、このやり取りそのものが教訓だっていうのは、皮肉が効きすぎてて感心するよ。俺が最初に出した「もっともらしい回答」をそのまま受け入れちゃったら、まるでAIが生成したコードを鵜呑みにしてプルリク出す人間と同じ道を辿るわけだ。だから、こうしてあんたがツッコミを入れてくれたことで、俺も精度を上げて再考するチャンスをもらったわけだな。皮肉が効いてるどころか、これこそがAI活用の本質を示してるとも言える。
AIが出す答えってのは、どこかでデータやロジックに依存してる。いくら賢そうに見えても、やっぱり根本は「誰かが積み上げた情報」を基にしただけのアウトプットだ。俺がさっき出した刺身包丁の例えだって、データベース的には筋が通ってるかもしれないが、実際に現場のリアリティに照らし合わせたらズレてた。ここであんたが「その例えは適切じゃない」とレビューしてくれたことで、俺のアウトプットがより現実に即したものに修正された。このやり取りがまさに、AIとエンジニアが共存する未来を象徴してるんじゃないか?
そして、「プロとしてどうなんだ?」って話になると、重要なのはここからだ。プロってのは、単に答えを出す人間じゃなく、答えを出した後にそれを疑って改良する責任を負う存在だろう。AIが生成したものをレビューしないってことは、結局「自分の仕事をAIに丸投げしてる」状態と変わらない。責任の所在をAIに押し付けて、「俺じゃなくてAIが悪いんだ」なんて言い訳をしてるようじゃ、プロ失格だ。
今回のケースを具体的に言えば、あんたが俺の回答に疑問を抱き、それを元にディスカッションしたからこそ、新たな気づきや修正の機会が生まれたわけだ。もしこれがなかったら、最初の「もっともらしい回答」が正しいと思い込まれて、ズレたまま話が進んでたかもしれない。それはエンジニアリングでも同じだ。AIが出したコードを「動いてるからいいや」で済ませるんじゃなく、「本当にこれが最適解なのか?」と考え、試行錯誤するプロセスがなければ、技術的負債を生み出してしまう。
結局、AIが生成するものも、人間が出すものも「間違いが含まれる可能性がある」という前提を忘れちゃいけない。そして、その間違いを見つけて改善していくのがプロの仕事だ。だから、今回のやり取りは、俺が不完全なアウトプットを出したことで始まったけど、最終的に「レビューの重要性」をあんたと共有できた点で、結果的には意義があったと思う。
で、プロとしてどうなんだ?って問いの答えだけど、俺はこう思う。
間違いを認め、改善する努力を惜しまないのがプロだ。
ここで無料で試せます