【3行要約】・AIは人間のように間違えるため、エンジニアはAIの間違いを正す役割が求められています。
・Ruby開発者のまつもとゆきひろ氏は、AI時代においてAIは知識はあるが判断に限界があると指摘。
・エンジニアとして生き残るには、問題把握・解決能力、プログラミングスキル、責任能力、そして変化への適応力が必要だと語ります。
前回の記事はこちら AIは人間みたいに間違える
まつもとゆきひろ氏:結局「過信は禁物」なんですよね。

AIは間違えるんですよ。(私は)もうプログラミング歴40年ぐらいになるんですけれども(笑)。今まではコンピュータ自身が間違えることはほぼなくて、裏の人間が間違えていたんですね。「バグがある」っていう。
なんだけど、現代に至ってAIの時代になると、AIは人間みたいに間違えるんですよね(笑)。よく忘れるし、例えば「インデントはスペース2つにしてほしい」とか言ったのにかかわらず、いきなり4スペースでプログラムを書き出したりとかするんですね。その度に怒ると(笑)。
あとは勘違いしたりとかですね。「バグがあるので直してほしい」って言うんですけど、ぜんぜん関係ないところをいじり始めて、何回やってもバグが直らない。違うところを見ているので、状況が変化しない。途中で「じゃあ、今までの変更をリセットします」とか言って、大事な編集も含めて吹き飛ばそうとするのを「やめて、やめて!」って止めたりしないといけないんですね。
それと思い込みもありますよね。「このバグはここにあるに違いない」と言って、ぜんぜん関係ないところを直し始めるとか。

今までのコンピュータっていうのは決定的、決定論的というか、「コンピュータそのものは間違えない」と思って付き合ってきたのに、最近になっていきなり「コンピュータなのに、なんかあまり信頼できない」みたいになって困る感じではあるんですけども(笑)。
人間に期待されているのは「AIの間違いを正す役割」
そうすると、人間に期待されていることっていうのは、AIの間違いを正す役割を求められることになるわけですね。AIはデバッグの作法を知らないし、簡単なバグの原因も見つけられない。
仕方がないので、AIに「ここは、こうやってバグを見つけるんだよ」とか「ここにバグがあるよ」とかを教えてやらないといけなかったりするんですね。

ソフトウェア開発の主導権を奪われている感じが、ちょっと腹立たしいところもあるんですけども。でもソフトウェア開発の主導権を、人間が握らないといけないので。
レビューをして、AIの行動を監視して、いちいち間違っていないか、。正しいかどうかを確認するっていうのが、必ず成果を上げなくちゃいけないソフトウェア開発において必要になってくるんですね。

そうすると、人間に求められるのは「そもそもなんでこのソフトウェアを開発するんだっけ?」っていう、何を解決するかっていう問題。それから「何を作るか?」っていう問題。それから「どういうソフトウェアを使って、その問題を解決するか?」。つまり「何を作るか?」ですね。それから「そのソフトウェアをどんな言語を使って、どんなフレームワークを作って、どんなプラットフォームで動かすか?」。つまり「どう作るか?」っていう、こういうところは、結局人間が決めないといけないんですよね。そうでないと、ガチャになっちゃうんですよね。

AIに間違いを正す、それからAIに教えてやるのは、私はできます。なぜかっていうと、私は過去ずっと何十年もソフトウェアを開発してきていて、AIがなくても、やればソフトウェアを開発できるんですよ。
ここ半年ぐらいはだいぶAIに頼りっきりなので(笑)。「今までのソフトウェア開発のやり方を忘れちゃいけないな」とか思いながら、でも、やればできるんですよね。開発経験があるシニアにとっては、自分の仕事はあまり危うくないんですよ。AIに教えてやる仕事がいっぱいあるから。

だから私は定年退職するまで、AIのガイドをするっていう仕事をしていても生きていける、逃げ切れるんじゃないかなという予感があるんですね。
エンジニアとして生存するために求められるスキル
ただ問題は、今日の聴衆みたいな若い人たちが「どうするの?」っていうことですよね? 若者が、もし「エンジニアとして生きたい」と思った時に、生きる権利はどこにあるのか。みんなAIに仕事を取られちゃって、結果的にソフトウェア開発の仕事は減るんですよね。出来が悪くても、ガチャでも、ある程度は代替してくれるから。
すでに経験を持っているシニアはいいよ? なんだけれども「これから勉強します」っていうジュニアが、どうやってAIと付き合っていけるかどうか。AI時代に人間に期待される役割が何かっていうこと。それについてのスキルを身につけないと、エンジニアとして生存できないってなるんですね。

期待されている役割は、方向性を決める。AIの間違いを正す。人間とAIの架け橋になるってことですね。

そのためには問題把握能力、問題解決能力、プログラミングスキル、責任能力が求められると言ってもいいと思います。
AIは自発的に何が問題かを見つけることはできない
問題把握能力っていうのは、つまり課題を見つける能力ですよね。解決しなければならない課題を見つける能力。これは私の個人的な未来予測なんですけども、AIは、当面この能力を持たないんじゃないかなと思うんですね。なぜかっていうと、AIは基本的に体がないんです。それから肉体がないですし、物理的限界がないので、欲求がないんですよ。
「お腹が空いた」とか「退屈だ」とか、そういうのがないんですよね。それから、ものを忘れるとか、寝ないと働けないとか、そういうのもないんですよね。
そういう身体性のなさによって、何が問題かを理解することができない。AIは広範な知識を持っているので「他の人間が、こういうことを問題だと思っていました」って教えることはできるんだけど、自発的に何が問題かを見つけることはできないと、私は思っているんですよ。そうすると、その問題を見つけ出す能力は、人間に求められる能力として非常に重要になります。