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

ソフトウェアエンジニアリングはもはや生涯のキャリアではないかもしれない

概要

  • AI利用 が知能低下を招く決定的証拠はないが、学習機会の減少は明白。
  • AI活用 で短期的利益を得ても、長期的な技術力低下の懸念。
  • 職業構造 の変化により、AI未使用者は競争力を失う可能性。
  • 建設業との比較 で、仕事の要件と長期的健康リスクの共通性を指摘。
  • Luddite運動 との歴史的比較と、現代のAI反対運動の類似性。

AI利用とソフトウェアエンジニアの将来

  • AI活用 が知能を全体的に低下させる明確な証拠は存在しない現状。
  • AIに作業を任せる ことで、その作業自体の学習機会が減少する事実。
  • 一部のソフトウェアエンジニアによる「AI利用=技術力低下=利用反対」の主張。
  • 技術力の衰退 が本当に起きるかは定かでないが、仮にそうでも反対理由としては不十分。
  • 過去の幸運 として「実務を通じて学べる」時代があったが、それは本質的な事実ではなく偶然。
  • AI利用で短期的利益 が大きければ、長期的リスクがあっても利用は避けられない職業構造。
  • 建設業の例 :重い物を持つことで身体に負担がかかるが、それが仕事の本質である現実。
  • AI利用で知能が低下 する場合でも、手作業のみで仕事を得るのは困難な時代の到来。
  • 競争環境 でAI利用者に対抗できず、長期的能力より短期的成果が重視される傾向。
  • プロスポーツ選手 のように、キャリアの寿命が短くなる可能性と事前準備の重要性。

AIとLuddite運動の歴史的比較

  • 19世紀イギリスのLuddite運動 :自動化機械の破壊や所有者への攻撃が発生。
  • 現代AI反対運動 において、Ludditeの名称を自称する動きが見られる。
  • 反AI活動家 (Brian MerchantやGavin Muellerなど)は、Ludditeの正当性を主張し書籍も出版。
  • 暴力的事件 (例:市議会議員やSam Altman宅への攻撃)も一部で発生。
  • 職業の自動化 による労働者の反発という歴史的パターンの再現。

労働市場とAI利用の今後

  • 労働組合 によるAI導入の遅延も理論上可能だが、テック業界では実現困難。
    • 高給職であり、世界中どこからでも働けるため団結が難しい現実。
  • キャリアの持続可能性 を見据えた計画の必要性。
  • AI時代 における新たな「精神的エンゲージメント維持法」の発見が課題。

まとめ

  • AI利用 による短期的な効率向上と、長期的な技術力低下リスクの両面性。
  • 職業構造の変化 に適応するための新たなスキルや戦略の必要性。
  • 歴史的視点 から見ると、技術革新と労働者の対立は繰り返される現象であり、現代も例外ではない。

Hackerたちの意見

ソフトウェアエンジニアリングって、コードを一文字ずつテキストエディタに打ち込むことを指すなら、確かにそれでお金を払ってくれる人を見つけるのは難しいだろうね。でも、ソフトウェアを作るってことなら、今まで以上に多くのソフトウェアが作られてるし、ソフトウェアの定義もすごく多様化してる。ここからいろんなキャリアが生まれるのが見えるよ。

私が心配してるのは、そのソフトウェアを作ることで生活費の高騰に追いつけるだけの報酬が得られるかどうか。過去には、自動化によって生まれた仕事は、一般的に低賃金で自律性も少なかったからね。

私たちは、土木技師がスライドルールから電卓に移行したときの経験をしている。あるいは、電気技師が手動で回路図を描くのからCADツールに移行したように。面白いのは、ソフトウェアエンジニアリングも進化しなきゃいけないってこと。プロセスやツールも進化し続ける必要がある。2004年に大学を卒業する時、私たちは「ソフトウェアの危機」や、カスケード開発プロセス、新しい「反復的手法」が始まっていることを学んだ。スパゲッティコードがPascal/Cの構造化プログラミングに取って代わり、さらにOOPに進化したことも学んだ。エンジニアリング手法も進化して、UMLが有名な言語の一つだけど、形式的検証のためのZ言語や、ABCやサイクロマティック複雑性の測定などもある。で、今の話に戻ると、今やコンピュータがほとんどのコードを書いているから、現在のプログラミング言語やソフトウェア開発プロセスの価値が下がってきてる。プログラミング言語は人のために作られてるから(そうじゃなきゃアセンブラで書き続けるはずだよね)。だから、コンピュータに意図を伝えるための抽象化を変えなきゃいけないし、最終的な指示が自分たちの望んでいたことをしているか確認する必要がある。新しい抽象化がどうなるのか、すごく興味がある。コーディングの細かい部分が完全に自動化されるなら、ソフトウェアエンジニアリングの職業にもっと厳密なエンジニアリング(本当のエンジニアリング)が見られるかもしれないと思ってる。コーダーはまだいるだろうけど、家を建てたり改造したりする非エンジニアもいるからね(少なくともメキシコではよくあること)。

s/ソフトウェアエンジニア/秘書/ s/ソフトウェアを作成する/書類を打つ/ AIがソフトウェアのプログラミングやアーキテクチャを解決する世界では、他の分野に専門知識を持つ人々(今や1000人の専門家の力を持つ)が価値を持つようになる。スキルがより良く、早く、安くなったAIツールによって無駄になった人たちではなくね。

2020年、互いに競争する2つの会社がある。それぞれ100人のプログラマーを雇って仕事をしていて、みんなその組織がどう運営されているかは知ってるよね。常に遅れをとっていて、追加される機能がさらに未来の機能を生む。私たちはそれを経験してきたし、今も大体そうだよね。2026年、両社はAIが開発者を10倍に加速できると決定する。これは現実だとは主張してないけど、いい感じの数字だよね。会社1は90人のプログラマーを解雇して、10人で同じ仕事をする。会社2は全員を残して、以前の10倍の仕事をこなして、もしかしたらさらに雇うかもしれない。市場で勝つのはどっち?もちろん「それは状況次第」という答えが出るけど、会社1の勝つ可能性は会社2よりもかなり小さいと思う。彼らは非常に特定の市場の状況を必要とする。それは存在しないほど特定ではないけど、例外の一つに入るリスクのある賭けだね。加速が起こっている時期で、まだ新しい現実に慣れていない時、会社1の答えは表面的には経理担当者に魅力的に見えるけど、特定の市場で会社2の解決策に従う脱藩者が一人でも出れば、業界全体が競争するためにそれに従わざるを得なくなる。1人のプログラマーが生み出す価値は、そのプログラマーの給料で捕らえられる可能性があるけど、中長期的には減少しないだろうね。

でも今は、20年や30年の経験を持つ人たちが質の高いソフトウェアが何かを知っている黄金時代なんだよね。少なくとも、何が質の高いソフトウェアでないかはわかってる。だから、彼らはLLMをうまく操れる。もしこの知識が失われたら、品質は下がるかもしれない。

ソフトウェアは、今の農業生産量が増えているのと同じように増えるだろう。生産性の向上が何かの生産量を増やすと、それに伴って労働需要も増えるって考え方は、私が知る限りでは真実であることよりも間違っていることが多い。実際、これが起こった歴史的な例を挙げるのはかなり難しい。一般的に、生産性が大きく向上すると労働需要は大幅に減少し、通常は人々が再訓練を必要とする。

ソフトウェアを増やしても、他のソフトウェアとほぼ同じ機能のものだったら何の解決にもならないよね。言い換えれば、どの企業も何度も車輪を再発明してるってこと。新しいフレームワークで書かれただけのソフトウェアの開発を10倍にしても、新しいものが何もないなら意味がない。個人的には、ほとんどのソフトウェアを整理していくべきだと思う。基本に戻ろう:何が必要か、それをより良くして、完成させる。ちゃんとソフトウェアを一つ仕上げようよ。

AIが大丈夫だって記事をよく見るけど、人々が別のキャリアに再訓練すればいいって話ばかり。だけど、そのキャリアが何なのか、再訓練に誰が金を出すのかは全然書いてない。正直、大学に戻って新しいキャリアを最初から始めるお金も時間もないよ。

しかし、私はそのキャリアが何なのか、再訓練に誰が払うのかを読んだことがない。キャリアなんてないし、あったとしても自分で払わなきゃいけない。企業が払うことなんて、競争のためにどうしても必要な場合を除いては絶対にないよ。

ソフトウェアが混乱を引き起こした業界も同じことが言えるね。

「過去にいつもそうだった」というのが議論のポイント。確かにそうだけど、それが真実でない限りは真実ではない。こういう考え方がどれだけ失敗するかの典型的な例がマルサス理論で、食料の成長は線形なのに対して人口の成長は指数関数的だから、人口が崩壊するってやつ。マルサスがこの観察をするまでは、歴史の中でずっとそうだった。機械的なレベルで言うと、「私たちはいつも他の仕事を見つけてきた」という議論は、私たちがいつも他の仕事を見つけてきた理由は、人間が常に自動化に対して知性の優位性を持っていたからだということを見落としている。組み立てラインでの人間の入力のような機械的なものでも、最終的にはロボットにはできない微細な調整を人間ができることに依存していた。でも、もしAGIに近いものが実現したら、人間の労働は自動化に対して全く優位性がなくなるから、「自動化が人間の仕事を増やした」という過去の論理が続く理由は不明だね。

そんなことは起こらないよ。中国に仕事がアウトソーシングされた熟練工たちに起こらなかったようにね。政府は状況を管理可能に保つために、最低限の福祉を支給するだけだろう。そして、その後は文化の中でルダイトとしてあなたを悪者にするんだ。

後半は私には明らかだと思う。再教育を受ける人たちだね。もしそれが何らかの正式な教育なら、場所によっては州が一部を負担するかもしれない。でも、何を学ぶのかは全く分からない。もし一つの答えがあって、ソフトウェア開発者が減るのが本当なら、少ない仕事に対して多くの人と競争することになるだろうね。

少なくともアメリカでは、AI以外で成長している主要な分野は、長生きするベビーブーマーに対応するための医療だけのようだ。でも、そこに再教育されるためにお金を待っているなら、私たち全員が息を止めるのはやめた方がいいね。

今、一番将来に強い「キャリア」はお金を持ってることだね。少なくとも数百万ドルは必要だよ。それはかなり需要があるスキルだ。

それに、他に素晴らしいキャリアが待ってるってのも必ずしも真実じゃないと思う。これは人々が勝手に思い込んでるだけのように見える。もちろん、しばらくは人間の労働が必要な仕事もあるけど、実際には肉体労働が必要な多くの仕事は、今や労働コストが安い他の国で行われてる。配管工やウェイトレスのように輸出できない仕事は需要が限られてるし、今のホワイトカラーの労働者の50%をこれらの職業に押し込んでも、簡単に仕事を見つけたり、 decentな給料をもらえるとは思えない。需要がそもそも存在しないんだよね。それに、ホワイトカラーの仕事が減る一方で、「低スキル」の肉体労働の仕事もどんどん自動化されてる。セルフチェックアウトの機械が増えたから小売業での仕事が見つけにくくなってるし、ロボタクシーやドローン配達が普及すれば、配達や物流の仕事も減る。倉庫のロボットも同様で、倉庫の仕事を見つけるのが難しくなる。AIが新しい高給の仕事を作るっていう暗黙の前提があるみたいだけど、実際にAIができない仕事や、安く輸出できない仕事って何だろう?みんなが高給の清掃員になるわけじゃないし、意味がわからない。今見かける建設作業員や配管工への再訓練のアドバイスは、この労働に対する需要が無限にあるって前提で話してるけど、そんなことはない。仮に建設作業員の需要が急増したとしても、何百万もの人々が建設業に入るための機械やサプライチェーン、インフラを整えるのには何年もかかるだろう。最も可能性が高いシナリオは、人々が仕事を失って、国内経済で残っている限られた仕事を求めて無限の競争を強いられることだと思う。すべてがアウトソーシングされるか、ロボットやAIに取って代わられる中で。だから、この現実に備えることが大事だよ。政府が守ってくれるなんて思わない方がいい。富が集中すると腐敗が避けられないし、政治家も家族を養わなきゃいけないからね。これを真剣に受け止めてほしい。たとえ私が間違っていたとしても、最悪の事態に備える方が、すべてがうまくいくと思って新しい高給のキャリアに再訓練できると思うよりはいいよ。

そうだね、それはただのコピウム的な答えだよ。問題を無視したいだけの人たちが、良い答えがないことを認めたくないから。まるでタウンホールでこの質問をされた政治家が、「私たちの計画は何もしないことです」って言うのが魅力的じゃないと思ってるみたいだね。

その職業が何かを正確に読んだことがない。大量の人を雇えるほどの職業や仕事が何かを示す論理的な議論を一つも読んだことがない(「企業を辞めてTikTokインフルエンサーとしてもっと稼いでる」みたいなのはカウントしないからね)。新しい職業は、今まで知られていなかった収入源を開かなきゃいけない。そうでなければ、あなたにお金を払う企業は存在しない。

なんか、今年の初めにアメリカのソフトウェア採用市場が大きく変わった気がする。ますます多くの企業が、今後数年で人材に過剰投資しないように様子見をしている感じがする。以前は弱かった採用の「シグナル」が、今は完全に消えちゃったみたい。広告を出した仕事には、500件以上の同じようなLLMが書いた応募が来るし、カバーレターもみんな似たような感じ。この記事のプロアスリートの比較はちょっとバカバカしいと思う。筋肉に頼ってお金を稼ぐなら、年齢とともに明らかに体に問題が出るからね。法律や医療みたいな他の知識労働の分野と比べると、40代や50代で経験豊富で鋭い人たちがたくさんいる例があるよ。

正直なところ、AIが現場の採用ニーズに影響を与えている感じはしないな。リーダーシップが想像できることをAIが全部書いちゃったから、エンジニアが手をこまねいてるってわけじゃないし。むしろ、経済は落ちそうな雰囲気か、少なくともジェットコースターみたいな感じ。雇用のための税制優遇も微妙だし、ゼロ金利政策も終わっちゃった。採用担当者は雑務に追われてるけど、上司は「AIのせいだ」って言って、コントロールしてるように見せたいんだよね。

なんか、今年の初めにアメリカのソフトウェア採用市場が何か大きく変わった気がする。ますます多くの企業が、今後数年で人材に過剰投資しないように様子見の姿勢を取ってる感じ。コロナの時に企業が人を取りすぎたから、その経験と不確実な市場を考えると、同じ間違いを二度と繰り返したくないんだろうね。

知的に見える人たちが抽象化のアナロジーを使うのをやめてほしいな(この記事みたいに)。キーワードは「決定論」。あらゆる抽象化のレベル(パワーツールやC言語などを含む)は、やってることをより効果的に行うために頼れる決定論的なレイヤーを追加してるんだよ。結果は毎回同じ。LLMは自然言語を使ってプログラミングを説明してるけど、結果はせいぜいバラバラだよ(だからエージェントが必要になる)。本当に重要なのは、実際にプログラミングできる人になることだと思う。

誰かが抽象的な議論をするたびに、天使が一人死ぬ。

みんなこれを言うけど、個人的には誤解だと思う。確かにLLMは決定論的じゃないけど、それは全然関係ない。LLMの出力を直接実行してるわけじゃなくて、LLMを使って一度アーティファクトを作って、それを決定論的に実行してるんだから。仕様書が一度コードに変わる。仕様書を編集すればコードが更新されるけど、毎回プログラム全体を再作成してるわけじゃないから、決定論が重要なのはなぜ?

LLMは、たくさんの仕事を置き換えるために完璧な信頼性を達成する必要はないよ。特定のタスクに対して、信頼性とコストのバランスを取るだけでいい。それはタスクによるね。

確かに、LLMには当てはまらない抽象の定義があるよね。でも、LLMを別の抽象層として説明している人たちがみんな誤解しているわけじゃない。むしろ、彼らはその言葉をもっと抽象的に使っているんだ。例えば、マーク・ザッカーバーグが5年前にソフトウェアをどうやって作ったかって?彼もエディタを開く能力はあるけど、状況が彼に人材という異なるインターフェースを提供したんだ。エディタの代わりに、彼はその人たちとやり取りして、ソフトウェアを作り上げている。この彼と構築されたシステムの間の層は、抽象的なものだよ。今日、君も僕も数年前より多くのタスクを任されるようになったよね。

君が言いたいことはわかるけど、決定論って言葉も適切じゃないよ。LLMは根本的に決定論的だし、入力テキストとネットワークパラメータに基づいてテキストを出力する純粋な関数なんだ。自由意志についての見解によっては、人間も決定論的だと効果的に主張できるかもしれない。君が触れている概念は、LLM(と人間)が不可解な関数であるというアイデアだよ。彼らの行動は、頭の中に収められる論理的なステップのシリーズに分解できず、彼らの複雑さをいくつかの解釈可能な状態にきれいに分解する不変量もないし、入力と出力の空間は構造がなく、曖昧で、十分に指定されておらず、基本的に無限なんだ。これが、彼らを従来のプログラムに適用するのと同じ戦略や分析で推論したり構成したりすることをほぼ不可能にしている。オプションとして、非決定論を加えるためにエントロピーの源を取り入れることもできるけど、これは必須ではない。もしLLMプロバイダーがすべてのprngシードを静的な値に固定したら、ほとんど誰も気づかないだろう。正確に同じプロンプトを複数回LLMに与えて、出力が何らかの統計的分布を持つことに依存するワークフローはあまり想像できない。実際、これを望んでも、キャッシュされたレスポンスを得るだけになるかもしれない。

決定論的なレイヤーを使って何かを作る人たちが、実は非決定論的であるってことには言うべきことがあるよね。人間には長所と短所、成功と失敗がある。地球上で最も優れたコーダーでも、時々ミスをすることがある。LLMに対する批判の会話の中で、私たち人間が自分たちのやり方で欠陥を持っていることが考慮されていないことが多い気がする。良いコードも悪いコードも、LLMが登場する前から存在していた。誰かを雇ってコードを書かせるとき、基本的にはその人が良い仕事をするだろうと信じるためのヒューリスティックを使っているわけだ。100%決定論的に保証されることはない。あまり考えずに言うと、LLMは時々、給料をもらっている人たちよりも良いコードを生み出したり、システムを管理したりすることがある。正確に言えば、劣った開発者かもしれないけど、仕事をするためにお金をもらっているプロフェッショナルだよね。結局のところ、重要なのはそのタスクを担当する人が質の高い仕事を提供する意欲があるかどうか、透明性や誠実さ、要件を理解する力、他の人と一緒に働くのが楽しいかどうかだ。AIやLLMは彼らにとっての追加ツールに過ぎない。クレイジーに聞こえるかもしれないけど、偉大な仕事を提供するために限界を押し広げようとする人はそんなに多くない。それが違いを生むんだよね。

週に何度も同じ会話をする。大体こんな感じだよ:- AIが開発者を無意味にする - なんで? - LLMがコードを書くから - あなたの職業は何か知ってる? - うん、コードを書くんでしょ? - そう、でもその時間は2-5%くらい。今はもっと少ない。 - でもあなたは開発者だって言ったじゃん? - そうだよ - じゃあ95-98%の時間は何してるの? - 物事を理解して、解決策を考え出す能力を活かしてる - でもそれは私にもできる! - じゃあなんでやらないの? まだ自分の仕事がコードを書くことだと思っている開発者は、将来的には仕事がなくなるかもしれない。厳しいことを言うけど、私はそれで構わない。歳を取ってきたし、地球での残りの時間を大切にしたいからね。開発者がいなくてもLLMが開発者を置き換えられると思っているビジネスオーナーも、私には全然問題ない。自然選択が彼らをそのうち処理してくれるだろう。

そうだね、約2-5%の確率で。もっと高い割合の人もいるけど、例えば6-50%くらいかな。 > 「物事を理解して、解決策を考える能力を活用している」 AIもそれに来てるよ。君はたまたま自分の貢献が評価される環境にいるか、トレーニングデータにあまり反映されていない業界や分野にいるか、AIには複雑すぎる問題にいるかもしれない。でも、みんながそうじゃないし、開発者の大多数もそうじゃない。Jiraのチケットを片付けたり、CRUDのウェブアプリを書いてる人たちは、生活が脅かされることが多いだろうし、上司は同じ給料でより多くの成果を求めるようになって、AIを使って追いつかなきゃいけなくなる。

どこで最初に聞いたかはわからないけど、いつもチームに言ってることがあるんだ。「プログラミングは考えることであって、タイピングじゃない」

コードを書くのにかかる時間がたったの5%?それって、私が関わってるほとんどのソフトウェアエンジニアにとっては少ない見積もりだと思う。残りの95%の時間をどう使ってるか、教えてもらってもいい?

これはちょっと軽い答えだね。実際には、コーディングにかかる時間のほとんどは、タイプしたり、再タイプしたり、また再タイプしたりすることなんだ。それに、ドキュメントが不十分なAPIに対してリライトをうまくいかせようと頭を壁にぶつける時間も含まれてる。OPの言い方だと、ソフトウェアエンジニアリングが数学みたいな純粋に高尚な仕事に聞こえるけど、実際は油田作業員が大きなハンマーで金属を叩いてドリルを組み立てるようなものだよ。計画を持って入ったけど、現実はそうじゃなくて、タイトなスケジュールに追われてるんだ。

長期的なトレンドって、エンジニアが必要なくなるってことじゃなくて、必要なエンジニアの数が減るってことじゃない?なんか別のループも見かけるんだけど、 - A社がAIの効率化を理由にエンジニアを解雇 - 人々は2020年の過剰採用が原因だと言う - B社がAIの効率化を理由にエンジニアを解雇 - 人々はそれがビジネスとして良くなかったからだと言う - C社がAIの効率化を理由にエンジニアを解雇 - 人々は不況が原因だと言う 反例を挙げると、失業率はまだすごく低いし、ソフトウェアの仕事もまだまだ安定してる。でも、最悪のシナリオとしては、最終的に5%の人が今の人たちがやってることをできるようになって、ソフトウェアの需要は同じペースでは成長しないってことだね。

高校の頃、数学や論理的な問題にハマってた自分を思い出す。それがあって、すごく技術的になったし、辛いメンタルチャレンジを乗り越える力もついた。卒業生の中でエンジニアになったのは少数派だったのは、その仕事が簡単じゃないからだと思う。頭を使わない人にはかなり疲れる仕事だろうね。だから、AIが業界を変えるとはいえ、信頼できる会社が一番賢い人をジュニアレベルの知能のために解雇するとは思えない。進化しても、失敗したときの責任を持つのは誰かってことは分かってるしね。

問題は、人々がAIがコード以外の95-95%も置き換えられると思っていることだよ。それが、誰も理解できない巨大な使えないコードベースを生む原因になってる。

これは有効な視点だけど、役に立つとは思わない。コードを生産できることは、多くの非プログラマーにとって大きな解放だよね。だから、既存の開発者がコーディングにどれだけ時間をかけるかはあまり関係ない。誰でも開発者になれる手助けをすることが大事なんだ。

ここでの視点は「生涯キャリア」だから、意味のある議論をするには30年先を見越す必要があるよね。でも、それよりずっと早く、AIがほぼ完全な実装を生み出して、機能を求める人たちの要求に応えるようになると思う。そういう人たちが開発者になって、技術的な「クリエイティブ」に近い存在になるんじゃないかな。開発者側よりも、プロダクト側に近い感じで。

もし君が開発者で、コードを書くのにプレ・クロードの時代に2%の時間しか使ってなかったら、それは1日9分だよね。そんなのじゃ、解雇されても仕方ないよ。

プロアスリートのキャリアは、最大で約15年の寿命がある。30代半ばまでにたくさんのお金を稼ぐチャンスがある。これって年齢差別に聞こえるね。私は40歳だけど、20代半ばの頃と比べても今が精神的なピークだと感じてる。これは全然良い例えじゃない。脳はプロアスリートの体のように「消耗」するわけじゃなく、ただ構造が変わるだけだから。脳は素晴らしい器官だよ。

彼が言いたいのは、もうこの年齢になったら、自分の好きな役職やレベルは見つけてるだろうってことだよ。もっとCレベルや役員職に上がりたいなら別だけど、そういうのは珍しいし、ほとんどの人は望んでないと思う。

建設業で働くなら、効果的になるためには重い物を持ち上げたり運んだりする必要がある。でも、重い物を持ち上げることは背中や関節に長期的な負担をかけて、時間が経つにつれて効果が薄れていく。建設作業員は、良い建設作業員になるためには重い物を持たないことだとは言わない。「残念だけど、それが仕事なんだ」と言うんだ。私の両親も建設作業員だった。重い物をずっと持ち上げることはできないっていう理解がある。物を持ち上げるのをやめて、現場監督やスーパーバイザーになる... もし他の人に自分が以前やっていた仕事をやらせることに抵抗があると、体を完全に使い果たしてしまって、その結果はひどいことになる。これは事実だけど、自分のキャリアにおける委任について内面的に理解するために重要な教訓でもある。AIの利用にも関係あるけど、完全にうまくはまるとは思わない。

ソフトウェア開発者は単なるプログラマーよりも建築家に近いよね。建築家に重いものを持ち上げさせることはないし、どうやってその重いものを使うかをデザインしてほしいんだ。

AIユーザーは時間が経つにつれて効果的なエンジニアではなくなっていく。 私の経験から言うと、これは残念ながら長期的にはそうなると思う。プロとして見ていると、人々は大きく二つのグループに分かれている:AIで自分の推論を補強する人たちと、AIで自分の推論を置き換えてしまう人たち。前者にはあまり心配してないけど、後者には心配してる。私の母はアメリカの公立高校の教師で、彼女は「Google AIの概要」を絶対的な真実の源として受け入れる生徒の多さに愚痴をこぼしている。もしかしたら「ウィキペディアを引用できない」っていう新しい常識かもしれないけど、彼女はパンデミック以降、彼女のクラスに来る子供たちの批判的思考能力が明らかに低下していると感じている。インフルエンサーや匿名の人たちに何を好きになり、嫌いになり、信じるべきかを教えられて育った世代(または二世代)がいるんだ。彼らはLLMが登場する前から、自分の推論を外注していた。ほとんどの子供たちは、疑わしい質で自分が欲しいものを手に入れていると信じ込むように設計されたシステムと建設的に関わる準備ができていないように見える。

「私の母は(アメリカの公立学校の)高校教師で、学生たちが「Google AIの概要」を絶対的な真実の源として受け入れていることに愚痴をこぼすんだ。私の周りの大人たちも今、そんなことをしているのに気づいた。」

私の経験では、全く逆だよ。実際に最先端のツールを使うことを厭わない経験豊富なエンジニアは、40代や50代でも以前よりずっと優れている。伝統的なプログラマーの実用的な劣化の一因は、集中力や深い計算力だよ。チェスと同じようにね。昔のチェスプレイヤーは19歳の天才よりもチェスをよく知っているけど、同じスピードで何時間も計算することはできないから、経験が生の計算に負けてしまう。35歳や45歳になったら、単純にそれほど良くはない。Claude CodeやCodexは計算を省いてくれるけど、経験で培ったすべての本能や2秒の「直感」はまだオンラインにある。これは単により公平な競争というだけじゃなく、今や逆に不公平になっている。以前は6人のチームを率いていたシニアが、今はエージェントのチームを率いて、コードをレビューしている。実際、エージェントに方向を変えさせるのは、周りのジュニアよりも簡単だし、単純な低判断のフィードバックだけでは修正が難しい。

でも、シニアが6人分の仕事をこなせるようになったら、同僚たちはどうなると思う?農業では、トラクターに置き換えられた人たちは仕事を失ったよね。今は何が違うの?

私は43歳で、15年の経験を持つ非常に生産的なJava/Swing開発者だったんだけど、ツールを使いこなすのは得意だった。でも、その会社にはもういないし(もう存在しない)、新しいツールを使いこなすのに時間がかかる。新しい環境の使い方を学ぶのに10年もかけてないからね。だから、AIは正しい構文を書く方法やユニットテストフレームワークの使い方を理解するのに、ものすごく時間を節約してくれる。1年か3年続ければ、もっと速くなってこれらのツールをうまく使えるようになると思う。

これはすごく誤解を招くタイトルだね。投稿はソフトウェアエンジニアリングが生涯のキャリアじゃないってことじゃなくて、これについてなんだ。 > 「もしAIがあなたを愚かにするなら、なぜ手でコードを書き続けられないの?」 できるよ!でも、そうすることで給料をもらえるかは別の話。電動工具を使わない大工の仕事が少ないのと同じ理由だね。この記事が言いたいのは、手でコードを書くことにこだわるソフトウェアエンジニアは、もはや生涯のキャリアではなくなるかもしれないってこと。ソフトウェアエンジニアの定義は変わってきていると思うし、そんなに大きくは変わっていないとも思う。私たちは人間の問題を解決するためにソフトウェアを作る。これからもそれを続けられるし、今はもっとできるようになったってことだね。