今年に入ってすぐくらいから、coding agentを活用した、いわゆる vibe coding を行うようになりました。
vibe codingとは、おおむね「自然言語でcoding agentに指示をしてプロダクトを作る」という開発スタイルのことを指すとみていいようです*1。
これはまさにソフトウェア開発における革命です。しかも、この革命はすでに "成って" います。
たとえば、ここ1ヶ月くらいで私が仕事で生産するコードの8割くらいは、coding agentによるものです。そして、おそらく1年以内にこれは9割を超えます。
この流れはもはや不可逆です。すでにvibe codingによって作られるプロダクトは、これまでとは異なる質を持っているからです。
つまり、vibe codingはただagentic codingがコーディングの役割を担うというだけにとどまりません。vibe codingによって以前の数倍のスピードでコードを "生産" できるようになり、この "量" は "質" に転じます。1ヶ月かかっていたことが1週間で終わるなら、1週間かかっていたことが1日で終わるなら、以前だったら「それなら、やらない」となっていた判断が「やる」という判断になり得ます。その結果、これまではできなかったことができるようになります。
また、ソフトウェアエンジニアに求められる知識や考え方もこれまでと変わります。coding agentはコードを大量に書くのは得意ですから、短く書くための糖衣構文や(Rustなどの)マクロを使うコードよりは、冗長でもすべて明示してあるコードが、今後は圧倒的に「良いコード」とされていくでしょう。動的型付けよりも静的型付けの言語がますます好まれるようになり、最終的なE2Eテストを行いやすいアーキテクチャが好まれるようになり、中長期的にはcoding agentにとって良いコードとは何かという議論が盛んに行われるようになるでしょう。
設計はコーディングよりも重要になっていきます。書きながら全体の設計を頭の中でしていくスタイルのソフトウェアエンジニアリングは廃れてゆき、いかにcoding agentにわかりやすい設計書を書けるかがソフトウェアエンジニアリングの重要なスキルになっていきます。
coding agentのマネージメントスキルも重要です。もうすでに、coding agentのタスク管理、指示出し、成果物の確認だけで、仕事時間のほぼ全てを使っています。
一方で、コーディング能力自体が完全に不要になっていくわけではないと思っています。coding agentの書くコードはまだ人間よりも質が低いことが多いです。また、純粋に設計と指示に不足があり、それが成果物の質を下げるということは頻繁にあります。成果物の評価は、単純なコンポーネントであればテストを見るだけで評価できることが多いですが、複雑な状態管理を伴ったステートフルなシステムは、テストコード自体も複雑になるため、内部動作を理解する必要はどうしても出てきます。その際は、コーディング能力が必要です。少なくとも、この先数年は…。たぶん…。
まあしかし、まさか自分が40代になって、自分の仕事の領域で、こんなに劇的に全てが変わる "革命" が起きるとは思ってもみませんでした。2023年にGPT-4が出たときでさえ、わずか2年後に革命が起きるとは思いませんでした。ソフトウェアエンジニアの仕事はこれからどうなっていくのでしょうか……。
*1:"vibe coding" という言葉自体、2025年2月に生まれたばかりの言葉です。 https://en.wikipedia.org/wiki/Vibe_coding