世界を動かす技術を、日本語で。

私はプログラマーであり、Copilotが生成したコードを承認するゴム印ではありません。

概要

  • AI導入 が進む現場での キャリア不安 の増加
  • AI利用強制 が新たな職場ストレスの要因
  • 評価基準の変化 によるエンジニアの役割変質
  • 創造性の喪失 と職業のアイデンティティ危機
  • 今後の プログラマー像 に関する懸念

AI導入が生むキャリア不安と現場の変化

  • Reddit投稿で語られる キャリア喪失感AI普及 への不安
  • わずか2ヶ月で「一生働く場所」から「転職検討」へと変化する現実
  • CTOやプロジェクトマネージャーによる AIアシスタント利用推奨
  • GitHub CopilotChatGPT など LLM の導入事例
    • 生産性向上のための 自主的利用 から 強制利用 へのシフト
    • 利用状況の モニタリングパフォーマンス評価 への反映

強制AI利用とエンジニアの役割変質

  • AI利用 が従来の「 バグ対応数」「コードレビュー」などの評価指標に追加
  • AI活用の強制 が「 自主性の喪失」や「 依存体質化」を招く懸念
  • プログラマーが LLM生成コードの承認者 =「 ゴム印」役への転落リスク
    • 責任の所在 は依然として人間エンジニア
    • バグや障害発生時の 責任転嫁問題
  • AIが仕事を奪う」という社会的ナラティブの強化

プログラミングの本質的価値と今後の懸念

  • 創造的作業 から「 承認作業」へのシフトによる 職業価値の低下
  • プログラミング が「 クラフト(職人技)」から「 作業承認」へ変質する危機
  • 職業アイデンティティ の喪失と モチベーション低下
  • 今後の エンジニア像キャリアパス の不透明化

コミュニティへの問いかけ

  • 現場の変化AI利用強制 についての意見募集
  • 今後のプログラマーの役割キャリア形成 に関する議論の必要性

Hackerたちの意見

AIの一番嫌なところは、無理に押し付けられる感じだよね。IDEでAIの補完機能をオフにしなきゃいけないこともあるんだけど、すごく間違ったコードのスニペットをめちゃくちゃ目立つ形で見せてくるから、すごく気が散るんだ。ブームが落ち着いたら、こういうツールの使い方ももう少し控えめになってほしいな。

一番イライラするのは、データ構造を考えてるときに、クラスのメンバーや型、関係性を深く考えてるのに、この熱心なやつがまるでおしゃべりな幼児みたいに、静かにしてることができないんだよね。

AIがオプトアウト方式だと本当にイライラする。オプトアウトは同意じゃないからね。

だから、エディタでは使わず、CLIのコーディングエージェントだけで使ってるんだ。

エージェントは素晴らしいよ(モデルがタスクを完了できる限り)。オートコンプリートのコパイロットは、ただの悪いUXに感じる。効果的じゃないし、思考を妨げるからね。

インラインの自動提案を無効にしたよ。まるで、毎文を間違った結末で中断するうざい人のテック版みたいだ。

「AI」のオートコンプリートは、頭の周りを飛び回る蚊みたいになってきて、常に追い払わなきゃいけない。もうすぐ全部オフにしちゃいそう、ただイライラするだけだもん。

VSでは、キーショートカットを使ったときだけ表示されるように設定できるよ。VSを使っている人向けに、17.14以降のバージョンで隠す方法を紹介するね。

一番最悪なのはコメントを書くときだね。「Xをする理由は…」ってコメントを書いても、全然合ってない。コードを読んでも明らかじゃないからこそコメントを書くのに、AIは全く関係ない一般的な理由を作り上げちゃうんだ。

わかるよ。AIの補完機能は完全に無効にしたよ。だって、いつも自分の考えを邪魔される感じがしてさ。新しい行を打つたびに、横から出てきて「これでいい?」って聞かれるのが本当にうざい。何度もその変更を拒否したのにさ。AIは使ってるけど、コピー&ペーストの流れを重視してる。少なくとも、コピーするものを見て、ペーストするコードを確認する必要があるからね。方法や関数名、全体のコードの構成は把握してるし。小さなコピー&ペーストの変更を頼むことで、消化しやすくしてるよ。ボーナスポイントとして、FirefoxのChatGPTでは、コンテキストが大きくなりすぎるとブラウザが遅くなって、ロックされることがある。それが、コンテキストウィンドウが大きすぎて、LLMが意味不明なことを言い始める前兆になってる。とはいえ、AIはプロトタイピングや自分の専門外の助けを得るための素晴らしいツールだよ。

確かに。これがAIコーディングとの唯一の関わり方だね。Visual Studioが更新されるたびに、全然コンパイルもできない、めちゃくちゃ間違ったコードがカーソルの前に出てきて、自動補完される準備が整うんだ。これがMicrosoftが数週間ごとに再有効化するほど重要だと思ってるものなんだから、これが最新の技術だと結論づけざるを得ないよ。今のところ、5行も打つ前に、またオフにする方法をググらなきゃいけないほど、感心したことはないね。

「ツールの使用を強制しなきゃ」っていう立場を擁護するなら、ツールが生産性を上げる可能性はあるけど、急な学習曲線があったり(継続的に使わないと生産性が上がらない)とか、ネットワーク効果(多くの人が使わないと誰も恩恵を受けられない)ってこともあるよね。今の状況に当てはまるかは分からないけど、みんなにDvorakレイアウトを強制するみたいなことをして、競争力を高めるのもアリかもね!

昔、Vimを使ってるのを見た上司がいて、ファイルを素早く移動して正確に編集できるのに感心してたんだ。彼は他の開発者(あまりいなかったけど、5人未満)にもVimを使わせようとしたけど、うまくいかなかったな。興味や情熱、モチベーションが大事だと思う。プログラミング自体と似てるよね。人を座らせてプログラミングさせると、上手くなる人もいれば、そうじゃない人もいる。

コーディングエージェントは「使うのが簡単だから、誰でもコードが書ける!」と「生産的に使うのは深いスキルで、みんなに使わせる必要がある」っていう面白い逆説にいるみたいだね。

プログラミングは政府のデスクワークじゃない。プログラマーと会社のインターフェースは出力だけであるべきで、プログラマーにその時々の「良い」と思うものを使わせることはできない。

Microsoftみたいなところで働いてる、子供がいる友達が心配だな。コパイロットの使用状況が追跡されてて、週ごとの基準を満たさないと次のリストラの波に飲まれるんじゃないかって恐れてるんだ。

結婚して子供がいる人でも、会社を変えることはできるよ。時には給料が下がることもあるけど、そうじゃないこともあるしね。もし彼らがその会社での生活に依存してるなら、それは彼らの責任だから、あんまり同情はしないかな。

だから、労働組合にまだ少し力がある国では、パフォーマンス追跡が禁止されているんだ。

それをうまくやる簡単な方法は、コードを書くたびに未読のドキュメントを何ページもスパムすることだね。コパイロットの使用は2/3くらいで、重要じゃないし、既存のコードをドキュメント化する方がLLMにとっては成功しやすいケースだと思う。

なんで悪い気がするの?彼らはそれにサインしたんだから。自発的に契約を結んだ人たちに対して、悪い気を感じる理由はないよ。個人的には、MSFTの株価が上がってほしいから、会社が株価を上げるために何をしてもいいと思ってる。

私の母国語には「悪魔に良いことをすると、地獄で返される」という言葉があるんだけど、英語に同じような表現があるかはわからないな。

「もし本当にLLMの効果に自信があるなら、なんで強制するの?自発的に使わせればいいじゃん。結果は出荷された製品の成果に現れるんだから。」オフィスに戻るのと似てるよね。もしそれが明らかにパフォーマンスを向上させる方法なら、強制する必要なんてないはず。チームは自分たちのパフォーマンスを上げるために、喜んでやると思うよ。

これは、ほとんどの人が仕事をしているときの目的だと仮定した場合の話だよね。仮にそうだとしても、その利点がリモートワークの利点よりも優れているとは限らないし。

RTOやLLMが生産性を向上させる効果について深入りしたくはないけど、支持者の主張を信じるなら、「オフィスにいるとコミュニケーションが増える」っていうのは、会話の相手もオフィスにいる場合に限って真実だと思う。みんなが同じ優先順位を持っているわけじゃないから、その恩恵を得るには強制する必要があるよね。同様に、多くの人は新しいツールを学ぶのが嫌いだし、自分の行動を変えるのも嫌がる。特に、楽しんでいることとビジネスにとって良いことが対立する場合はね。2025年になっても、25年間ずっとvimを使っている人もいるし、快適なものを変えるのは難しいよ。生産性に良いかどうか(vimがそうかは別として)に関わらず、開発者はツールにこだわりがあるから、新しいことを試すように説得するのは大変だと思う。自分の生産性を上げようとする人がいるという前提は疑問だし、もし「ビジネス」が彼らが自分の時間で探求して発見するのを待たなければならないなら、その従業員の仕事に関連する利益を逃すリスクがあるよね。

複雑だと思っていた仕事を軽減するツールを使うには、心理的な障壁があるよね。

僕は怠け者なんだ。オフィスの方が生産的でも、オフィスに行かなくていいから家で働きたい。もしAIツールが宣伝通りに機能してたら、使ってたと思う。そうすれば、僕のやることが減るから。でも、実際はそうじゃない。

チームは自分たちのパフォーマンスを上げるためにそれをやりたがるだろう。これは、チームが快適さや便利さよりもパフォーマンスを重視しているという前提に立っている。多くのチームは両方を大事にしてるし、どちらが勝つかは変わることもある。時間が経つにつれて変わることもあるしね。重要なのは、何に対してインセンティブを与えるか、そして特定のチームにとってどの方法が最も効果的かってことだね。

LLMが生成したコードは、結局他の人にレビューやメンテナンスの負担を押し付けることになると思う。最初は「見た目」は良さそうだし、表面的なテストも通るから、簡単にマージされちゃう。でも、その上に何かを構築していくと、基盤が急いで作られていることに気づくんだ。だから、多くの部分を再構築する必要が出てくる。使い捨てや探索的な作業にはいいけど、以前のLLM生成コードで生じたバグを「修正」するためにLLMを使うプロジェクトでは、地獄を見ることになるよね。だから、確かにそれを使える人Aにとっては「速度」が上がるけど、そのコードの上に構築しようとする人Bの速度が下がるのは、ちゃんと追跡されないんだ。まるで熱いポテトゲームみたいで、メトリクスをゲームにしたいなら、グリーンフィールドのコードに取り組むべきだよね(ただ、メンテナンス作業はパフォーマンスレビューではあまり好意的に見られないけど、今やコードの劣化のサイクルが加速している)。

これは「ワークスロップ」としてよく説明されるけど、見た目は素晴らしいけど、実際には仕事の受け手に本当の負担を押し付けるような仕事なんだ。

それはもっと組織の問題に聞こえるね。もしコードの保守性を気にしない従業員、例えば契約が終わったら二度と触れないプロジェクトに取り組むフリーランスなら、早くクソみたいなコードを書くインセンティブが常にあるから。以前は、安いテンプレートをコピーしたり、StackOverflowからそのままコードをコピペしたり、スタイルを気にせず、バインディングを自動生成するツールを使ったりしてた。昔、フリーランスが作ったウェブプロジェクトを引き継いだとき、大きなファイルに混ざったPythonとHTMLが入ってて、彼はサーバーコードのレンダーステートメントにHTMLページをそのままコピペしてたのを見たのを覚えてる。OSSにPRを出す多くの人も同じ。実際の貢献を気にせず、ただ履歴書に何か載せたいだけ。AIがこれを一般的にしてるかもしれないけど、これは新しい問題じゃなくて、LLMとは直接関係ないんだ。

ウェブサイトを作ってて、カスタムメニューを作ったんだけど、特に大したものじゃないよ。AIが何度か試した後に完成させてくれて、ウェブ開発は得意じゃないから嬉しかった。でも、しばらくしてから、メニューがスクロールしちゃうのに気づいて、親コンテナを拡張したいと思ったんだ。けど、AIがかなり変な実装をしたせいで、それができなかった。今のタスクはAIでは解決できない状態になっちゃった。自分のコードを理解してないみたいだから。結局、CSSやドキュメントを調べてみたら、すごくシンプルな解決策があることに気づいたよ。メンテナンスをするのは自分自身ってこともあるんだね。

これは、常勤スタッフがコンサルタントや契約者、あるいは転職が多い人たちと一緒に働くときの典型的な状況だね。新しいものがすぐに作られて、マネージャーは満足してお金を払うけど、契約者は消えちゃう。メンテナンスをしなきゃいけない可哀想なスタッフたちには地獄だよ。新しい形であっても、これは新しいことじゃないんだ。

戦うことにしたのは、戦術的な竜巻と同じように、そういう人たちに中間レビューでネガティブな評価をつけることだね。(チャットでLLMの出力をそのまま貼り付ける人たちが、もっと悪いと思うけど。)

サウスパークの映画を思い出すなぁ。彼らはMPAAからNC-17を何度ももらって、6回も再提出して、リリース直前にようやく妥協してRにしてそのまま公開したんだよね。

AIの一般的な問題の一つは、作業を「保存」しないことだよね。作業を生成する人から、それを評価する人に仕事を押し付ける感じ。

だから、確かに「速度」はAさんには上がるけど、そのコードの上に構築しようとしているBさんの速度が減少することは、ちゃんと追跡されてないよね。余談だけど、1990年代に母が働いていたドイツの企業が、世紀末にどんどん生産を中国に移していったことを思い出すよ。まだ存在するドイツの工場が修理しなきゃいけない失敗が、彼らのアカウントに載ってたんだ。上層部の視点から見ると、会計データだけを見れば、中国の生産はクリーンに見えた。もちろん、驚くことに(十分な努力があれば)、彼らは何年もかけてそれを機能させた。中国にとっては良かったね。物事の会計の仕方が物語を変え、その後現実がその投資に基づいて変わるんだ。

ちょっと前に、誰かがオープンソースプロジェクトに1000行以上の大きなPRをバイブコーディングしたって投稿してたんだよね。彼らはコードを読む時間がなかったから、テストを使って正しいことをしてるか確認したって言ってた。でも、実際にはレビュー期間がすごく長くて、メンテナがPRをチェックしてかなりの問題を修正してくれたらしい。だから、著者たちは自分の仕事をレビューする時間がなかったって言ってたけど、その負担はメンテナに回っちゃったんだよね。

ジュニアエンジニアも同じじゃない? 課題を出すと、ちゃんと動くものを提出してくれるけど、結局は頻繁に書き直さなきゃいけないんだよね。

もしテック企業がこんなにバカなら、競合するコードを単に出荷するだけで簡単に破壊して奪うことができるはずだよね。そういう意味で、著者はソフトウェア業界の未来を非常に明るく描いている。特に才能がなくても成功できるような世界をね。

「…創業者が特に才能がなくても大成功できる世界。」今はまさにそんな感じだね。「もしテック企業がこんなにバカなら、ただ出荷するだけで簡単に壊して奪えるはずだ。」それが今の状況だよ。コードの劣化問題は、今後数年でさらに大きくなるだろうから、やっと「動作する競合コードを出荷する」という文が完成できるようになると思う。だけど、この大混乱を片付けるのに、また人々が深い知識もなしにAIを無思考で使うことになるんじゃないかと心配してる。「一般的に、あっちの丘の向こうで何かをする」っていう感じで。

誤ったAIのコードベースを救うのは、契約仕事としてかなり儲かると思うよ。多くの非技術者が、自分たちが悪い道を進んでいることに気づかずに、製品を意外と進めちゃうからね。非技術的な創業者が良い技術者を雇えないと、もうすでにそういうことが起きてる。開発者にとって驚くべきことは、クソみたいなコードベースが問題になる前に、何百万ドルも稼いでしまうことだよ。頑丈なソフトウェアを作るのが大好きだけど、給料と良いコードよりも、何百万ドルとクソみたいなコードを選ぶかもしれない。

そうだね、これは馬鹿な人たちのために働いている場合だけ悪いニュースだよ。残念ながら、多くの人がその状況にいる。混乱なんて忘れちゃっていいよ。メeritocracyは死んだ、ピーターの法則万歳。

残念ながら、会社はどうしてもクソみたいなソフトウェアを使わせるんだよね。マイクロソフトTeamsとかさ。

「もし彼らがLLMの効果に本当に自信があるなら、なぜ強制するの?ボランティアにしておけばいいじゃん?」この質問に答えると、投資を正当化するためだよ。本当に、LLMソリューションはめちゃくちゃお金がかかるし、すべての投資は経営レベルで正当化される必要がある。それが強制している理由だよ。もっと大きな問題は、生成されたコードをちゃんと読まない「開発者」がたくさんいること。だから、レビューセッションで開発者が何が起こっているのかわからない、なぜコードが特定の動作をするのか理解できないことになる。クリーンコードの原則についても、まだ話してないしね…。

いくつかの指標(コミット数、コード行数、バグ修正の遅延)では、私は自分の組織で最も生産的なエンジニアの一人だよ。周りの人たちは、私が開発ルーチンでLLMを全く使っていないことに驚いてる。できるだけ頑張ってるよ。プログラミングのスリルが大好きだし、チームの足を引っ張ってるわけじゃないけど、シニアがAIをあまり使っていないのが悪いっていう脅しもあったりする。私のスーパーパワーは、維持しているコードベースを常に頭に入るように細かく整形していることだよ。それができるのは、すべてに手を加えてきたから。暇なときには、アイドルリファクタリングをして、しばしばそれを捨てて、もっと暗黙のコンテキストを構築するアイデアを探ってる。LLMのコンテキスト管理において、何か能力のあるものに到達するためには世代交代が必要だと思う。いつかそこにたどり着くことは間違いないけど、その日が来るときは絶対に落ち込むだろうな。アーキテクチャの問題を解決するのが私の仕事で、ソフトウェアを実装するのが報酬なんだ。これが毎日目を覚ますのが嬉しい理由だよ。私はソフトウェア開発の世界では少数派だってことを受け入れてる。

でも、その指標は生産性のレベルを示してるわけじゃないよ。誰にも価値を提供しないまま、毎日何千行ものコードを何百回もコミットすることだってできるからね。

私はプログラマーで、Copilotが生成したコードを承認するゴム印じゃないんだ。それって、ただのあなたの意見じゃない? まあ、騒いでる理由がわからないけど。どっちかっていうと… - LLMがすごくてプログラマーを置き換える。やった、自動化! それを応援するよ! 働く代わりに、人類は釣りでもするのかな。 - それとも、LLMがそんなに良くなくてプログラマーを置き換えない。やった、仕事がある!

人々がダッシュボードを見守るだけの簡単で楽な監視役を確保できるなら、多くの人がそれを選ぶだろうね。組織にとっての鍵は、こういう役割を作らないことだね。