Writing Column [Column] 「開発者がいないから無理」はもう通用しない

概要

AIコーディングツールが開発者の希少性を完全に変えてしまった時代。コードを書く能力ではなく何を作るべきかを知る能力が核心となった。

開発者の黄金期は終わった

率直に言おう。開発者の黄金期は終わった。

わずか2〜3年前まで「アイデアはあるけど開発者がいなくて」という言葉は起業できない最も正当な理由だった。企画者と開発者の間には明確な役割の非対称性があり開発者はその希少性のおかげで有利な立場にいた。非エンジニアがコードを触るなど想像もできなかった。

では今はどうか。

ChatGPT、Claude、Cursor、Bolt、Lovable、v0。これらのツールがすべてを変えてしまった。コーディングを一行も知らない人が一日でWebサービスを作ってデプロイする。大学生が週末にSaaSを作ってリリースしデザイナーが自らフロントエンドを仕上げる。これは誇張ではなく今毎日起きている現実だ。

この現象にはすでに名前まで付いている。バイブコーディング(Vibe Coding)。OpenAI共同創業者のAndrej Karpathyが作ったこの用語はコードを直接書く代わりにAIに欲しいものを自然言語で説明し生成された結果をそのまま受け入れる方式を意味する。コードを読まなくてもソフトウェアが作れる時代が来たのだ。

MVP検証は誰にでもできるようになった

スタートアップの本質は何か。アイデアを素早く市場に投げて反応を確認すること。いわゆるMVP(Minimum Viable Product)検証。かつてはこの段階すら開発者なしには不可能だった。簡単なランディングページ一つ作るにもフロントエンド開発者が必要でサーバーを繋ぐにはバックエンド開発者が必要だった。

今は違う。AIに「会員登録機能付きのTodoアプリを作って」と言えば5分で動くプロトタイプが出来上がる。「決済機能を付けて」と言えばStripe連携コードまで生成してくれる。Firebase連携、Supabase設定、Vercelデプロイまで全てAIが案内してくれる。

MVP検証に開発者はもはや必須ではない。アイデアを持つ人が自ら作り自らテストし自らピボットできる時代になったのだ。企画者、マーケター、デザイナー、ドメインの専門家。誰でも自分のアイデアを製品にできる。

実際にすでに起きていることだ。非エンジニア出身の個人起業家がAIツールだけで売上を立てる事例が日々登場している。かつては技術系共同創業者が見つからず諦めていたアイデアが今では自分の手で市場に出ている。

「保守はどうするんだ?」

ここで必ず出てくる反論がある。

「AIが作ったコードはスパゲッティコードだ。」
「保守は誰がやるんだ?」
「拡張性、セキュリティ、アーキテクチャ…ソフトウェア工学を無視してはいけない。」

正しい指摘だ。すべて妥当な懸念だ。ただしその懸念が必要になるタイミングが異なる。

保守が必要なサービスはすでに成功したサービスだ。拡張性を考えるべきサービスはユーザーが殺到しているサービスだ。セキュリティ監査を受けるべきサービスはお金が動いているサービスだ。スタートアップの大多数は保守の段階まで到達できずに消える。完璧なアーキテクチャを備えクリーンコードで書きテストカバレッジ90%を達成したサービスが市場に無視されて消えていくのを我々は数え切れないほど見てきた。

つまりこういうことだ。ソフトウェア工学的完成度は「成功した後に」必要なものであり「成功するために」必ず先行しなければならないものではない。成功すればその時に開発者を雇えばいい。その時にリファクタリングすればいい。その時にアーキテクチャを再設計すればいい。シリコンバレーの多くのユニコーン企業が初期にはひどいコードベースで始まったことはよく知られている。FacebookもTwitterもAirbnbも初期のコードはめちゃくちゃだった。だが彼らは生き残った。生き残ってから直した。

重要なのはプロダクトを世に出すことだ。完璧なコードを書くことではなく顧客が求めるものを見つけ出すことだ。コード品質はその次の問題だ。

CSを捨てる話ではない

誤解しないでほしい。工学数学、コンピュータアーキテクチャ、オートマトン理論、コンパイラ理論、現代暗号学といった深く難しいCS領域が無用になったという話ではない。

むしろ逆だ。AIがコード生成を代行する時代だからこそそのコードがなぜそう動くのかを理解する能力がより重要になる。AIが生成したクエリがなぜ遅いのかを把握するには実行計画とインデックス構造を読める必要がある。AIが書いた暗号化ロジックが本当に安全かどうか判断するには暗号学の原理を理解しなければならない。AIが推薦したアーキテクチャが現在のトラフィックに耐えられるか判断するにはメモリ階層構造とネットワークプロトコルの知識が必要だ。

変わったのはこの知識が必要なタイミングだ。かつてはコードを一行書くにも変数とは何かループとは何かを知らなければならなかった。CS知識は「始めるための」条件だった。しかし今は「深めるための」条件になった。MVPを作って市場で検証する段階ではAIが代行できるがその製品を数十万ユーザーに安定的に提供するには結局基礎体力を持つ人が必要になる。

AIにプロンプトを投げられる人とAIが生成した結果を評価し改善できる人。その差を生むのがCS知識だ。消えたのではなく必要な位置が「入口」から「深層」に移動したのだ。

開発者の本当の危機:希少性の消滅

開発者が高い待遇を受けてきた核心的理由は一つだけだった。コードを書ける人が少なかったからだ。需要は爆発しているのに供給が足りないから自然と相場が上がった。

AIコーディングツールはこの供給不足を完全に解消してしまった。今やコードを「書ける」人はインターネットに接続できるすべての人だ。コードを書く行為自体はもはや専門技術ではなくなったのだ。

これは歴史的に繰り返されてきたパターンだ。印刷機が発明される前は文書を書き写せる写字生が貴重だった。タイプライターが登場してタイピストが専門職だった時代もあった。コンピュータが普及してこれらの職業はすべて消えた。技術が大衆化すればその技術を持つ人の希少性は消滅する。コーディングも同じ道を辿っている。

もちろんシニア開発者、インフラエンジニア、セキュリティ専門家は依然として必要だ。だが彼らが必要なのはサービスが軌道に乗った後だ。初期段階で開発者が担っていた領域の大部分をAIが引き受けるようになった。

顎の下まで迫った水

この文章を書いている私自身も例外ではない。

私は開発を学ぶ時、底の底まで掘り下げるのが好きな人間だ。原理を理解できなければ先に進めない。自作OSを実装するためにカーネルをゼロから作るような、そういうやり方で学んできた。そんな私がLLMの黎明期からずっと見てきた。GPT-2がぎこちない文章をつなぎ合わせていた時代から見てきたしGPT-3が「これは何か違う」という反応を引き出した時もコード生成のデモを見ながら首を横に振った。簡単な関数一つまともに書けないのに開発者を代替するだと?実際に業務で使ってみると限界は明確だった。文脈を見失いとんちんかんなコードを生成し少しでも複雑になると崩れた。印象的なデモと実務の間の溝は思ったより広かった。

このパターンは新しいモデルが登場するたびに繰り返された。華々しいリリース、驚異的なベンチマーク、熱狂的な反応。そして実務に適用してみると明らかになる限界。「すごいけどまだまだだ」が毎回の結論だった。正直に言えば開発分野をまるごと代替できるという見通しには懐疑的だった。コーディングは単にテキストを生成することとは次元が異なる問題だと考えていた。システムを理解し文脈を維持し数百のファイルが噛み合って動く構造を把握する能力はLLMが到達しがたい領域だと確信していた。

モデルが世代を重ねるにつれてその確信は少しずつ揺らいだ。コードアシスタントは徐々に使い物になっていき繰り返し作業では確実に時間を節約してくれた。「もしかしたら5年後には今とかなり違う景色になっているかもしれない。」その5年が4年に、4年が3年に縮まっていった。それでも比較的余裕があった。AIが補助ツールとして開発者の生産性を高めることと開発者を代替することは根本的に異なる問題だと考えていたからだ。開発者として働ける寿命はまだ十分にあると安心していた。

わずか2ヶ月前までは。

Claude Opus 4.6を初めて使った時、二つの感情が同時に押し寄せた。大変なことになった。そして心が躍った。開発者としての立場が揺らぐ危機感。しかし同時に会社で頼もしい同僚開発者たちと一緒に仕事をする時に感じるあの安心感を場所も時間も問わず24時間得られるようになったという興奮。信頼できる優秀なテクニシャンが何人も常にそばにいるようなものだった。以前のモデルとは質的に異なる何かがあった。私はもう成果物に対していちいち追加指示を出す必要がなくなった。以前はAIが生成したコードを丁寧にレビューし修正し再度指示するプロセスを繰り返さなければならなかった。今は違う。同僚のPRをレビューするように「この部分はこういう方向の方がいいんじゃないですか?」と一言伝えればそれで十分だ。意図を正確に把握し文脈を維持しながら私が提示した方向を反映した成果物が出てくる。時には私が考えつかなかったより良いアプローチまで提案してくる。

さらに背筋が凍ったのはコードレビューエージェントを活用した時だ。レビューガイドラインをドキュメントにまとめてエージェントを走らせると私よりも丁寧にコードをレビューする。変数命名の一貫性、エラーハンドリングの漏れ、潜在的なパフォーマンス問題、セキュリティの脆弱性まで。疲れていたり集中力が散漫な状態で見落とすものをAIは毎回同じ品質で拾い上げる。私が書いたガイドラインを私より忠実に守る存在。この逆説的な状況の前で言葉を失った。

2ヶ月前から本当の危機を感じている。これは漠然とした未来の話ではなく今毎日体感している現実だ。昨日より今日のAIの方が優れている。今日より明日さらに良くなる。このペースならば私が安心して数えていた3年という時間すら贅沢な期待かもしれない。開発者としての寿命がもうあまり残っていないという背筋の凍る思い。顎の下まで迫った水のようにいつの間にかすぐ目の前まで来ていた。

新しいゲームのルール

ゲームのルールが変わった。

かつては「開発できる人」が勝った。今は「何を作るべきか知っている人」が勝つ。技術ではなく問題定義能力が核心になったのだ。ドメイン知識、顧客理解、市場感覚。これらがコーディング能力よりはるかに重要になった。

病院で10年働いた看護師が医療現場の問題を誰よりもよく知っている。物流会社で働いたマネージャーがサプライチェーンの非効率を正確に指摘できる。この人たちがAIツールで直接ソリューションを作れるようになった。開発者を説得しスペックを伝えコミュニケーションコストを払うプロセスなしに。

技術の壁の向こう側に隠れていた数多くのドメイン専門家たちが自分の領域で直接問題を解決し始めた。彼らは問題を知らなかったのではなく「コードが書けなかったから」諦めていたのだ。AIがその壁を取り払ったのだ。

では我々はどうすべきか

この変化に対して開発者が取れる態度は二つだ。AIを拒否して「本物の開発者は自分で書くべきだ」と抵抗するか AIをテコにして自分の生産性を最大化するか。今この二つのグループの差は急速に開いている。

AIをツールとして受け入れた開発者は一人でかつてのチーム規模の仕事をこなしている。ボイラープレートコードに時間を費やす代わりにアーキテクチャを設計しビジネスロジックに集中する。繰り返しの実装はAIに任せて自分は「何をなぜ作るべきか」にエネルギーを注ぐ。こうした開発者の市場価値はむしろ上がっている。

核心はポジションの転換だ。「コードを書く人」から「技術で問題を解決する人」へ。コードは手段であって目的ではない。どんな問題を解くべきか理解しその解決策を設計しAIであれ手書きであれ最も効率的な方法で実装すること。これがこれから開発者に求められる役割だ。

では何に投資すべきか。ドメイン知識だ。医療、金融、物流、教育。特定の産業の問題を深く理解する開発者は代替されない。コーディングしかできない開発者はAIで代替できるがその産業のコンテキストを理解しながら技術的な判断まで下せる人はAIが代わることができない。技術とドメインの交差点に立つこと。それが新しい競争力だ。

コードは武器ではなくツールになった

開発者の時代が終わったということは開発者がいなくなるという意味ではない。だが「コードが書けるから特別だ」という時代は明確に終わった。

AI時代に生き残る人はコードをうまく書ける人ではなく解くべき問題を正確に知っている人だ。コードは今や鉛筆と同じだ。誰でも握れる。重要なのはその鉛筆で何を書くかだ。

開発者に問いたい。あなたの価値はコードを書く行為にあるのかそれともそのコードで解決する問題にあるのか。この問いへの答えがこれからの方向を決めることになるだろう。

コメントする