AIの波に乗らねば!と思いながらも、今の自分の状況を考えた時に本当にやるべきこと

ひとりごと

風呂の中で書いているので、やや雑。

今の僕は「AI駆動開発」に注力すべきではない

AIはキャッシュポイントの発見、0→1フェーズの事業貢献、開発生産性向上など、あらゆる領域で革命をもたらしている。エンジニア界隈でも、「AIを活用できないエンジニアは淘汰される」「とにかくAIに適応しなければならない」といった言説が飛び交っている。しかし、今の自分にとって、それは本当に優先すべきことなのか。多分、僕以外にも「ほんとにプログラミングやって意味あるのかな」「AIがやるならもう意味ないかな」「技術的な勉強はもうしないでいいかな」と悩んでいる同期後輩もいるだろうから、僕の持論を整理してみた。結論はこの見出し。

短期目標:「社内で自分の存在を証明すること」

僕の短期的な目標(〜2年)は、「社内で自分の価値を明確に示すこと」だ。プロダクトオーナー、マネージャー、あるいは技術特化型のエンジニアとして、自分の強みを見極め、そこにフルベットすることが最優先だと考えている。ちなみに、中期長期の未来など考えたところで意味がないので短期目標だけ持っている。

この目標を達成するためにはまず足元の、「エンジニアとして成果を残すこと」が不可欠だ。そして、今の大規模プロジェクトにおいて、「AI駆動開発」が適しているとは思えない。

AI活用の限界と現実

一定の規模感を超えた開発において、現状のAIは決して万能ではないと思っている。確かに、単純なUI実装や定型的なタスクは任せられるが、プロジェクトごとの開発背景、複雑なドメインのコンテキスト、独自のUIライブラリとの整合性を考慮すると、そこにはAIを使っても正直あまり恩恵を受けられない。大規模開発経験者ならわかると思うが、コードリーディングなんてもっぱら任せられない。大規模は結局のところ外部APIや内製メソッドや内製ライブラリを使っているので、そこまでのコンテキストまで把握しながらは現状難しい。

今自分の場所で求められていること

ソフトウェアに終わりはない。むしろ、常に変化し続けるものだ。

今や世界のインフラアプリケーションになった「Instagram」「X」「LINE」「BeReal」でさえも、超小さいバグや機能に対して不満を持つ人を沢山見てきた。ソフトウェアに終わりがないというのはこういうこと。

ビジネスの成長に伴い要件は変わり、ユーザーが使い込むほどに新たな機能の要望が生まれる。リリースを重ねれば、必ずバグや障害が発生し、その都度修正と改善が求められる。人(ユーザー)はいくら素晴らしいソフトウェアを使うことができても常により良いものを求め続け、それに応えるのがエンジニアの役割だ。

つまり、ソフトウェア開発において最も重要なのは、「実装の意図や背景を理解し、第三者が見ても触れても容易に修正・拡張できる設計」を実現することだ。コードは単なる命令の羅列ではなく、エンジニア同士のコミュニケーションツールであり、未来の開発者へのメッセージでもあるというのが持論。

変更に強いコードを書き続けられるかどうか——この問いは、過去から現在、そして未来にわたって、ソフトウェア開発における普遍的な命題であり続けると思うがどうだろう。

そのためにはエンジニア自身の知識と経験が不可欠である。結局、AIにコードを書いてもらったところで、コードの品質を判断し適切な設計を行うのは人間であり、AIは補助的な役割に留まる時代はなんだかんだ続くと思っている。

「AIの波に乗らなければ」と焦ることに対して

最近、「AIについていかないといけない」「AIを駆使して開発できるようにならなければ」と焦ることが増えていた。しかし、今の自分にとって本当に必要なのは、AIではなく「エンジニアとしての基盤を固めること」だと改めて認識した。

もちろん、普段からAIは活用しているし、技術動向も意識している。しかし、今のフェーズで最優先すべきは、徹底的に知識を深め、開発力を磨くこと。エンジニアが不要になる未来は来ないし、むしろ時代が進めば進むほど、ドメイン知識や設計力が問われる場面が増えていくだろう。

zennの何かの記事で書かれていたこと↓

自分はプログラマが不要になるとは思っていない。プログラマというのはコードを書く作業員ではなく、対象のドメインを抽象して構成要素を分解・再構築する思考訓練を受けた専門家だと思っているからだ。
そしてこの思考様式なくして、プログラミングは実現しない。AI がプログラミングをするときの水準がこれなのだから、人間側が AI の期待に応える必要がある。応えられない範囲は、ハルシネーションで埋まっていく。

時代の変化はドメインを変化させる

どれだけAIが発達しても、ソフトウェアは常にアップデートが必要である。時代が変化すると、流行りも変化する。流行りが変化するということは、新たなドメインも登場する。新たなドメインの登場とともに、ソフトウェアは修正され、修正する時には結局修正しやすいコード、適切なアーキテクチャが設計されたソフトウェアである必要がある。僕が言いたいのは、AIはまだそこまで考慮したコードはあまり得意じゃなくないですか?ということ。もちろん、これからの発展で変わるかもしれないが。

「AI駆動開発」は、結局「エンジニアの実力」ありき

AIを活用するにしても、結局のところ、その土台となるのはエンジニアの技術力だ。AIは便利なツールだが、それを適切に活かすためには、エンジニア自身の能力が必要になる。AIに依存するのではなく、まずは自分自身のスキルを高めることが先決だと考える。

結論:僕は今、AIを無視し、自分の成長にフルベットする

シンギュラリティのような変化はすでに起きているのかもしれないが、もし本当に「AIの波に乗らなければならない時」が来たときには、おそらく「波に乗らせてくれるAI」が登場しているはずだ。

だからこそ、今はAIに振り回されず、自分自身の成長にフォーカスする。AIを使いこなすことよりも、「AIを活用するに値するエンジニア」になることの方が、よほど重要である。


yusei53の画像
yusei53

yusei53 has shared 203 reflections. Discover new insights this platform.