Claude Code を新開発者としてオンボーディングする:17 年の開発経験から得た教訓
17 年間の大規模 C# プロジェクト管理者が、新卒開発者へのオンボーディング手法を AI ツール「Claude Code」に適用し、長年の技術的負債を抱えたコードベースの管理と改善を実現した事例。
キーポイント
AI に開発者同様のオンボーディングを導入
従来のブラウザ版 AI と異なり、Claude Code を「新人開発者」と見なし、プロジェクトの背景や文脈を段階的に説明して学習させる手法を採用した。
文脈共有のための専用リポジトリ構築
AI がプロジェクト全体を理解できるよう、すべての AI 関連のコンテキスト情報を独立したリポジトリに集約し、継続的な学習環境を整備した。
大規模コードベースの再管理可能性向上
17 年間、20 万人以上のテストと 70 万行のコードを維持してきた Skyline プロジェクトにおいて、この手法により開発者が触れられなかった領域へのアクセスが可能になった。
影響分析・編集コメントを表示
影響分析
この記事は、LLM を単なるコード生成ツールとしてではなく、組織の知識を継承する「若手エンジニア」として扱うべきだという新しいパラダイムを示しています。大規模かつ複雑なレガシーシステムを持つ企業や研究機関にとって、AI の導入コストと学習曲線を劇的に低下させる実用的なフレームワークを提供しており、開発現場における AI 活用の標準的なプラクティスとして定着する可能性があります。
編集コメント
AI ツールを「使役する」のではなく「教育して協働する」という視点は、長期的な開発効率化において極めて重要な示唆を含んでいます。特にレガシーコードの維持管理に悩む組織にとって、このオンボーディング手法は即座に実践可能な解決策となるでしょう。
Skyline は、ワシントン大学のマッコス研究所で主任開発者ブレンダン・マクリーンによって維持されているオープンソースのタンパク質解析ソフトウェアであり、2008 年以来活発に開発が続けられています。Skyline は、血液漿や組織などのサンプルからタンパク質を検出・定量するのを研究者が支援し、バイオマーカーの発見、疾患研究、創薬において不可欠な役割を果たしています。マッコス研究所のコードベースには 70 万行以上の C# が含まれており、17 年にわたり小規模チームによって維持され、20 万件以上の自動化された夜間テストが実行されています。

*ブレンダン・マクリーンとそのチームが 2008 年以来 Skyline の開発と維持を行ってきたワシントン大学マッコス研究所の本拠地を表す、Blender で作成されたシアトルのスカイラインの 3D イラスト。Claude は背景に Claude ロゴを追加するのをブレンダンが支援しました。画像提供:マッコス研究所。*ほぼ 30 年にわたり、ブレンダンは Skyline の接合組織として機能し、研究室に数十人の学部生、大学院生、ポスドクをオンボーディングしてきました。
開発者が加入したり離れたりするにつれて、コードベースは彼らの貢献を取り込みました。2024 年までに、それは長寿プロジェクトが抱える典型的な負担を背負うようになりました。特定の領域では、開発者の入れ替わりにより、手がつけられないほど複雑化してしまいました。
何十年にわたるラボメンバーの育成を通じて、ブレンダンは研究者がラボの膨大なコードベースをすぐに理解できるようになる方法を熟知していました。彼が予想していなかったのは、同じ手法を AI ツールに応用することで、スカイラインのコードベースが再び管理可能になるという結果でした。
同じオンボーディングの問題、異なる種類の開発者
ブレンダンは、現代の AI コーディングツールが、まさにこの言語と環境のために特別に設計されたツールと同じように C# の行を理解できるかどうか懐疑的でした。
ブラウザ上の Claude.ai での初期実験は、そのパターンを確認させました。彼は問題を説明し、回答を受け取り、プロジェクト全体を参照せずに記述できる範囲の問題に限定して、C# ファイル丸ごとを自分のプロジェクトにコピーしました。
「変更がより漸進的になると、作業が非常に手間がかかるようになりました」とブレンダンは言います。
Claude.ai とのセッションは毎回、スカイラインとは何か、そのコンポーネント間の関係性、あるいは 17 年間にわたる開発で確立されたものが何であるかを理解していないため、ゼロから始めるような感覚でした。
これは、ブレンダンの新人開発者をオンボーディングする際に直面した経験と同じものでした。それが彼に一つのアイデアをもたらしました。
「Claude を Claude Code として私の大規模プロジェクトに導入する方法は、研修生開発者と同様に、成功する限定的なプロジェクトを達成し、次のイテレーションのための改善された文脈を生み出すのに十分な説明を行うことで行える」とブレンダンは述べています。
彼はすべての AI コンテキストを独自のリポジトリ pwiz-ai へ移し、コードベースから分離して、すべてのブランチと時間軸にわたって適用できるようにしました。ルートディレクトリにある CLAUDE.md ファイルは環境設定を担当し、Claude に関連するドキュメントへの参照を提供します。これは専門知識そのものではなく、「土地の地形」のような役割を果たすものです。
専門知識は skills に宿っています。これはエージェントに機能と専門性を与えるためのオープンフォーマットです。例えば彼のデバッグスキルは、彼が「推測とテスト」モードと呼ぶ状態から Claude を引き出し、修正を試みる前に根本原因分析へと導くように設計されています。スキルは手動または自動的にトリガーできます。ブレンダンは最も重要なスキルに明示的な条件を設定しており、デバッグスキルの説明には「バグ、障害、予期せぬ動作を調査する際は常に読み込む」と記載されています。

*コンテキスト、スキル、MCP 統合が Skyline のコードベースにどのように接続されているかを示す pwiz-ai リポジトリの構造。画像提供:MacCoss lab。*コンテキストが確立されたことで、Claude にコードベースのデバッグの詳細を教えるためのオーバーヘッドは大幅に軽減されます。Claude はすでにコードが何を行うかを知っています。対話はゼロからではなく、理解に基づいて始まります。
「クラウドが私の大規模プロジェクトを本当に学習できない」という一見重大な懸念は、ブレンダン氏によれば、「コンテキストは維持し成長させるべき別のアーティファクトに過ぎない」ということがますます明確になってきているそうです。
技術的負債の削減と開発加速
Skyline におけるファイル表示パネルの構築という1年間のプロジェクトは、ファイルシステム監視機能やドラッグ&ドロップによる整理機能を備えた、ドキュメント関連の全ファイルを可視化する新インターフェースでしたが、担当者が退職したまま未完のまま放置されていました。ブレンダン氏は Claude Code を用いてこのプロジェクトを引き継ぎました。
2 週間後には完了し、最終コミットはすべて Claude と共同作成されたものとなりました。
「以前にそのような状態で残されていた取り組みは、通常は廃棄される運命にあります」とブレンダン氏は述べています。学術研究室では開発者のローテーションが頻繁であり、大学院生は学位取得で卒業し、ポスドク研究者は次のキャリアへ移り、インターンは夏休み終了とともに退社します。過去には、進行中の作業は永遠に棚上げされたままになることがほとんどでした。
3 年前、ブレンダン氏は Skyline の毎夜実行されるテスト管理モジュールへの機能追加を停止しました。これは、そのモジュールを担当していた開発者を失ったためです。このモジュールは LabKey Server という科学データ用ウェブポータルの一部として Java で実装されていました。最近では、熟練した LabKey 開発者が Claude Code を活用してセットアップドキュメントを作成した後、ブレンダン氏は自分が長年追加したいと思っていた機能を1日未満で追加し、過去にはデザイナーにしか作らせなかったレイアウトを CSS で更新しました。
その後、新たなインフラストラクチャが整備されました。
Skyline の 2,000 枚以上のチュートリアル画像のスクリーンショット再現は、完全に自動化され、ほぼ 100% 再現可能になりました。Claude Code を拡張して差分のみを表示するビューやピクセル変化の拡大機能を追加し、C# で Claude が作成した MCP サーバー(Model Context Protocol サーバー)によってこれらの差分を「視認」できるようにしています。Claude Code は毎朝、Brendan の出社前に彼のメールボックスに届くように、Skyline の夜間テストインフラストラクチャから取得したテストの失敗、例外、未解決のサポートスレッドを含む日次サマリーを生成します。
また、この機能を可能にするために、Claude は Python で MCP サーバーも作成しました。これは LabKey サーバー上の 3 つの異なるリレーショナルデータストリーム(チームメール、GitHub のリリースタグ付きコード)から情報を引き出しています。

Claude Code によって自動的に生成される日次サマリーメール。Skyline の夜間テストインフラストラクチャからデータを取得しています。画像提供:MacCoss ラボ。
Brendan の開発者たちは、もはや自らコードを書くことはほとんどなく、主に Claude Code に指示を出すことで作業を遂行し、自動化スクリプトや MCP 実装の自律的な生成にこのツールを活用しています。例えば、エージェント型コーディングツールの導入に懐疑的だった実験室の開発者が、Claude Code の支援により新しいプロット拡張機能(イオン移動度データを可視化するためのモビログラムパネル)を構築・リリースし、その功績を Claude Code に帰属させています。

*The mobilogram pane was built with Claude Code, visualizing ion mobility data alongside mass spectrometry results. Image courtesy of MacCoss lab.*「他の業務に埋もれてしまい挑戦しにくいと感じていた新しい機能を、ほぼ全員が取り組んでいるのを目にします」とブレンダンは語ります。
レガシーコードベースに取り組む開発者へのアドバイス
17 年にわたる開発者のオンボーディングと、Claude Code に対して同様の手法を適用して 1 年以上が経過した経験に基づき、レガシーコードベースに取り組む開発者に対し、ブレンダンは以下のように伝えます。
コンテキストは最高の味方です
Claude が生成する TODO リストや計画はセッション間で継続されません。コンテキストこそが継続されるものであり、意図的に維持する必要があります。これは多くの開発者が省略してしまう部分であり、それが多くの開発者の成功が頭打ちになる理由です。
「Claude はあなたが『コンテキスト』を記録しなければ学習できません。魔法を期待しないでください」とブレンダンは言います。「コンテキスト層の構築と維持に投資してください。そして、他のプロジェクト成果物と同様に扱いましょう:バージョン管理し、成長させ、維持してください。」
ブレンダンは AI のコンテキストを別リポジトリに保持しています。なぜなら、コードとは異なる速度で成長し、すべてのブランチや時間点に適用されるためです。コードリポジトリ内にコンテキストを保持することは限界が生じていました。同じリポジトリにコンテキストを保持することも有効な代替案ですが、重要なのはそれがバージョン管理され、維持され、必要時に利用可能であることです。
スキルライブラリの構築に投資してください
skills(スキル)を使用して、どの Claude インスタンスでも読み込めるドメイン知識をエンコードできます。ブレンダンのスキルは「参照のみで埋め込まない」という原則に従っています:各スキルはコンテンツを複製するのではなく、中央のドキュメントナレッジベースへのポインタとして機能し、軽量かつ維持管理が容易に保たれています。
最も頻繁に使用されるものには、プロジェクトとそのドキュメントを Claude に案内する「skyline-development」スキル、プロジェクト固有のコミットおよび PR(プルリクエスト)規約をエンコードしたバージョンコントロールスキル、そして「推測とテスト」モードから Claude を引き出し、修正を試みる前に根本原因分析へと導くように設計されたデバッグスキルがあります。
データアクセスが鍵となる場合は MCP 統合を活用する
Claude が実際のデータ(テスト結果、例外レポート、サポートスレッドなど)にアクセスする必要がある場合に、MCP 統合(Model Context Protocol integration)を構築します。
オープンソースプロジェクトにおいて、コンテキスト層の構築と維持には特に大きな重みがあります。オンボーディング予算はなく、記録されたもの以外に組織的記憶も存在せず、どの貢献者が来年も継続するかを保証するものもありません。一度構築されたコンテキストは、すべての貢献者に利用可能であり、人間の組織的知識が決してそうであるように、プロジェクトの存続期間を通じて永続します。pwiz-ai リポジトリ自体がオープンソースの成果物であり、特定の貢献者ではなくプロジェクトに属し、それを構築した全員よりも長く存続するコンテキストです。
17 年間のオンボーディングから得た一つの結論
新入社員に 70 万行ものコードベースをいきなり渡して、初日から成果を期待する人はいません。むしろ、範囲の限られたプロジェクトを与え、その内容を一緒に確認しながら進め、理解が深まるにつれて担当範囲を広げていくものです。
ブレンダンが学んだように、Claude と構築するコンテキストも同じ原理で機能します。
ある程度コードベースについて知識を蓄えたエンジニアは、異なるブランチや時間軸を超えて作業を行えます。Claude も、十分なコンテキストと指示を与えられれば、同様のことが可能です。
アンソロピックの共同創設者であるダリオ・アモダイ氏(Dario Amodei)は、以前はマッコス研究所(MacCoss Lab)の一員でした。
原文を表示
Skyline, the open source protein analysis software maintained by principal developer Brendan MacLean at the University of Washington's MacCoss Lab, has been in active development since 2008. Skyline helps researchers detect and quantify proteins in things like blood plasma and tissue, which is vital for biomarker discovery, disease research, and drug development. The MacCoss Lab codebase contains 700,000+ lines of C#, maintained for 17 years by a small team running 200,000+ automated nightly tests.

For nearly three decades, Brendan has been Skyline’s connective tissue, onboarding dozens of undergrads, grad students, and postdocs to the lab.*
As developers joined and left, the codebase absorbed their contributions. By 2024, it carried the usual burdens of a long-lived project. Certain areas had grown untouchable as developers turned over.
After decades of training lab members, Brendan knew how to bring researchers up to speed on the lab’s massive codebase. What he didn't expect was that the same methodology, applied to an AI tool, would make Skyline’s codebase manageable again.
The same onboarding problem, a different kind of developer
Brendan was skeptical modern AI coding tools could understand lines of C# the way a tool purpose-built for exactly this language and environment already did.
Early experiments with Claude.ai in the browser confirmed the pattern. He'd describe a problem, get a response, and copy a whole C# file back into his project, limiting scope to contained problems he could describe without any reference to project code.
"It became very laborious once changes became more incremental," Brendan says.
Every session with Claude.ai felt like starting from scratch as it had no understanding of what Skyline was, how its components related, or what 17 years of development had established.
That was the same experience Brendan faced onboarding new developers, which gave him an idea.
"I could introduce Claude through Claude Code to my large project as I would a trainee developer: by explaining enough to achieve a successful limited project and produce improved context for the next iteration," Brendan says.
He moved all AI context into its own repository, pwiz-ai, kept separate from the codebase so it applies across all branches and time points. The CLAUDE.md file at the root handles environment setup and points Claude to the relevant documentation: think of it as the ‘lay of the land,’ not the expertise itself.
The expertise lives in skills, an open format for giving agents capabilities and expertise. His debugging skill, for example, is designed to pull Claude out of what he calls "guess and test" mode, pushing it toward root cause analysis before attempting any fix. Skills can be triggered manually or automatically; Brendan tunes his most critical ones with explicit conditions—the debugging skill description reads "ALWAYS load when investigating bugs, failures, or unexpected behavior."

With context established, the overhead of teaching Claude the ins and outs of debugging the codebase becomes significantly less steep. Claude already knows what the code does. The interaction starts from understanding rather than from zero.
“What seemed like a major concern—'Claude can't truly learn about my large project'—grows ever clearer: context is just another artifact to maintain and grow,” Brendan says.
Reducing tech debt and accelerating development
A year-long project to build a Files View panel in Skyline—a new interface showing all document-related files, with file system monitoring and drag-and-drop organization— sat unfinished after the developer who owned it left. Brendan picked it up with Claude Code.
Two weeks later it was done, with all final commits co-authored by Claude.
"Prior efforts left in that shape have typically ended up being discarded," says Brendan. In an academic lab, developers rotate often—grad students finish degrees, postdocs move on, interns leave at the end of summer. In the past, any work-in-progress would have remained forever shelved.
Three years ago, Brendan stopped adding features to Skyline's nightly test management module after losing the developer who maintained it. The module was coded in Java as part of the LabKey Server scientific data web portal. Recently, after having a skilled LabKey developer create setup documentation using Claude Code, Brendan spent less than a day adding features he'd wanted for years and updating the page layout with CSS he had only ever employed designers to produce in the past.
New infrastructure followed.
Screenshot reproduction for Skyline's 2,000+ tutorial images is now fully automated and nearly 100% reproducible, extended with Claude Code to add diff-only views and pixel change amplification, and an MCP server written in C# by Claude so that it can “see” these diffs. Claude Code generates a daily summary each morning, showing test failures, exceptions, and open support threads pulled from Skyline's nightly test infrastructure that lands in Brendan's inbox before he sits down to work.
Claude also wrote the MCP server in Python to make this capability possible, drawing from three separate relational data streams on a LabKey Server, team email, and code with release tags on GitHub.

Brendan's developers are now barely writing code themselves, largely instructing Claude Code instead, and use the tool to autonomously generate automation scripts and MCP implementations. For instance, a developer in the lab who had been skeptical of agentic coding tools built and shipped a new plotting extension—a mobilogram pane for visualizing ion mobility data—and credited Claude Code.

"I am seeing almost everyone taking on fun new features that they might have felt too buried in other work to attempt," says Brendan.
Advice for developers working on legacy codebases
Based on 17 years of onboarding developers and more than a year of applying the same methodology to Claude Code, here's what Brendan would tell developers working on legacy codebases.
Context is your best friend
The to-do lists and plans Claude generates don't persist across sessions. Context is what persists, and it has to be maintained deliberately. This is the part most developers skip, and it's why most developer success plateaus.
"Understand that Claude can't learn without you recording ‘context.’ Don't expect magic,” says Brendan. “Invest in building and maintaining your context layer. And treat it like any other project artifact: version it, grow it, maintain it.”
Brendan keeps the AI context in a separate repository because it grows at a different speed than the code and applies to all branches and time points—keeping it inside the code repository was becoming limiting. Keeping context in the same repo is a valid alternative; what matters is that it's versioned, maintained, and available when needed.
Invest in building your skill library
Useskills to encode domain knowledge any Claude instance can load. Brendan's skills follow a "reference do not embed" principle: each skill points into a central documentation knowledgebase rather than duplicating content, keeping them lightweight and easy to maintain.
His most-used include: a skyline-development skill that orients Claude to the project and its documentation; a version-control skill that encodes project-specific commit and PR conventions; and a debugging skill designed to pull Claude out of "guess and test" mode, pushing it toward root cause analysis before attempting any fix.
**Use MCP integrations when data access is key
**
BuildMCP integrations where Claude needs access to real data: test results, exception reports, support threads.
For open source projects, building and maintaining a context layer carries particular weight. There's no onboarding budget, no institutional memory beyond what gets written down, no guarantee that any contributor will still be around next year. Context, once built, is available to every contributor and persists across the project's lifetime in a way that human institutional knowledge never does. The pwiz-ai repository is itself an open source artifact—context that belongs to the project, not any one contributor, and outlasts everyone who built it.
Seventeen years of onboarding, one conclusion
You wouldn't hand a new hire a 700,000-line codebase and expect results on day one. You'd find them a contained project, walk them through it, and expand their scope as their understanding grew.
As Brendan learned, the context you build with Claude works the same way.
Once knowledgeable enough about a codebase, engineers can work across branches and time points. Claude, given sufficient context and direction, can do the same.
**Dario Amodei, co-founder of Anthropic, was previously a member of the MacCoss Lab.*
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み