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

アマゾンで、一部のプログラマーは自分の仕事が倉庫作業に似てきたと語る

概要

  • 産業革命以降、労働者は機械による職の置き換えを懸念
  • AIの普及 により、ソフトウェアエンジニアの仕事の質に変化
  • 単純作業化・スピード重視 の傾向が強まる現状
  • 生産性向上 を重視する企業の姿勢
  • AmazonやMicrosoft など大手企業の具体的な動向

AIと労働の変質:ソフトウェアエンジニアの現場から

  • 産業革命以降、機械による労働者の代替への不安
  • 自動車製造、食肉加工、秘書業務 などでの技術革新の歴史
    • 職務の分解 による単純作業化
    • 熟練工から流れ作業 への移行
    • 個人秘書からタイピスト集団 への変化
  • 労働者による スピードアップ、作業強化、仕事の質低下 への不満
  • Jason Resnikoff による歴史的分析

AIの普及とソフトウェア開発現場の変化

  • AIが広く導入 されている分野としての コーディング
  • ホワイトカラー職 における失業懸念
  • 現時点での実際の影響は 職の質変化 が中心
    • 単純作業化思考の機会減少
    • 作業ペースの加速
  • 企業側の意図
    • 生産性向上 を目指す姿勢
    • AIアシスタント(Copilotなど) による生産性25%以上向上との研究結果
  • Amazonの事例
    • ジェネレーティブAI への大規模投資
    • CEO Andy Jassy による株主向け書簡でのAI活用強調
    • 顧客要望への迅速対応 を重視
    • コーディング分野でのAIによる「規範の変化」 への言及

まとめ:AI時代の労働の課題と展望

  • AI導入 による 大規模な失業 は現時点では限定的
  • 仕事の質や働き方の変化 がより深刻な課題
  • 単純作業化・スピード化 による 仕事のやりがい低下 リスク
  • 企業の生産性重視労働者の満足度 のバランス課題
  • 今後のAI普及 がもたらす 新たな労働環境 への適応力

Hackerたちの意見

https://archive.ph/HVZRL

面白いね: > 「コードを書くのは、コードを読むより楽しい」と言ったのは、長年のプログラマーでブロガーでもあるAIファンのサイモン・ウィリソン。彼は他のプログラマーたちの反論を代弁している。「コードレビューをしなければならないと言われると、それは決して楽しい仕事の一部じゃない。これらのツールを使っていると、それがほとんどの仕事になってしまう。」 > コードを書くことから読むことへのこのシフトは、エンジニアたちに自分の仕事の傍観者のように感じさせることがある。アマゾンのエンジニアたちは、マネージャーがAIを使ってソフトウェアの問題に対する解決策を提案する1ページのメモを書くように促していると言っていて、AIは散らばった考えからラフドラフトを生成できるようになった。 > 彼らはまた、作成したソフトウェア機能をテストするためにもAIを使っていて、この退屈な仕事は、彼らがコーディングについて深く考えることを強いている。

これについて最近考えてたんだ(LLMとそのコードのバグについて長時間話した後に)。最初の頃はコードを書くのが楽しかったけど、今はバグを直すのが実際に楽しい部分だと気づいた。もしかして俺は変わってるのかもしれないけど、バグを追いかけるのはパズルを解くみたいな感じだ。新しいコードを書くのはちょっと楽しいかもしれないけど、特に自分がよく知ってる分野では、今はほとんど退屈だ。ウェブフォームの別のバージョンを書くより、何でもやった方がいい。フレームワークの流行に合わせて、JavaScriptウィジェットを別のウィジェットに繋ぐのももうやりたくない。だから、ある意味でLLMを使うことでコーディングの楽しさが戻ってきた。退屈な部分をAIがやってくれるから、面白い問題を解決できるんだ。

雰囲気的には、こいつらはもっとネガティブに聞こえるな。

本当にLLMベースのツールが開発者をそんなに生産的にするのか、それとも組織が少ない人数でやっていけることに気づいたからなのか。特に大手テック企業内部では、チームが驚くほど生産性を上げたという話はあまり見かけない。今のところ、ちょっとした生産性の向上があるけど、それが投資を補うほどではなく、物語を生かすにはギリギリ足りている感じ。

[フラグが付けられました]

この物語が成り立つためには、アマゾンの経営陣が短期的な利益を長期的な仕事の質よりも重視していると信じなければならない。

かなりの部分は認識の問題だね。ソフトウェアを書くことは長い間、ある程度難しいとされていて、賢い人がやるべきだと考えられていた。AIはこの認識を変えて、コーディングは誰でも簡単にできる低レベルのタスクとして見られるようになってきた。確かに、ソフトウェアを書くことは工場の仕事に近づいていて、今は知的な報酬が少なくなっていると思う。

組織は長い間、何か信頼できるものを求めて「デスキリング」を好んできたよね。手続きが煩雑でも、副作用があっても、才能ある人が一人でできることを三人必要にしても、信頼性があるからって。たとえそれが平凡でも、確実性があるからね。こういうやり方が長期的には彼らの破滅や無関心につながるかもしれないのに。

コードベースのメンテナンス性について考えちゃうな。 vibe-codingが複雑なコードベースを徐々に「ビットロット」させるのに時間がかかると思うんだ。抽象化や微妙なバグがあって、徐々に堅牢性が失われて、メンテナンスが難しくなって、新機能の追加も大変になる。だから、企業は今は出力が増えてるように見えるかもしれないけど、後で機能やバグ修正にかかる負担が増えてるのを見逃してるかも。

企業は常に新しいツールや技術から生産性の向上を得ようとし、すぐにそれを全員の新しい標準として確立しようとする。これはイライラするし、シジフォスのように感じる。前に進むことができないように思える。新しいツールを素早く学び、同僚よりも上手に使えるようになって、少しだけ前に出ておくのがゲームなんだ。でも、これを永遠に続けなければならないことを知っておいてほしい。自分のために働くか、利益を得られる環境で働くか。でも「自分のために働く」というのは、AIに関しては同じくらい専門的な他の人たちと直接競争することになるから、それは解決策にはならないかもね。

もう一つのゲームは、生産性向上の利益をもっと平等に分配することだね。例えば、ヨーロッパでは2000年代初頭まで、技術の進展に応じて労働時間が短縮されてた。でもそれ以降、労働者からの反応は、みんなを忙しくさせるためにますますひどい仕事を要求することみたいだ。

兄弟、マジで笑える。君はここまで来てるのに、マルクスのことを言ってる(彼が言ってたことそのまま)のに、明らかな結論(労働組合)には行かずに、さらに自分を孤立させようとしてる。人々がどれだけ洗脳されてるか、本当に驚きだよ。改善なんて絶対にないって100%確信してる。

でも、これを永遠に続けなきゃいけないってことを知っておいてね。自分のために働くか、自分が得られる環境で働くか、雇用主じゃなくてね。社会の一員として、同じように感じている他の社会のメンバーを見つけて、一緒に雇用主に要求を出すことができるんだ。そうすれば…知ってるでしょ…搾取を止めさせることができる。 - これが週末ができた理由だよ: https://www.bbc.com/worklife/article/20200117-the-modern-phe... - これが8時間労働制ができた理由だよ: https://en.wikipedia.org/wiki/Eight-hour_day_movement - これが子供たちを工場から解放した理由だよ: https://en.wikipedia.org/wiki/Child_labour でも、いつでも他のSEと競争して、上司に媚びることもできるよね。みんなが8時間の最低限の労働をしている中で、なんで12時間働いて、週末も働かないの?それでも全然いいよ。株主価値を生み出すことは、社会の幸福にとってすごく重要だからね!/s

これには3つの道しかない。まず1つ目は、グローバルなコードベースが不安定なゴミの山になって、最終的には重要なインフラが崩壊するような自己引き起こしたY2K事件が起こること。経験豊富な開発者が天文学的な報酬で再雇用されて、全てを元に戻すことになるかもね。それからみんなはもっと慎重になるだろう。(多分。)2つ目は、AIがちょうど良いレベルで、物事がまあまあな感じで進むこと。開発者の地位や給与はゆっくり下がり、利益は増えるけど、信頼性や品質は下がっても深刻な問題にはならない。3つ目は、AIがコーディングが得意になって、人間の開発者よりも賢くなることで、ゴミの山の特異点が回避されること。AIがエッジケースや戦略を理解したスマートな仕様を作れるようになって、それに基づいてクリーンなコードを実装できるようになる。もしこれが起こったら、今の開発の概念は終わりになるだろう。コードベースの概念が時代遅れになって、インターネット全体が動的で適応的になり、要求や条件が進化する中でリアルタイムでコードが生成されるようになる。これがいつかは起こると思うけど、今のLLMはそれには程遠い。だから今は、CEOたちが起こっていると思っていること(オプション3)と、実際に起こっていること(オプション1)との間にギャップがあると思う。ゴミの山の特異点が数年内に起こる可能性はかなり高い。でも、もしまともな経営が残っていれば、オプション2に舵を切ることができるかもしれない。

これからの変化を考えると、もうすぐ引退できるのが嬉しいよ。90年代に始めた頃は、ソフトウェア開発はもっと自由で、実験や創造性に時間をかけられたんだ。今はすべてが管理されていて、まるで組み立てラインみたい。何週間も中断なく作業できたのに、今は進捗を報告しなきゃいけないし、自分が何をしているのかを正当化しなきゃならない。面白い仕事をしている開発者はいると思うけど、そういう機会はどんどん減っていく気がする。ある意味、仕方ないよね。自動化が多くの仕事を無意味にしたり、苦痛にしたりしてるから。ソフトウェア開発者が自動化の大きな要因だから、自分たちの仕事を自動化してしまうのも驚くことじゃないよ。

私も90年代に始めたから、あなたが言うように進化してきたのには同意するよ。どこで働くかによるけど、JIRA主導の厳密に管理された開発はすごく人気みたいだね。でも、90年代や2000年代、2010年代が栄光の時代だったとは言えないな。ちょっとノスタルジアバイアスがあると思う。4年間働いた仕事を思い出すと、いい部分をリストアップできるけど、平凡なことやネガティブなことを忘れている気がする。とにかく、今の仕事はまだ好きだよ。克服できる難しい課題もあるし、頼りにしてくれる人もいるし、新しい技術を学ぶこともできる。一般的に良いことだよね。

エンジニアの仕事を自動化するのではなく、管理をパノプティコンAIで置き換える感じ。

90年代から始めたけど、ソフトウェア開発はどんどん厳しく管理されるようになって、まるで組み立てラインみたいになってきた。始めた頃は、何週間も何ヶ月もほとんど中断なしで作業できた。実験やクリエイティビティに十分な時間があった。今はすべてがタスクベースで、常に進捗を報告しなきゃいけない。そう、進捗を「報告」する「スタンドアップ」で、理解できない人に24時間後のために適当なことを言っておくのが、仕事の中で一番無駄で不快な部分の一つだよね。

この業界がどれだけ未熟かに驚かされるよ。大企業で巨大なコードベースに関わったことがある人なら、「新しいコードを生成すること」が仕事のほんの一部だって知ってるはず。AIが急成長して、突然、経験豊富な人たちが90年代のようにKLOCについて話してるのを見かける。

同意だね。コードを書くのに使う時間は多分20%くらい。残りは要件収集、設計、テスト、スケジューリング。もしその20%が今の半分の時間で済むなら、テストやドキュメントを書く時間ができるかも。

そうだね、私の観察から言うと、今のコードが書けない人たちだと思う。彼らは新しいパラダイムや技術を本当に理解してない。だから、Copilotが多くの人にPOCを作ってすぐに本番に出せるようにしたけど、エッジケースやHAについてあまり考えずに済んでる。そういう人たちがそれぞれの会社で提唱者になって、みんなが生産性向上についての不正確な主張を信じてる。GoogleのCEOが「Googleで生成された新しいコードの30%はAIによって書かれている」と言っているのを盲目的に引用する人たちも同じ。利害関係が大きい会社を盲目的に引用すれば、賢く見えるってわけだ。これが今の状況だよ。これらは素晴らしいツールだとは理解してるけど、周りは狂ってるだけに見える。これらのツールを日常的に使ってる人はそれを知ってるし、どういう意味か、どれだけ誤解を招くかも知ってる。でも、みんな使わなきゃいけないって言ってるしね…。

私たちの分野がどれだけ未熟かに驚かされるよ。大企業で働いたことがある人や巨大なコードベースに関わったことがある人は、「新しいコードを生成する」ことが仕事の小さな部分だって知ってるよね。まさにその通りだけど、さらに言うと、大企業で働いたことがある人は、他の「新しいコードを生成しない」部分が通常かなり非効率的だってことも知ってる。AIがそれを変えるとも言えるね。だから、無限の会議での抽象的な話が減るか、そういうことに関わる人が少なくなるだろうね。

LLMを使ったプログラミングの利点やパフォーマンス向上について、根本的な誤解があると思う。コードの質を犠牲にせずに、すでに何をしているかを知っている 場合に限って、コーディングがより生産的になるんだ。つまり、経験豊富なプログラマーには大きな可能性があるけど(より多くの良いコードを生み出せる)、LLMを使ったコードモンキーの軍団で彼らを置き換えても、良いソフトウェアは期待できないってこと。

これを何度も読んでるけど、ガウス分布を無視してる気がする。君のラインはどこ?何がどこで十分なの?どのレベルが「すでに知っている」ってことなの?今、スリランカの2年生のコンピュータサイエンスの学生たちと一緒にウェブアプリを作ってるんだけど、彼らは月に約1000ドルを請求してる。友達のSREが毎週コードを見てくれてるけど、質が高くて、モダンで、スケーラブルだって言ってた。ちょっと遅いと思うけど、速さは求めてないからいいんだ。

コードモンキーの軍団をLLMで置き換えて、良いソフトウェアを期待してはいけない。「良い」ソフトウェアは狭いユースケースでしか重要じゃない。DeloitteやAccentureみたいな会社がどれだけお金を稼いで、契約を持っているか見てみて。確かに、AAAタイトルのレンダラーを適当に作ることはできないけど、F500の大半は品質の概念がなく、気にもしないし、知識もないんだ。

私にとっては、クリプトやVRみたいなハイプトレインの一部に感じる。最近、バイブコードされたコードベースのバグを修正するという(不)快な経験をした。結局、無秩序なビジネス問題がコードに変換されただけで、構造が全くないんだ。改善はすごく狭いパッチとして実装されて、複雑で無秩序なコードになってしまう。一方で、人間の開発者はもっと一般的なパターンを抽出しようと一歩引くかもしれない。コンテキストウィンドウの限界に達すると、基本的に詰むんだ。LLMはパッチを追跡できなくなるからね。英語(またはすべての人間の言語)は、コードにやってほしいことを正確に表現するには不十分で、もっと重要なのは、シニア開発者が書くコードには多くの時間と経験が必要だってこと。もしそのシニア開発者に「バイブ」コードを書かせたいなら、もっと正確にプロンプトを出せる方法が必要だし、過去の失敗や経験からの学びをすべて表現できる必要がある。それはすごく重いよ。覚えておいて、これは「なんでこう書いたの?」に答えるのとは逆だからね。これは「これをやらないで、これをやる。ただし、この非常に特定の文脈で」っていう無限のリストなんだ。

反論: AIは、私が通常できないところをリファクタリングするのに役立ってくれたよ。例えば、30か所に少し違った形で存在する共通の構造を抽出したり、特定のパターンの可能性を提案したりね。バイブコーディングの問題は、もっと行動的なものだと思う。自分でコードを書くのを避けるために流行に乗る人は、長期的なアーキテクチャやクラフトマンシップについて考えているわけじゃないからね。これは怠惰を助長するものだよ。

正直なところ、実際に稼働しているコードの多くは、パッチだらけのコードスニペットのごちゃ混ぜなんだよね。でも、悲しいことにCPUが強力すぎて、なんとか動いちゃうんだよね。

その気持ちわかるよ。個人的には「シニアコード」でトレーニングされたLLMにもう少しお金を払ってもいいな。

ハイプって、過剰な期待を持たせて実際には期待外れってことだよね。AIはすごく新しくて、印象的で、すでに色々変わってきてる。これがどうしてクリプトやVRと似てるって言えるの?

英語(またはすべての人間の言語)は、コードにやってほしいことを正確に表現するには不十分だよね。まさにその通り。だから、これが完全に循環する気がするんだ。業界では何度かこのサイクルを見てきたよね。「形式言語は難しい、英語で話せればコンピュータが理解できるといいな」→「自然言語は曖昧で正確じゃない、形式言語を使えばコンピュータが正確に理解できるといいな」って。永遠の希望は、いつか自然言語でプログラムのような正確なコミュニケーションができるようになることだけど、それは無理だと思う。なぜなら、知的な人同士ですら自然言語で明確にコミュニケーションできないから。法律なんて、その曖昧さのために議論する職業があるくらいだし。じゃあ、機械を正確に制御する希望はどこにあるの?将来の開発者は、コンパイル前にプログラムの意味を議論しなきゃいけない弁護士みたいになる運命なのかな?もしそうなったら、かなり悲しいな。

他の誰かがGitHubに保存したコードをコピーして、自分のニーズに合わせて著作権やライセンスの通知を削除するだけで、ソフトウェア開発を劇的に加速できるよ。ただ、そのやり方だと、直接それをやっているところを見つかりたくないから、ちょっと悪徳なオフショア企業を雇ってそれを洗浄してもらう必要がある。もしくは(もっと早くて安く)悪徳な「AI」を使って洗浄することもできる。Googleはあまりにも品があったから(そして快適な市場ポジションがあったから)、悪徳な「AI」ゴールドラッシュを始めることはなかったけど、今は多くの新興企業が、自動化された大量著作権侵害を利用して金持ちになる絶好のチャンスを見ているよ。

どの業界で働いているのか気になるな。StackoverflowやGitHub主導の開発で解決したい大きな問題に出くわすことはめったにないよ。「コードがない」っていう制約は決してなくて、「どんなコードが必要か分からない」っていうのが多いんだ。

そうだね。ChatGPTは色々な意味で無責任だったし、サム・アルトマンの肩に全ての責任がかかってる。彼は色んなスキームに関与しているって言われてるし。

Googleはクラスが多すぎたのかな?彼らはこのLLMの話が出る前から、何年もサイトのコンテンツをスクレイピングして、検索結果で直接質問に答えてクリックを稼いでなかったよね。今回は単にGoogleが遅かっただけだと思う。

そういうことなら、未来はもっとプライベートなコードになるんじゃない?製作者たちは、公開することがもう自分たちにとって得策じゃないって気づいて、グループ内に留めるようになるんじゃないかな(漏れたりしなければだけど)。

誰かがGitHubに保存するほど愚か/理想的だったコードをコピーして、著作権やライセンスの表記を取り除いて、自分のニーズに合わせて適応させるだけで、ソフトウェア開発を劇的に加速できる。それがAIを使っている人たちの目的じゃないよね?典型的な使い方は「[ビジネスの問題]を解決するプログラムを書いて」って感じ。そんな特定のビジネス問題を解決するコードベースがあるとは思えない。

誰かがGitHubに保存するほど愚か/理想的だった それ、若い頃の自分を思い出させるな(まだ30代前半だけど)。オープンソースはビジネスモデルじゃないって、みんなでちゃんと伝えようよ。大企業がそれを推進してるのは、ただのタダ働きを求めてるだけなんじゃない?もっと力強く伝えられないかな?短期的にはオープンソースの貢献が減るかもしれないけど、正直、長期的には業界全体がもっと健康的になると思う。

アイロニックだけど、何人かの人が「大企業が自分たちの公開されているコードを、クレジットなしでコピーしてくれればいいのに」って言ってるのを聞いたことがある。自分たちの過剰設計で非効率なソリューションを考えるより、もっと時間と労力をかけずに済むのに、それを元の人たちにユーザーとして強要することになるんだよね。

作者はただ今このストーリーを書きたかっただけなんじゃないかな。ここ10年の間に、アマゾンの開発者を何人か見つけてこの主張を裏付けることができなかった時期ってあった?