Urazuke — 手でプログラムを書く時代の後のジュニア開発者:その育成で何が変わり、何を目指して、どう育てるか

著者:Pablo Kuschniroff、Claude Codeの支援による。第1版、2026年10月18日。この文書は方法の 主文書と、コースの二つのパート(新規プロジェクト、受け継いだプロジェクト)に寄り添うものだ。三種類の読者のために書いた:チームを率い、入ってくる人に何を教えるかを決めなければならない人。教えるか、メンタリングをする人。そして何になりたいのかを知りたいジュニア本人。見慣れない言葉は主文書の用語集にある。公開リポジトリ: github.com/pkuschnirof/urazuke。

なぜこれを書くのか

三十年のあいだ、ジュニア開発者はただ一つのやり方で育った:監督のもとでコードを書くことによって。半分わかった言語を持って入り、小さくて限られた課題を与えられ、シニアがそのコードをレビューし、書いては直されるのを二、三年続けるうちに手職を身につけた。コードは仕事であると同時に学校だった。

それが終わった。ジュニアがもう要らないからではなく、モデルがコードを書くからだ。私の方法では、構築する者はコードを読まない:証拠を要求する。だから私にぶつけられ、私自身も自分にぶつける問いは、正直で、急を要する。ジュニアがもうコードを書かないなら、どうやって学ぶのか。そして何を学ぶのか。そして何になるために。

答えはある。そして二つの場所から書く。一つは、こうして構築した三つのシステム。そこでは私が唯一の人間で、インシデントごとに、どの能力が私を救い、どの能力は要らなかったかを見た。もう一つは、モデルが存在する前にシステム工学を教えた年月だ。今日ジュニアに教えなければならないことの多くは、古典的なシステム工学が常に教えてきて、手職が「プログラミング」になったときに業界が実践をやめたことである。モデルは、キーボードがそれを覆い隠す前の手職が何であったかへ、私たちを戻らせる。

誤解されないための警告:私はジュニアがプログラミングを知らなくてよいと言っているのではない。 もうプログラミングによって育つのではないと言っており、プログラミングについて知らなければならないことの性質が変わる、と言っている:手職から、読み書きの素養へ。

ジュニアは何をしていたか、そして今は何をするか

以前今、方法とともに
何を生み出すか監督のもとで、コード。証拠:契約、セマンティックツリー、仕様の書かれた保留項目、完全性の検証、書かれた決定。コードはモデルが生み出す。
どう学ぶかコードについて書き、訂正を受け取ることで。モデルを段ごとに指揮し、自分が要求した証拠と、要求せずに受け入れてしまった証拠について訂正を受け取ることで。
シニアは何をレビューするか彼のコード。彼の判断力:モデルに何を頼んだか、モデルが彼に気づかれず何を仮定したか、証明なしに何を「完了」として受け入れたか。
典型的な誤りは何かバグ。モデルを信じること。
いつ役に立つか書き直さずに済むコードを書けるとき。そしてそれには時間がかかる。二十四の段を通る最初の小さなプロジェクトを終えたとき:方法は速さを約束しない。運用できるシステムと、形成された判断力を約束する。
何になるかより多くの言語とフレームワークを知るプログラマ。一行も書かずにシステムについて責任を負える人:モデルを指揮するシステム技術者。

育成の重点への影響

まず一文で言い、それから分解する:失われるのはモデルが二年目のジュニアよりうまくやることすべてであり、重みを増すのはモデルが下手にやり、方法がそれを正すために存在することすべてだ。二つ目のリストは私が発明したものではない。参照文書の失敗のリストを、裏返して見たものだ。モデルの各失敗は、人間が持たなければならない能力である。

重みを失う重点

重みを増す重点

それらが鍛えられる段の順に並べる。それが教え方だからだ。

  1. 要件工学(第0、2、3、5段)。自分が何を望んでいるかわかっていないオーナーにインタビューし、彼が望むものを散文で書き、ユースケースに名前を付け、業務のセマンティックツリーを組み、保留項目を「前提、とき、ならば」の形の受け入れ基準とともに仕様化し、一次データを派生データと区別して、推定する代わりに一次データを求めること。これが能力の第一位であり、業界が二十年前に教えるのをやめたものだ。モデルは設計上これが最悪だ:穴を最も確からしいもので埋め、最も確からしいものは業務が必要とするものではない。
  2. 検証の設計(第8、7、12、19段)。テストを書くことではない:どのテストが何を実証するか、なぜテストは価値を持つ前に赤で見られなければならないか、エンドツーエンドのテストとは何で、何も証明しないシミュレーションとは何か、どの数字が何かを決め、どの計器で測るか、報告をどう読み、検証されたものと信じられているものをどう区別するかを知ること。ジュニアは、テストを読まずに「そのテストはあなたの言うことを証明していない」と言えなければならない。
  3. 証拠を読むこと(すべての段)。モデルの報告を、訓練された不信とともに読むこと:証明のない主張、検証済みに化けた「動くはずです」、宣言されていない盲点、そうではなかった「完了」を見つけること Ref. 43。この能力は育成の重点として存在しなかった。これほど自信たっぷりに、これほど上手な文章で嘘をつく者がいなかったからだ。
  4. サイジングと運用(第3、4、15段、16から22段)。環境とは何か、どうデプロイするか、継続的インテグレーションとは何か、本番で何を計測するか、インデックスとは、破断点とは、警報の閾値とは何か。以前は別の役割の領域だった。今はジュニアがそれを行うモデルを指揮するのであり、何を求め、それをやったことをどう検証するかを知らなければならない。
  5. セキュリティと帰結(第14、18段)。システムのどの行動が世界に作用するか、錠とは何か、フェイルクローズドとは何か、脆弱性とは何か、そしてなぜ依存関係の更新は変更なのか。
  6. 決定とオーナーとの意思疎通(第1、6、20段)。推薦と代替案を添えて、うまく問うこと。決定を、発言そのまま、日付、持ち主とともに書くこと。プログラミングをしない人が追えるマニュアルを書くこと。方法において、ジュニアはオーナーとモデルのあいだの翻訳者であり、翻訳は双方向に行われる。
  7. 道具としての英語。 方法のプロンプトは英語だ。モデルは英語でより正確に指示に従うからだ。話せる必要はない。プロンプトを読んで各条項を理解し、場合が求めるときに新しい条項を書ければよい。
  8. モデルの失敗のカタログ。 モデルが間違うそれぞれの形を、その匂いで見分けること:質問する代わりに仮定する、一次データを発明する、過剰に報告する、範囲外のことを「ついでに」する、頼まれていないものをリファクタリングする、あなたの言葉を「改善」する、証拠なしに閉じる、わからないときに黙る。私がセッション中に行い、ルールになった四つの訂正 Ref. 45 がその例だ:どれも、育ったジュニアが最初の報告で検知しなければならない失敗である。
  9. 予算としてのコスト。 トークン、継続的インテグレーションのクォータ、オーナーの時間。コストを見ないジュニアは、二倍使って半分しか納めなかったマルチエージェントのチームを繰り返す Ref. 6。

ジュニアがプログラミングについて知らなければならないこと:手職ではなく、読み書きの素養

ここに、私が最も大事に思い、最も誤解される機微がある。コードを一度も書いたことのないジュニアは、モデルがコードの*中で*嘘をつくときにそれがわからない。そして方法には、今日は私が主文書で仮説として印を付けている、人間が本当に見なければならない瞬間がある。だから最低限の読み書きの素養は交渉の対象ではない。そのリスト:

最初の段階で教えられ、コースのあいだずっと練習され、そしてそれは手職ではない:手職を営むことを可能にする読み書きの素養だ。

何を目指してジュニアを育てるか

回りくどい言い方はしない。目標の明快さに他のすべてがかかっているからだ。手でプログラムを書く時代の後にジュニアを育てる目標は、そのコードを一行も書かずに本番のシステムについて責任を負える人を育てることだ:小さなプロジェクトを二十四の段を通して端から端まで運び、モデルを指揮し、各段で証拠を要求し、オーナーとともに決定し、そしていかなるときも何が検証され、何が信じられており、何が見えていないかを知っている人。私はそれを、暫定的に*証拠の技術的な持ち主*と呼んでいる:コードを読まず、それでいて、証拠を手に、システムは業務が求めたことをしており、明日もそうし続ける、と言える人だ。

目標から出る三つの帰結が、育成を整える:

  1. 評価の成果物はコードではなく証拠だ。 ジュニアは、書いた契約、組んだツリー、仕様化した保留項目、要求した赤、受け入れなかった報告で評価される。コースのマニュアルの付録Aの評価基準がすでにそう言っている:登っていない、登った、判断力の証拠とともに登った。その三番目の水準、モデルが間違えた事例とそれをどう検知したかを語れること、が本当の目標だ。
  2. 反射はインシデントで形成され、理論では形成されない。 疑うべきだと読んで、モデルを疑うことを学ぶ人はいない。モデルが「完了」と言ってそうではなく、それをテスト環境で発見したときに学ぶ。だからコースにはわざとの試験がある(質問を一つ答えずに置いてモデルが何をするか見る、調査に仮定を残す)。だから育成には、うまくいく課題だけでなく、設計されたインシデントがなければならない。
  3. ジュニアは方法の全体で育つのであって、一区間では育たない。 誘惑は、ループの中で「保留項目をやらせる」ことだ。それが小さなコードの課題を与えることに最も近い。それは誤りだ:立ち上げのないループは砂の上に建てることであり、第0段や第3段を一度もやったことのないジュニアは、なぜ第5段がその形をしているのかを理解しない。二つのガイドプロジェクトはそのために存在する:新規のものと受け継いだもの、端から端まで、二十四の段と八つのステーション。

どう育てるか:その計画

以下は私が使うであろう計画であり、最初のコホートで使うつもりのものだ:四つの段階、期限なし(方法には期限がなく、育成にもない:各段階はその修了リストが「はい」になったときに終わる)。メンター付きで、コースの二つのガイドプロジェクトの上で。そしてその後、本物のオーナーを持つ小さな実際のプロジェクト。

段階1:読み書きの素養と、研究対象としてのモデル

段階2:新規プロジェクト、メンター付き

コースのマニュアルのパート1を、そのまま、ガイドプロジェクト「Turnera」か自分の小さなプロジェクトの上で。二十四の段。三つのメンタリングのルールとともに:

段階3:受け継いだプロジェクト、メンターは控えめに

マニュアルのパート2:受け継いだTurnera、または本物の小さなレガシー。正常化の区間と最初の二つのブロック。ここでメンタリングは下がる:メンターは復元された地図と食い違い、速度の印の付いた監査の報告、そして修正モードでの最初のバグの締めを読む。この段階の目標は、新規プロジェクトが教えないことをジュニアが学ぶことだ:モデルを通して他人のシステムを読むこと、コードがしていることのうち何が間違いで何が忘れられたルールだったかをオーナーとともに決めること、そして書き直さないこと。

段階4:実際のプロジェクト、一人で

本物の小さなプロジェクトを、一日十五分を持つ本物のオーナーとともに、端から端まで。メンターは介入しない。最後に数字付きの振り返りを読む。ジュニアがリリースのチェックリストの二十四の条件すべてを「はい」にして本番に到達したら、育成は済んでいる。そうでなければ、そのリストがどの段を登り直すべきかを正確に言い、それもまた育成だ。

何が進み具合を測るか

いくつ保留項目を閉じたか、ではない。三つのこと、この順で:

  1. 何回モデルを捕まえたか、そしてどの段で。新規プロジェクト全体で一度もモデルを捕まえなかったジュニアは見ていない:モデルは必ず失敗する。
  2. オーナーにいくらかかったか。 一日あたりの質問の分数。増えているなら、ジュニアは方法が自分に解かせようとしていることをオーナーに転嫁している(第1段)。
  3. はしごへの変更提案の質。 これが判断力の指標だ:自分のインシデントで正当化された具体的な変更を提案するジュニアは、方法をリストとしてではなく生きたものとして理解した。

役割とチームへの影響

チームを率いる人が必ず聞くので書いておく。ジュニアがこうして育つなら、チームは形を変える:

リスク、和らげずに言う

まだ練り上げるべきこと 仮説

  1. 他人のコードをうまく読むために、どれだけプログラミングをしたことがなければならないか。私の直観では、重要なのはデバッグしたことであって書いたことではなく、少しで足りる。まだデータはない。
  2. 四つの段階の計画は、私のプロジェクトと、モデル以前に教えたことから書かれたものであって、コホートから書かれたものではない。最初のコホートがそれを修正するだろう、コースと同じように。
  3. 「証拠の技術的な持ち主」が新しい役割なのか、別の道具を持ったいつものシステム技術者なのか。私は後者に傾いていて、ならば名前は余計だ。だが市場は名前を必要とするだろうし、もっと悪い名前が提案される前に一つ提案するほうがよい。
  4. 方法を使わないチームに入るジュニアはどうなるか。この文書はチームがそれを採用することを前提にしている。そうでなければ、こうして育ったジュニアはコードを求めるシニアとぶつかる。答えは持っていない。ただ、そのシニアが読めるように方法は公開されている、ということのほかは。