プログラミングは今もひどい
(stvn.sh)- 「AIが仕事を奪う」のではなく、経営陣の強欲と短期成果主義が業界を壊している
- テック業界の実際の仕事は、整った計画や完璧な生産プロセスではなく、進路を見失った船や燃える機材、失われた知識、役に立たない自動化が入り混じったものに近い
- 組織はAIを生産性向上の証拠のように掲げ、人員削減と判断の外注化を正当化し、ジュニアがシニアへ成長する徒弟的なパイプラインまで断ち切ってしまう
- Goodhart’s Law、速度指標、ストーリーポイント、テストカバレッジ、DORA指標は実際の品質や判断を置き換えられず、バグを見つける人が追い出されればコードベースは脆くなる
- 2016年から毎日午前3時に動くcron jobと、
# DO NOT CHANGE!!! Ask Benのような運用知識はSaraのような人が支えているが、組織はその事実すら知らない - 核心の問題はAIではなく強欲であり、Saraがいなくなれば、3万人規模の会社の給与支払いを支えていた見えないシステムも一緒に崩れる可能性がある
Sorry Peter - 2014年にPeter Welchが投稿した「Programming Sucks」に続いて
AIがもたらした変化より先に崩れたソフトウェア組織
- 誕生日パーティーでは「AIに仕事を奪われるのが心配じゃないのか」という質問を何度もされるが、テック業界の仕事はもともと外から想像されるような整った計画や完璧な生産プロセスではなかった
- 実際の仕事は、進路を見失った船、燃える機材、仕組みを知る人がいなくなったシステム、役に立たない自動化が入り混じったものに近い
- CEOは、AIで友人Jaredのチームの生産性が上がり半分を解雇できたという話を持ち出すが、現場ではそれが自慢なのか脅しなのか判別しにくい圧力として機能する
- 「AIが仕事を奪う」という恐怖より大きな問題は、組織がAIを口実にして人員削減と判断の外注化を正当化していることにある
解雇されたのは現在のアウトプットではなく未来の熟練度
- かつてエンジニアだったリーダーたちは、なぜコードレビューが必要だったのか、ジュニアの最初のPRがシニアに厳しくレビューされながらも学びにつながっていた過程を知っていた
- 2024年になって突然コードレビューと徒弟的な成長をなくすと決めたのではなく、滑走路が短くなり、CFOのスプレッドシートとCEOのAIデモへの信頼が組織の意思決定を押し切った
- CEOはオフサイトで「エージェントが14分で機能全体を書くデモ」を見て、Q2までにエンジニアリング組織の30%を削減できると取締役会に話す
- リーダーたちは、ジュニアは適応して再教育を受け、別の場所に収まり、シニアが抜けた穴は吸収され、エージェントが空白を埋めるだろうと自分たちを納得させる
- しかしジュニアの価値は目先の生産量ではなく、やがて「どこに死体が埋まっているか」を知るシニアエンジニアになることにあった
- アウトプット最適化は徒弟的な成長を消し去り、数年後にシニア不足が起きても、その原因を覚えている人はいないだろう
指標とツールは判断を置き換えられない
- 過去に単純な答えを売ってきたリーダーたちの後始末をしてきたエンジニアなら、数字が実際の品質を保証しないことをすでに知っていた
- Goodhart’s Lawは、速度指標、ストーリーポイント、テストカバレッジのように、非エンジニアへ「仕事がうまく進んでいる」証拠として渡された数字を壊してきた
- DORA指標でも、判断よりツール追加が先に立つとき、デプロイの安定性がどう揺らぐかはすでに示されていた
- バグを見つけられる人たちが追い出されたり、バグを見つける仕事をやめる方法を学んだりすれば、コードベースは脆くなる
- それでも人々は名簿に署名した。代わりに失うのは仕事であり、その仕事は住宅ローン、学費、ビザ、あとで直せると信じたい自分自身につながっていたからだ
- 「あとで」は来ないし、誰もがそのことを知っていた
見えない運用知識が会社を支えている
- どこかのインフラには、2016年から毎日午前3時に動くcron jobがあり、それが正確に何をしているのかわからなくても重要な仕事をしている
- ファイル先頭のコメントには
# DO NOT CHANGE!!! Ask Benと書かれているが、Benにはもう連絡できない - この4年間、ロードマップ策定のたびに「レガシーcronのモダナイズ」が候補に上がったが、一度も選ばれず、その項目は直接2回削除されてもいる
- そのジョブを実際に生かしているのはSaraであり、組織はSaraがその仕事をしているという事実すら知らない
- Saraは50代半ばで、本社から3ブロック離れた小さなオフィスで働いていたが、コスト削減のためにオフィスが閉鎖された後は、船底の船室にある机とネットワーク接続を見つけて働くようになった
- Saraは1998年からBenにメンタリングを受けており、Benが亡くなった後にはその葬儀にも出席したが、組織はそのことも知らない
- ジョブが定期的に止まると、Saraに電話が来て、彼女が問題を確認し、もう一度押し込んで再試行させる
- そのジョブは時の中に失われたモジュールに依存しているが、SaraはBenの机で見つけたUSBスティックにそのコピーを持っている
- どんなエージェントもそのモジュールには触れておらず、これからも触れられないだろう
Saraは代替不能なパイプラインの最後の形
- Saraは単に安全な人なのではなく、組織の移行過程が消し去った組織知が55歳の身体で歩いている形そのものだ
- SaraはBen、1998年、USBスティックへと続く徒弟的成長の結果であり、まもなく人を育てるパイプラインそのものでもある
- Saraがいなくなるとき、Saraのような人を生み出していたシステムはすでに3年前に死んでいるため、後任を雇うことはできない
- そのcron jobは給与を支払っているが、組織はこの事実も知らない
- Saraがいなくなりcron jobが死ねば、3万人規模の会社は全員に給与を支払う方法をもう一度探さなければならない
- そのとき必要な答えは「スプーンを持った人」を雇うことだが、組織はすでにそういう人を生み出せないようにしてしまった
結論: 問題はAIではなく強欲
- パーティーの質問への答えは「AIが私たちの仕事を奪った」ではなく、強欲が奪ったということだ
- その強欲は、工場をバングラデシュへ移し、コンゴのコバルト鉱山に奴隷を残してきたのと同じ強欲であり、今回はAIという新しい仮面をかぶっている
- Shopifyストアを作るおいには別の仕事を勧めるが、少なくとも自分の人生を壊しているのがロボットだと装う必要は少なくなる
- Saraだけは例外のように残っている。彼女は下の甲板でUSBスティックを握っており、組織は彼女がそこにいる事実を知らないから、まだ見つけられていない
- ほかの人たちは上の甲板でひっくり返ったマストと燃え上がる人形を見ながら、何がどう動いているのかもわからないまま立ち尽くしている
7件のコメント
2014年に有名だった記事「Programming Sucks」
12年が過ぎ、現在を反映した「Programming Still Sucks」
元の記事は「プログラミングそのものの混沌」について語っていましたが、
この記事はAI時代において「経営陣の強欲」がその「混沌をどうさらに悪化」させたのかを扱っていて、あわせて読むと面白いですね。
原文も載せておきました プログラミングはひどい [2014]
読んでいるうちにPTSDになりそうですね。
私もこの部分を読んでいるのですが、ぞっとしますね 🥲
うう、本当に簡単じゃありません……
去年、うちを去った方々の経歴を合計すると50年…。年俸は5倍…。はぁ…自分も辞めないといけないのに…。
Lobste.rs の意見
最近業界全体について感じていることを、かなり正確に要約してくれている。まだ比較的ジュニアだけど、会社が有能に見えようとするより、とにかく速い成長を選ぶ流れは十分に見えている
使っている道具はエディタ以外ほぼ全部不安定で、変化も激しく、手に馴染ませるのがほとんど不可能だ。どのプラットフォームも半分もできていないように見えるし、新製品の大半はほとんど役に立たなそうで、品質より速度を重視する空気が強まっていて、ソフトウェアエンジニアリングそのものへの愛着が薄れてきている
それでも本気で気にかけている人が多いのは分かっている。生成AIを多く使う人の中にも、成果物を気にする人はいる。ただ、流れがあまりにも明確で、仕事を失うのが怖いというより、情熱と気にかける力を失うのが怖い
たとえば自分たちのコミュニティはソーシャルメディアではなく地域での告知をしている。この前の Seattle の集まりには Walter Bright を招いて、カフェが満員すぎて人を断りそうになった
AI を落ち着いて扱っている場としては Zig Day もありそうだ。他のコミュニティも知りたい
こういう経験は大規模言語モデルが出てくるずっと前からあった。会社はベンチャー投資の呼び込みによく見えるとか、何段階も上の何千キロも離れた誰かが見るスプレッドシートの見栄えがよくなるとか、そういう理由で人数合わせの過剰採用をしてきた
あまりに多くの「テック」企業が、盲人が盲人を導くような状態だった。15年前に大企業で一緒に働いていた人が、ある日出社したら自分のチーム全体が解雇されていて、誰に報告すればいいのかも分からず、しかも誰も彼にマネージャーがいないことを知らなかった。彼は6か月間出社してインターネットを見て過ごし、飽きて新しい仕事を探した
要するに、プログラミングがひどいのではなく、会社がひどい
船のたとえは、ダクトテープと接着剤でソフトウェアを作るやり方や、陽気だけど役に立たない AI アシスタントとのやり取りをかなりうまく捉えている。でもタイトルと教訓は自分の経験とはまったく一致しない。シニア開発者として毎日プログラミングを楽しんでいるし、全然ひどくない
GitHub がしょっちゅう落ちるのは腹が立つし、去年の10月みたいに動かすために YAML ファイルを四重のインセプションみたいに削るのも腹が立つけど、根本的にはコードを読み書きすることは最高だ
お金をもらってビジネス担当者と問題について話し、頭の中で解決策をモデル化し、関係がありそうな面白い新技術や古い技術を読み、キーボードで実装することで学びが定着し、ビジネス上の問題が解決される。すごく楽しい。そのあとビジネス担当者や他の開発者に発表するが、発表も好きなのでそれも楽しい
もしかすると物語の Sara は自分なのかもしれないが、もしそうなら Sara として生きるのは最高だし、インターンに
cronジョブを教えるためにもう1日使うべきなのかもしれない。教えるのもコーディングと同じくらい好きで、この文章ではその価値が最近さらに高まっているように感じられるあなたのことも、どこで働いているのかも知らないけれど、自分はこれにかなり近い場所で働いたことがある。58歳で、今みたいなめちゃくちゃな状態ではなかった頃も覚えている。ポイントは Sara が USB メモリにファイルを保存し、定期バッチ処理の面倒を見ているということだが、その両方とも自分はやったことがある
GitHub を使っているなら Git を使っているわけで、つまりバージョン管理を使っているということだ。なら、誰かの机から持ってきた USB メモリを自分の机に置いてそれに依存するような50代のベテラン型ではない。そういう人たちは、リモートの Web サイトや Git のような複雑で毛むくじゃらで腹の見えないプロトコルは信用できないと分かっているからだ
この記事には「rant」タグを付けるべきだ
50代で、船で透析された人とかなり近い立場だけど、正直に言えば船がないときに抜けるべきだった。この連中が胡散臭いと分かっているべきだった。仕事を引き受けて金をもらったのだから、もともとそういうものだ
最高な仕事もあれば、ひどい仕事もある。現場の技術者にひどい案件がないとでも思うのか。巨大なマンションの浴室タイルを貼る人、照明を取り付ける人、ケーブルを引く人、配管工を想像したことがあるか。照明を5,000個取り付けるのに何日かかる? 便器を500個設置するのは? 想像できるか? まったく、俺たちは本当に楽をしている
世の中にはひどい仕事がたくさんあるし、企業ソフトウェアエンジニアリングにも問題は多いし、ひどい職業も多いし、AI は悪夢だし、全部その通りだ
Sara は目を覚まして、その忌々しい**
cronジョブ**をちゃんと直すべきだ基準点がテック企業でのプログラミングなら、昔からずっと問題があって、たいていは悪い結果が出てきた。十分な理由を一つ挙げるだけでも、構造的にユーザーと絶対に話せないようになっているからだ
これを「疎外」や「労働」といった言葉で説明する人もいて、こうした問題はプログラミングに限った話ではないと言っているようだ
自己完結して回っていない大きな組織の中で、何かを支える小さなチームのプログラミングのほうがずっといい。自分で使う道具を作るプログラミングもずっといい
SaaS 企業がそうやって営業を取っていくのを見ると、本当に接待とドラッグでも使っているんじゃないかと思ってしまう
最近は、自分の地域のローカルビジネスや専門職のための人間サイズのプログラミングを楽しんでいる。組織や中小企業向けに、特定のオープンソースソフトウェアのマネージドホスティングも提供している。大規模言語モデルはなく、保守と運用がしやすいシンプルなスタック、明確な境界、正直な価格設定、簡単なオンボーディングとオフボーディングがある
これは、これまで海外のテックスタートアップや大企業でリモート勤務してきたキャリアとは対照的だ。なのでリモートのコンサルや契約仕事は本当に合うときだけまれに受けて、それ以外の時間は別のことをしている。収入面では逆行しているように見えるかもしれないが、このトレードオフは自分のウェルビーイングに本当に大きく効いている
Hacker Newsのコメント
「AIが私たちの仕事を奪ったのではなく、強欲が奪った」という一文が強く刺さった
工場をBangladeshに移し、Congoのコバルト鉱山で奴隷労働を維持してきた、その強欲が新しい仮面をかぶっただけだという表現がよかったし、甥にはむしろ別の仕事を勧めろというくだりも強烈だった
この文章は芸術作品のようで、一晩寝て朝にもう一度読み返したい
プログラミングは好きだし、かなり得意でもあるけれど、この業界は汚物入れみたいだ
すでに学校に戻って、いわゆる「本当の」職業に就くことに決めたし、社会破壊に血眼になっている業界で働くことに疲れた
そんなお金を受け取れてきたのは素晴らしいことだが、運と状況のおかげだと思う
ロボットが私の仕事を奪うなら別の仕事を探すし、邪悪な金持ちや別の怪物を責めるつもりはない
もしそうした需要がなかったか、人々が「その値段ではだめだ」と言っていたなら、道徳的責任が産業資本家だけにあるとは言えず、そうした鉱山も存在しなかったはずだ
洗濯機があるから人々は金をもらって手洗い洗濯をしなくなり、ニュースがデジタルで届くから新聞配達員の必要も減った
AIも同じで、「もし」何かの仕事が自動化できる、あるいはもっと効率化できるなら、そうなるだろう
個人にとって利益でないことがあっても、社会全体には利益になりうる
ここでAIやLLMが実際にその仕事をこなせると主張しているわけではなく、「できるなら」そうなると言っているだけだ
強欲は必要ない
「技術業界で働くことは昔からずっとひどく、みんなが思っていたような仕事ではなかった」というのは事実ではない
1988年から2000年まで、少なくとも13年間は技術業界で働くことは私にとって本当に素晴らしかったし、その後もしばらくはかなりよかったはずだ
ひどくなり始めた主な理由は技術ではなくビジネス、とりわけ企業の買収や合併だった
良い会社で面白い問題を解き、意味のあるソフトウェアを作り、満足した顧客がいる環境は、技術者にとって天国だった
ひどくなったのは、突然ひどくなったからではなく、私たちがそれに気づき始めたからだ
技術そのものが悪いのではなく、技術産業が悪い
それは昔からある人たちにはずっと悪かったし、今ではただ皆に対してあからさまに悪く見えるようになっただけだ
この記事の結論すべてに同意するわけではないが、HNの記事を最後まで読んでもAI共著のつやを感じずに済んだのはよかった
著者をけなす意図はまったくなく、思慮深い文章だと思うが、私はAI共著のつやを感じた
自分がLLM生成だと見抜けなかった文章を、これまでどれだけ読んできたのだろうと考えさせられる
ある程度の勘はあると思うが完璧ではなく、偽陰性も偽陽性もあるだろう
その違いをもう見分けられなくなったら、それは何を意味するのだろうか?
もう少し考えてみると、この記事の主題を考えれば、著者が私の言葉を侮辱だと受け取らないでほしいと思う
早朝だったせいかもしれないし、私の判断が間違っていた可能性は高い
だからこそ、上の問いがなおさら気になる
職場で人々が長いダッシュを入れ、いかにもAIらしい文体で文章を書くのを見すぎて、もううんざりしている
少し侮辱のようにも感じるが、結局のところ私たち全員がこの茶番に加担しているのだと思い出させられる
いわゆるAIによる雇用減少はAIのせいではない
そうでないと主張する人はいないと思う
1年以内に、たぶんもっと早くソフトウェアシステムが崩れ始めるだろうし、実際そうなるはずだ
そうなれば技術職の採用は急増する
むしろAIの欠陥を埋めるのに、世界中の開発者の数では足りないと思う
計算は明白だ
人間が生成されたすべてのソフトウェアシステムの1%だけに触るとしても、現状と今後の規制を考えればそれすら現実的ではないが、世界の4,700万人の開発者ではまったく足りない
仕事は戻り、報酬もよくなるだろうが、プログラミングはさらにひどく苦しいものになり、誰にでも向く仕事ではなくなるだろう
絡み合った混沌を逆向きに掘り進めるのが好きな人でなければ向かないかもしれない
AIがすべてで、AIがソフトウェアなら、あらゆるものがソフトウェアになり、誰もがそのソフトウェアの一部を欲しがることになる
この記事の情緒は正確だ
4年前に引退したが、その時点ですでに10年以上下り坂だった
ただ一つ付け加えるなら、プログラミングはまだ楽しくありうる
職業としてのプログラミングはひどいが、個人プロジェクトのためにプログラミングしてみれば、今でも楽しいとわかる
それでも離れて本当によかった
キャリア末期、同僚とApple Parkで昼食を取っていたとき、「公園」の中央にある植物や木を世話する庭師をぼんやり眺めていた記憶がある
同僚がその庭師について話し出そうとした瞬間、彼も私と同じことを考えていて、次に何を言うかすぐにわかった
文章が本当によかった
「Iranに核を撃ち込むかどうかのような、もっと軽い話題に移ろう」や、「ジュニアはもういない。2024年に彼らの葬式はあったが、誰も来なかった」、「AIが私たちの仕事を奪ったのではなく、強欲が奪った」といった一文がよかった
シニカルな経験を込めた風刺がよく効いている
プログラミングは昔からずっとひどかった
今変わったのは、そのひどい仕事を代わりにやってくれるAIエージェントが現れたことだが、なぜかすべてがもっと悪くなった
今では、自分で書いたわけでもなく、完全に理解しているわけでもなく、コードレビューでまともに説明することもできないコードをデバッグしなければならない
美しい文章だった
Peter Welchのこの文章の精神的な先祖ともいえる文章へのバックリンクもうれしかったし、どうやって見つけるのか忘れていたので、また読める楽しみがあった
「プログラミングはひどい」という記事が、おそらく静的生成ブログなのにHNトラフィックで窒息しているのは、ちょっと皮肉ではないか?
ISRにするのが面倒でCloudflareの無料プランを使っていたし、こんなトラフィックが来るとはまったく予想していなかった
本当によかったし、戻って「Programming Sucks」も読んだ
あちらにもこういう楽しい一文がたくさんあった
「コーダーのコンピューターが非コーダーのコンピューターよりうまく動く唯一の理由は、コーダーがコンピューターを自己免疫疾患を抱えた統合失調症の子どものような存在だと知っていて、調子が悪いからといって殴らないからだ」