Agentic Coding、要はAIにコードを書いてもらうというあれ。
自然言語でプロンプトで、などなど未知のやり方だから謎なだけであって、これまでのプログラミングの歴史と一緒でパラダイムが変わっただけなのではないだろうか。
アセンブリで動いてたところにC言語がやってきてすごい、C++が来てすごい、Javaがやってきてすごい、Pythonがやってきてすごい、Goがやってきてすごい。いずれも得意不得意あるなあ。みたいな。(詳しくないので大雑把に書いてます)
自然言語で書けるのがすごい。自然言語で書いたやりたいことは実際にはそのまま動いてなくて、AIがコードにしてくれて、ランタイムが動いて、システムが稼働する。つまりはコンパイラみたいな?JITではないよな。でも「Bashで〜〜を実行します」とかはJITっぽい。
そういう時代になっただけの気がする。
AIによってソフトウェアエンジニアはなくなるか?にはYesと思う。従来の、という意味では。すでに現場はあちこち変わってきているわけだし。
フルサイクルに全部がAIになって、じゃあPdM的な人が自然言語でAIと会話して世の中にプロダクトを出していけるのか?といえばこれもYesだと思う。
でもどれだけ知識があるか、どれだけ自然言語を上手に扱えるか、どれだけワイドな思考が出来るかがキモになると思っている。例えば、ユーザのログインを実装したい→じゃあUsersテーブルを作ってパスワード管理しましょう、となりそうだけど、そのまま「じゃあそれで進めてね」と回答してしまうのか「もっといい方法ない?」「外部ツール使ったほうがいいんじゃない?」「セキュリティは?」などとキャッチボールを出来るかどうかは1つポイントだろう。少なくとも現状では。
AIのオーケストレーションも話題になってきている。シニアソフトウェアエンジニアとか専門性の高いロールをもったAIを平行することで高度にレビュー実施して着実に進めたり、別のAIを立ち上げてペアプロしたり、などなどもそういう仕組を組めばできるようになっているはず。現にいまよく使っているこれは、複数のソフトウェアエンジニアに同時に作業を進めてもらうようなもの。横に相談できる人をおいたり、随時レビューしてくれる人をおいたり、拡張の余地はある。
https://github.com/sters/complex-ai-workspace
つまりは、そういうソフトウェア開発丸任せ最強フレームワークを提供しますよ!というプロダクトが大々的に出ていないだけのような気もする?
個人としては、コード書くの楽しいなあってずっと思っていたので、自分でコードを書かなくなると嫌になったりするのかな?とぼんやり考えていた。でもいざやったらそうでもない。むしろ楽しくやってる。
こういう風にやったら出来るんじゃないか?→うおお!?動く!?→こうしたらもっといいかも!→うおお!?
このサイクルが楽しくて好きなんだと気づいた。だから、自分がコードを書こうが、AIがコードを書こうが、大差はないように感じる。これはなかなか大事なことかもしれない。この楽しいを軸にした役割=PdMやEM?な知識と経験を積んでいくのは生存戦略として良さそう。
おそらくコード書けます!AWSやれます!ドキュメント読めます!ベストプラクティスやれます!だけでは厳しいような気がする。5年後10年後にそれだとAIでいいのでは?人より安いよ?となりそうな予感、もうなっているところもありそうだけど。AIと差別化できる要素はなんだろうか?