Skip to main content
Test Double company logo
Services
Pragmatic Services Overview
Holistic software investment consulting
Acccelerate Software Delivery
Balance efficiency and quality
Improve Product Impact
Drive results that matter
Upgrade Rails Seamlessly
Update Ruby and Rails versions
Scale DevOps
Dev experience and infrastructure
Technical Recruitment
Build tech & product teams
Case Studies
Solutions
Legacy Modernization
Renovate legacy software systems
Pragmatic AI
Solve business problems without hype
Technical & Product Assessments
Uncover root causes & improvements
About
About
What's a test double?
Approach
Meeting you where you are
Founder's Story
The origin of our mission
Culture
Culture & Careers
Double Agents decoded
Great Causes
Great code for great causes
EDI
Equity, diversity & inclusion
Insights
All Insights
Hot takes and tips for all things software
Leadership
Bold opinions and insights for tech leaders
Developer
Essential coding tutorials and tools
Product Manager
Practical advice for real-world challenges
Say Hello
Test Double logo
Menu
Services
BackGrid of dots icon
Services Overview
Holistic software investment consulting
Software Delivery
Accelerate quality software development
Product Impact
Drive results that matter
Cycle icon
DevOps
Scale infrastructure smoothly
Upgrade Rails
Update Rails versions seamlessly
Technical Recruitment
Build tech & product teams
Case Studies
Solutions
Solutions
Legacy Modernization
Renovate legacy software systems
Pragmatic AI
Solve business problems without hype
Technical & Product Assessments
Uncover root causes & improvements
About
About
About
What's a test double?
Approach
Meeting you where you are
Founder's Story
The origin of our mission
Culture
Culture
Culture & Careers
Double Agents decoded
Great Causes
Great code for great causes
EDI
Equity, diversity & inclusion
Insights
Insights
All Insights
Hot takes and tips for all things software
Leadership
Bold opinions and insights for tech leaders
Developer
Essential coding tutorials and tools
Product Manager
Practical advice for real-world challenges
Say hello
Developers
Developers
Developers

Accelerate your understanding of unfamiliar code with AI

AI makes exploring unfamiliar code faster than ever, but speed isn't understanding. Discover how to bridge the gap and truly master a new codebase in Part 1 of this 5-part series.
River Lynn Bailey
|
October 29, 2026
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Part 1 of 5. Landing in code you've never seen is faster with AI tooling than it has ever been. Faster isn't the same as understanding, and the gap between the two has a shape.

‍

There's a particular discomfort in opening a codebase you've never seen. You don't know where anything lives, which files matter, or what breaks if you touch the wrong thing, and it can tip over into negative feelings about the code or worse—imposter syndrome surrounding your own abilities.

With the ever-growing capabilities of AI tooling, though, that discomfort is now trivial to resolve: a model can explain a module in a minute or two. But speed and understanding are not the same thing. A fast explanation can leave you feeling oriented, when you've only read a summary you can't yet vouch for.

The solution for understanding is simple to state, but it does require work: let AI orient you, then verify what it told you against the real code. What's less obvious is how much the "verify" part changes at every point in the curve.

The curve everyone shares, and what it really is

The curve at the top of this post is likely one you've seen in many variations. It's a line labeled "confidence" that shoots up to a Peak of Confidence, falls into a Valley of Realization, and climbs a Slope of Growth to a Plateau of Mastery. The shape traces back to a humorous 2014 drawing by Joseph Paris, and it's not a chart from the 1999 paper that gave the Dunning-Kruger effect its name.

What Kruger and Dunning measured was a snapshot across different people, not a journey. They tested undergraduates on grammar, logic and humor, split them into quartiles by score, and compared each group's average guess about its own standing with its real standing. Even the bottom group didn't think they were experts. They thought they were closer to average than they were.

However, the curve here is a story about a week I lived, on one ticket in a system I didn't know. The feelings on it are real: the ease, the wall, the slow climb to understanding. Each of those has research behind it, starting with how an understanding of code gets built in the first place.

Why understanding has a shape at all

Research on code comprehension says you don't absorb a codebase all at once. You build a model of it in layers. Pennington showed that when code is new to you, the first layer is control flow: what calls what, in what order. The data flow, the goals, and a full model of what the code is trying to accomplish come after.

What moves you through those layers is what Pirolli and Card called information scent: the cues, like function and file names, that tell you where to look next. A model follows the same scent. It reads files, runs grep, and follows references from one place to the next, which is part of what makes AI tooling a good fit for this work. In my experience, it also goes wrong in the same places you would. Where the names are opaque and the dependencies are tangled, the scent is weak for both of you, and a confident wrong guess compounds into more misunderstanding.

The layers and the weak scent, together, are what give learning a new codebase its shape. On day one you have the first layer and a fluent explanation of the rest, which feels like the whole thing. The valley is where you find out it wasn't. The climb is the other layers going in, one verified piece at a time.

The four phases, and what the AI does in each

This post series follows the four phases from above, one for each stretch of the curve: the peak, the valley, the slope, and the plateau. Each comes with its own feeling, and a different job for the AI. Each part starts with that feeling, then the research around it, then what to do with the tooling and how to verify it, and the pitfalls.

  • Onboarding: "this is easy!" Heavy Claude use. The AI reads the code, explains it, and does most of the work. Part 2 is about why that feeling misleads you, and about the one thing you can do at the peak that decides what the valley costs.
  • Learning: "this is impossible." Claude as a mentor, not a coder. The AI explains, paces and asks; you write the code. This is the slowest-feeling phase. Part 3 is about the tooling that stops and hands the next piece back to you.
  • Baseline: "I'm starting to get this." Back to a normal pace, with Claude helping a lot. The AI does the heavy lifting again, and it's safe now, because you can check its output against a location you can open. Part 4 is about the verification loop, and about writing the verified model down so nobody pays for it twice.
  • Expertise: "I've got this." Using Claude to shape the changes, while still working in the code directly to refine them. Part 5 is about what the research says expertise changes, and about the tooling that plans and designs without writing.

‍

Orient quickly, then verify

The tooling has made the first part of understanding unfamiliar code genuinely fast, but that speed is the easy half of building a true understanding. The more difficult half is checking what the tooling told you against the real source, which is what separates knowing the code from feeling like you do.

Part 2 starts at the peak and looks at why that first afternoon with an AI tool feels like understanding when it isn't, and how to use the peak without paying for it later.

‍

River Lynn Bailey is a Senior Software Consultant at Test Double, and has extensive experience in AI coding tools and delivery, built on a career of delivering quality software solutions.

AI Insights and More

Sign up for the Test Double newsletter to receive more tips for pragmatic AI approaches.

Subscribe

Related Insights

No items found.

Explore our insights

See all insights
Developers
Developers
Developers
How did I write this blog post?

4 days, 210 commits, and 17 pull requests - the story of how I wrote this post, and prototyped a new Claude Code skill, lives in these details.

by
River Lynn Bailey
Leadership
Leadership
Leadership
Should you replace Salesforce, or keep paying for it?

I suspect more executives are running the build versus buy math on Salesforce than are willing to say so out loud. Here's what actually changes that calculation, and what doesn't.

by
Todd Kaufman
Developers
Developers
Developers
Horizontal Progression for Software

More capable AI doesn't automatically make better software. A longtime WoW player explores what horizontal progression could teach us about building products people love.

by
Dave Mosher
Letter art spelling out NEAT

Join the conversation

Technology is a means to an end: answers to very human questions. That’s why we created a community for developers and product managers.

Explore the community
Test Double Executive Leadership Team

Learn about our team

Like what we have to say about building great software and great teams?

Get to know us
Test Double company logo
Improving the way the world builds software.
What we do
Services OverviewSoftware DeliveryProduct StrategyLegacy ModernizationPragmatic AIDevOpsUpgrade RailsTechnical RecruitmentAssessments
Who WE ARE
About UsCulture & CareersGreat CausesEDIOur TeamContact UsNews & AwardsN.E.A.T.
Resources
Case StudiesAll InsightsLeadership InsightsDeveloper InsightsProduct InsightsPairing & Office Hours
NEWSLETTER
Sign up hear about our latest innovations.
Your email has been added!
Oops! Something went wrong while submitting the form.
Standard Ruby badge
614.349.4279hello@testdouble.com
Privacy PolicyTerms & Conditions
© 2020 Test Double. All Rights Reserved.

AI Insights and More

Sign up for the Test Double newsletter to receive more tips for pragmatic AI approaches.

Subscribe