4 min read

How Codeium Helps Onboarding of windsurf

Current Reality
How Codeium Helps Onboarding of windsurf

Current Reality

Any developer who has worked professionally knows that complete effectiveness does not come on day one of a job. There is a period of onboarding time to learn the unique aspects of the way that company develops software — the particular tech stacks, syntax and semantic, internal libraries and frameworks, best practices, design decisions, and more. And this is completely expected, since different business goals and outcomes, unique histories, and other company-particular factors naturally lead to different tech stacks and standards.

For any enterprise, minimizing time to onboard is critical for obvious reasons. Effective developers add value to the organization, and onboarding time is a pure cost in support of making newly hired developers effective. However, most companies estimate that onboarding takes 4–6 months.

Why is this? A host of reasons, from minimal documentation to legacy tech stacks to duplicated and fragmented code to poorly enforced standards and best practices. These reasons make it hard for a developer to quickly, independently grok the state of the existing code in order to be effective in building upon it.

If a newly hired developer cannot independently understand the current state, they will either start developing software that only exacerbates the problem or ask tenured developers that do have this understanding. This has the second order effect of taking away time from these tenured developers who are best positioned to be developing new software that generates more business outcomes, slowing down the business overall.

Companies have tried to document best practices, but it is generally hard to enforce these during development — at best these best practices will be pointed out during code review and deployment. In addition, best practices rarely capture the totality of the decisions and standards that the company would like to enforce.

How AI Could Help

A developer could theoretically independently onboard onto a codebase much more quickly if they can just invoke an AI to explain the code at hand for them. That is the lowest hanging fruit when it comes to the onboarding problem.

LLMs have already been shown that, given the relevant context, they are able to accurately explain and summarize all sorts of text, from prose to code. The key though is “given the relevant context.” Codebases are unique because of the distributed nature of the knowledge that arises from layers of abstraction and best practices around organization. Even as a human, if you want to explain a block of code, you likely will not be able to accurately do so without the surrounding code, code in imports, code nearby in the directory, and more. So, the challenge here is in consolidating all of this relevant information to pass into the LLM for inference.

At Codeium, we’ve built a proprietary context awareness engine that can actually reason about code in the context of the rest of the codebase, even across multiple repositories. To highlight the efficacy, our A/B testing shows that the engine increases the amount of code being accepted by 38% over just using the code in the current file as context, suggesting that it is effective in pulling in relevant information from around the codebase.

We have also repurposed the AST parsing logic in order to add useful “Code Lens” button above each function, class, method, etc:

So, with a simple click of a button that says “Explain” (or highlighting a block of code and right-clicking), Codeium accurately explains what the corresponding code does

But what if you want to explain how two pieces of code interact with each other? This is very common, especially for microservice architectures. Well, we have also allowed developers to reference code entities from their chat panel with at-mentions, and you can at-mention multiple code entities in the same message:

Explaining code is just the starting point of reducing onboarding time. What about enforcing best practices earlier in the software development life cycle (as opposed to just during code review or deployment)? This is a bit trickier of a problem, but we have already started building tooling here, such as context pinning guidelines. Context pinning is a capability that allows developers to guide AI by specifying priors that certain parts of the codebase are relevant to whatever they are currently working on. Context pinning guidelines take this one step further, where an organization can centrally define rules such as “when a developer is working in part X of the codebase, make sure to context pin Y and Z,” and these rules then automatically get pulled down to any developer’s IDE when they are working in part X, without them manually having to do anything.

Results so Far

Overall, developers at Codeium’s enterprise customers already feel the benefits of Codeium’s capabilities that improve onboarding. As one developer from Zillow put it:

“For me it’s been a big help in ramping up to learn new technologies and codebases. For context, I just joined a couple months back so I’m still learning the ropes… Since around the time I joined, Zillow adopted using Codeium which made the learning curve a lot easier for someone who’s new to the job.”

Anecdotally, customers have reported their onboarding times for new developers going from a few months to a few weeks, a 4x decrease in time that generally corresponds to many tens of thousands of dollars in additional productivity per onboarding developer.

On top of that, we have heard feedback that senior developers notice the reduced time spent on answering simple starter questions, as well as value in unique situations, such as time saved in incorporating code written by contractors (can understand what was written a lot more quickly). On the last point, if any developer at a company can quickly ramp up on any other part of the codebase, we cannot wait to start hearing feedback on how companies can be more agile by shifting around development resources to the most critical problems of the time.

Conclusion

Developer productivity generally gets the headlines when it comes to the value propositions of an AI code assistant such as Codeium. However, this assumes a ramped developer. Deeply contextually aware products such as Codeium are able to complement this with the additional value proposition of decreasing the time to onboard a newly hired developer, leading to a more effective and agile software development organization.

We look forward to continuing to expand our offerings in ways that make every developer at every company as effective as possible, independent of tenure.