この職業に検証済みの記録が入ったら知らせる → · このうちどの業務が自分のものか印を付ける(VOLO Pro、ローンチ期間中は無料) →
初級ソフトウェアエンジニア
説明された問題を、動いて保守できるコードに変える —— そして近年はますます、生成されたコードが本当に正しいかを判断する仕事になっている。
生成されたプルリクエストを一つ——自分のでも同僚のでもよい——取り上げ、本物の問題を見つけるレビューを、理由まで書いて残す。これを毎週やり、書いたものを取っておく。
これは職を失う確率ではない。その職の業務量のうちどれだけが自動化にさらされているかと、導入が実際にどこまで進んだかを一つの値に合わせたものであり——同じ一つのものさしで職業どうしを比べるためだけに使える。それ以外には使えない。
入社直後からキャリア初期のソフトウェア職に限って書いている。上級のエンジニアリングとは絵がまったく違うからである。本サイトは現在、ソフトウェアの仕事を二通りに切った六つのページを持っている:職位で切ったもの(このページと中高級エンジニアのページ)と、レイヤーで切ったもの(フロントエンド、バックエンド、データエンジニアリング)。最初のフロントエンド職に就いた人はそのうち二つに載る —— それは意図的であり、二つは別の問いに答えている。
実際に何が変わりつつあるか#
分析の単位は肩書ではなく業務です。職が置き換えられるのではなく、その業務の構成が移ります。
一つのマスが一つの業務です。大きさはその仕事の中でその業務が占める比重、色はその業務が向かっている方向。マスをクリックすると、その判断がまだ示していないことが見られます。
生成することと、それを引き受けることは同じではない。誰かが「これは正しい」と判断しなければならず、そしてその誰かは歴史的に、まず自分で書くことによって判断できるようになってきた。
生成コードの天井が最もはっきり現れるのがここであり、そしてこれこそ、若手と「一人にしておける人」を分ける技能である。
うまくレビューするには、レビュー対象を自分で書いたことが要る。その判断力を育てていた「書く仕事」こそが自動化されている仕事なのだから、この業務は数年のうちに供給の問題を抱える。
これは通常は上級者の責務である。それを若手の業務として挙げているのは、この職が今どこにあるかではなく、どこへ向かっているかを描いているからである。消えたのは、そのあいだにあった中間の段のほうである。
上級者は安全だと言うことは、入口についての言明ではない。上級への道は二年分の定型コードを通っており、その道に代わるものは何も現れていない。
これはあなたの仕事ですか。そう言えば、このページはあなたの持ち分に絞られます。
肩書とは、まとめ買いされた業務の束であり、同じ束を持つ人は二人といません。どこにも送られません——このブラウザの中に留まります。
最近の変化#
論文の付録では、システムソフトウェア開発者は最高曝露五分位のなかで就業者数の第7位にあり、ソフトウェア開発は著者が事例研究として取り上げた二職種の一つである。データは ADP の米国民間部門の給与記録で、数百万人分、2022年11月から2026年6月まで。11%の減少は最高曝露の二つの五分位における22-25歳のもので、同じ年齢層でも最低曝露の三つの五分位では約10%増えている。経験のある層には同様の差が見られず、著者は経済全体に広がる置き換えの証拠は見つからなかったと明言している。分析は記述的であって因果的ではなく、業務(タスク)単位ではなく職業単位で測られている。
採用、人員、労働時間、職務範囲の、検証できる変化。最も重い——ただし因果の帰属は、前提とするのではなく論じられなければならない。
法的義務にもとづく一斉調査である。報告するすべての機関に同じ20問が出され、各問にYかNで答え、製品名とライセンス数の規模を書く。「AIによるコード生成」は45機関中31機関がYで、挙げられた製品はどれも三年前には存在しなかったものだ。Yは雇用主がそのツールを持っていると報告しているのであって、ツールがどれだけのコードを書き、そのうちどれだけが残るかを測ったものではない。ライセンス数の規模も、それでコードを書いている人の数ではない。設問は経験十年のエンジニアと十か月のエンジニアを区別していない。この記録がここに付くのは、定型的なコード——CRUDのエンドポイント、フォーム、標準的な連携、既知のパターンのテスト——を書くことがまさにこのタスクだからであり、調査がジュニア開発者について何か言っているからではない。
雇用主がそれを本番に置いた。基準線を動かしうる——規模と、その場がどれだけ似ているかで重みづけされる。
内務省のソフトウェアチームを拘束するエンジニアリング標準である。チームは役に立つところでAIを使うべきだとし、AIの支援を受けた出力は本番に届く前に人がレビューし承認しなければならず、追跡できなければならないとし、そしてAIの道具はシステムに加えられる決定、設計、変更についての人の判断、理解、オーナーシップ、責任を置き換えられないので、AIの支援を受けたすべてのコードと出力について、チームが全面的に説明責任を負い続けるとしている。はっきりした「must」が掛かっているのは人によるレビューであり、設計についての一文は説明責任の表明である。拘束するのは一つの政府省庁のエンジニアだけである。
失敗、撤回、規制、あるいは費用が導入を抑えている。判断を下げる、あるいはその不確かさを広げることがある。
あるITコンサルティング会社の一つのプロジェクトで、言語モデルに要件仕様書を起草させた大学の研究であり、評価したのはその会社の熟練アナリストである。一部のユーザーストーリーは、どのモデルでも扱われないままだった。アナリストが持つ知識は暗黙のものでありうるし、要件を引き出すための文書には書かれていないからである。アナリストは起草時間の削減を10%から15%と見積もり、著者たちは、モデルは初期の文書作りを助けられるが、人の関与を置き換えることはできないと結論づけている。一つのプロジェクトと一人の専門家であり、調べられた役割は開発者ではなく要件アナリストである。
実際の場での小規模な試行。導入の条件が試されていることを教えてくれるのであって、それが成り立つことを教えてくれるのではない——だから一件の試行は単独では決して足りず、独立した二件で足りる。
大手技術企業一社の、自社申告の数字であり、「生成された」の測り方(補完なのか関数まるごとなのか)の定義はない。採用については何も語っていない。レビューの段はエンジニアの手に残った。
雇用主がそれを本番に置いた。基準線を動かしうる——規模と、その場がどれだけ似ているかで重みづけされる。
Google のエンジニアが自社の社内ツールを説明したものである。Google は全開発者の50%を無作為に割り当てて、IDE のなかで壊れたビルドへの ML による修正の提案を受け取らせ、11週間にわたって残りの開発者と比べた。その後、ある月にビルドの破損を経験した利用者の約34%がそうした修正を適用し、ML によるビルド修復は Google の全開発者に対して有効にされた。開発者はそれぞれの修正を事前に確かめ、受け入れるか退けるかを選ぶ。これらはビルドとコンパイルのエラー——投稿自身がよく理解されていると呼ぶ種類のもの——であって、原因が症状から遠く離れた実行時の障害ではない。Google は開発者向けのAIツールを売っている。
雇用主がそれを本番に置いた。基準線を動かしうる——規模と、その場がどれだけ似ているかで重みづけされる。
これがあなたにとって何を意味するか#
この職業は、最初の一群のなかで入口と上級の落差が最も鋭い。若手の職を経済的に成り立たせていた業務こそが自動化されつつあり、上級の仕事を定義している業務のほうは自動化されていない。危ないのはプログラミングが職業でなくなることではなく、梯子の上のほうはそのままに、一番下の段が外されつつあることである。具体的に言えば——量ではなく判断を示す必要があり、しかも普通ならまだ求められない時期にそれを示す必要がある。
あなたの位置は比較的強い。ただしそれは、判断力を遅い道のりで身につけた人が供給され続けることに依存している。入口の段が壊れたままなら、数年後にやってくる制約は自動化ではなく、ツールの出力をレビューできるだけの経験を誰も積んでいない、ということになる。あとになってからではなく今、採用と育成の問題として考える価値がある。
選べる道#
四つの方向。それぞれに現実の制約と、今週試せることが一つ付いています。いまのまま続けることも正当な選択です——ただし、選ばれたものでなければなりません。
梯子が期待するより速く判断力をつくる
希少なのは、生成されたコードが正しいかどうかを言える人である。二年待たなくても、初日から示しはじめられる。
本当に失敗が痛いコードベースのなかにいることが要る。練習用の題材ではこれは身につかない。
生成されたプルリクエストを一つ——自分のでも同僚のでもよい——取り上げ、本物の問題を見つけるレビューを、理由まで書いて残す。これを毎週やり、書いたものを取っておく。
間違いが高くつく領域で深くなる
決済、セキュリティ、データ整合性、インフラ——自信たっぷりの誤答が実際のお金を失わせる領域では、人が輪のなかにしっかり残る。
深さが要り、深さには時間がかかる。一つ選び、周りが訊きに来る人になるまで留まること。
いま関わっている系のなかからそういう領域を一つ選び、その壊れ方を他人に説明できるようになるまで端から端まで読む。
エンジニアリングと問題のあいだに立つ職
ソリューションエンジニアリング、開発者体験、技術寄りのプロダクト——系のしくみと、誰かがそこに何を求めているかの両方を分かっていることが価値になる職である。
伝えることが一級の技能として要る。誰もが伸ばしたいと思う類のものではない。
自分がつくったものの説明を書き、事情を知らない人に渡して、助け船を出さずにどこで詰まるかを見る。
ソフトウェア以外の領域にエンジニアリングの考え方を持ち込む
その分野を分かっていて、しかも作れる人が、ほとんどいない業種は多い。この組み合わせは希少で、生成と競合しない。
分野の知識はほぼゼロからやり直しになり、最初の一年はたいてい後退しているように感じる。
ソフトウェア以外の分野で、繰り返しの多い困りごとを抱えている人を見つけ、それが少しでも楽になる最小のものをつくる。その一件がそのまま証拠になる。
よくある問い#
学ぶべきである。ただし五年前とは理由が違う。かつてプログラミングを学ぶことは、コードを産み出せるようになることだった。いま価値があるのはコードを判断できることであり、自分に書けなかったコードは判断できない。訓練としては今も効く。変わったのは、その判断力を身につけているあいだ給料を払ってくれる入口の求人が、もう当てにならないという点である。最初の職が教えてくれると当て込むのではなく、その空白を明示的に見込んでおくこと。
その職が存在していた経済的な理由——仕様のはっきりした仕事を安く大量にこなすこと——は弱まっており、それは景気の波ではなく構造の変化である。とはいえ、若手の採用をやめてしまったチームは自分で自分の問題をつくる。数年後、出力を苦労して判断できるようになった人が誰もいなくなるからである。この職は、生産ではなくレビューと判断を軸に定義し直され、チームあたりの人数は以前より減る、と見ておくのがよい。
入口のエンジニアにとっての信号はモデルの能力ではなく、勤め先の新卒採用である。今年の若手採用数を二年前と比べてみること。若手の採用枠を削った組織のいくつかは、上級者を生み出す道そのものを取り払ったと公に述べている——その表明こそが追う価値のある出来事である。
定型的なコードを書くこと——自動化と印をつけた業務であり、かつて若手の最初の二年を埋めていた仕事である。システム設計と要件は危うくないが、それはその二年を経た先にあるものであり、その道に代わるものは現れていない。
学ぶ意味はある。ただし理由が変わった——いまプログラミングを学ぶのは、コードを産み出すためではなく、コードをレビューするためである。流暢なのに間違っている出力をきちんとレビューするには、同じものを自分で書いたことが要る。つまり出力の市場が縮んだあとも、学びのほうは相変わらず遅い道を通らなければならない。
これを目指して学んでいますか
この専攻がここへ通じています。そのページでは、どの能力が持ち越せて、卒業生に何が欠けがちかを分解しています。
これらの判断が載っているもの#
このページの 5 件の業務判断のうち 4 件は検証済みの事象に支えられ、1 件はプラットフォームの推論であり、いずれもそれが現れる場所に明示されている。その背後には 1 の技術次元、言語モデルが一般に届いて以降の推移の再構成、そして 6 件の検証済み事象がある。
同じ機能のなかの他の職種#
会社はまず仕事を機能に分け、そのあとで職に分ける。以下はこの仕事と同じ「技術とデータ」のなかにある職種である。これは組織図についての事実であって、互いに似ているとか、同じ方向へ変わりつつあるという判断ではない。
経験のあるソフトウェアエンジニア · フロントエンド開発者 · バックエンド開発者 · データエンジニア · 機械学習エンジニア · AI研究者 · ソフトウェアテスター/QAエンジニア · データアナリスト · データサイエンティスト · 統計家 · エコノミスト · ビジネスアナリスト · 業務システムオーナー · 情報システムの支援担当・ヘルプデスク · セキュリティアナリスト(監視運用) · DevOps エンジニア・プラットフォームエンジニア・SRE · ネットワークエンジニア · テクニカルライター・ドキュメント担当 · グラントライター・助成金担当者
