AI Engineer Summit 2025
Building AI Agents with Real ROI in the Enterprise SDLC
Read the talk
Building AI Agents with Real ROI in the Enterprise SDLC
Booking.com’s work with Sourcegraph connects AI adoption to delivery metrics, then tackles GraphQL generation, legacy migration, and code review through carefully selected context and explicit rules.
From a talk by Bruno Passos and Beyang Liu
Before you start: Familiarity with pull requests, CI pipelines, feature flags, and basic GraphQL will help with the examples.
What did adopting AI actually change?
The CEO says the company needs to adopt AI. Someone buys Copilot, perhaps more out of fear of falling behind than from a clear understanding of the problem. Six months later, the CFO asks what return the purchase produced. What changed for the engineering organization, and how can anyone measure it? Buying access is easy; demonstrating an improvement in software delivery is harder.
That question frames the collaboration between Sourcegraph and Booking.com. Beyang Liu presents Booking as a company actively following adoption through to measurable impact. Bruno Passos is more cautious: Booking still considers itself near the beginning. The useful material is the progression from that uncertain starting point—through rollout, measurement, and training—to agents aimed at specific maintenance tasks.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Experimentation creates a cleanup problem
Booking’s developer-experience mission follows from its travel business: clear developers’ paths so they can build the features that help people experience the world. Progress varies across the company. Passos describes an operation with more than 3,000 developers and cites about 1.5 million room nights, without specifying a period for the latter figure.
Passos reports 2.5 million CI jobs annually. The deeper source of maintenance work, however, is Booking’s experimentation culture. A/B tests introduce experiment branches and feature flags. Teams move on to new features, but the flags and dead code often remain. Repeat that process for decades, and the accumulated experiments become a substantial part of the codebase developers must understand.
While Passos was preparing his slides, his children asked what feature flags were. His explanation—that they linger and pollute the codebase—prompted the response, “Like code farts?” He distinguishes that joke from code smells, then returns to the practical consequence: larger codebases mean longer cycle times and more debugging. Passos describes work in this bloated-codebase situation as over 90% toil, rather than presenting a company-wide time-allocation study.
Quarterly developer surveys reinforce the problem: developers report that working in the codebase keeps getting harder. Liu’s example is the talented engineer building an elaborate system to update legacy code at PwC. The engineering may be impressive, but it consumes expertise that could otherwise address new features and user problems. Dead-feature-flag migrations can become years of work in their own right.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Search first, then an assistant people can use
Sourcegraph’s tools address different parts of that burden. Code Search helps developers find code and build a working understanding across a large codebase. Refactoring and migration tooling supports changes at scale. Cody, its coding assistant, generates code with codebase context. Liu separates the objectives into two loops: augment human creativity in the inner loop of development, and automate repetitive work in the outer loop of the software lifecycle.
Booking started with Search, which made scattered pieces of context easier to locate in its bloated codebase. It then began experimenting with Cody because the assistant could use that search context. The intended next step was to carry the same foundation into agents: an automation should be able to find relevant code before trying to act on it.
The rollout timeline described at the February 2025 AI Engineer Summit begins in January 2024. Booking made Cody available to its developer population, but availability did not ensure continued use. Some developers tried it, saw little value, and stopped. Initially, the company had one LLM choice and token limits that constrained experimentation.
Booking and Sourcegraph then relaxed those usage constraints and introduced model choice per developer. The reason was practical: the model that helped excavate a legacy codebase was not necessarily the best choice for creating a new service. Training followed in July. Developers who had previously abandoned the assistant began finding useful ways to apply it and became regular users. Model access, task fit, and education were separate parts of adoption.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Measure delivery, quality, and modernization
Booking’s initial metric was hours saved. Passos found its basis too weak: research involving only a few developers did not justify the sweeping totals circulating in the industry. Claims of tens of thousands of saved hours could create pressure to reproduce a headline without establishing what had actually improved. Booking began looking for measures more closely tied to its engineering workflow.
After defining new KPIs in October, Passos reports indications by November that daily Cody users were more than 30% faster. Booking defined daily use as activity on at least 12 days in a month, allowing for weekends and days without coding. This was an observed usage cohort, not a randomized treatment group; the talk does not establish that Cody alone caused the difference.
The partnership also produced an API layer in front of Cody, opening possibilities in Slack, Jira, and other tools outside the IDE. This was Booking’s historical integration work; the current Cody documentation does not establish the contract or availability of that particular API layer. Moving beyond the editor mattered because many useful software-development tasks begin in a ticket, a conversation, or an automated workflow.
Booking bounded its KPI program to a year. Short-, medium-, and long-term measures all had to fit that horizon, with long term explicitly meaning one year. Passos introduces four KPIs, discussing lead time for change, quality, and codebase insights before connecting them to modernization.
On delivery, the team examined merge-request review time and throughput. Passos reports that daily Cody users shipped 30% more merge requests than developers who did not use Cody. That throughput observation is distinct from the earlier speed claim. The users’ merge requests also contained less code; Passos had not yet determined what to make of that difference.
The remaining work links measurement to specific engineering interventions:
| Area | Proposed intervention | Purpose |
|---|---|---|
| Vulnerabilities | Combine past vulnerabilities with codebase context | Find lingering or likely weaknesses |
| Test coverage | Add tests around legacy behavior | Check replacement implementations |
| Codebase insights | Find unused code, stale flags, and slow code | Identify modernization targets |
| Replatforming | Use those findings to reduce migration work | Move from years toward months |
The test-coverage idea supplies a concrete bridge: capture legacy behavior in tests, then require the replatformed implementation to pass them. Reducing replatforming from years to months remained the objective, not a completed result.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Prompt customization becomes agent development
Engineers using the assistant also began experimenting with the underlying APIs. Customizing a prompt naturally led to another question: could several calls be composed into a longer automation? Those chains became the starting point for agents.
Early attempts ran into mismatched expectations about what LLMs could do reliably. The accompanying slide also identifies model choice, reproducibility, and reliability as pitfalls. Booking and Sourcegraph responded with a week-long joint hackathon in Amsterdam, bringing their teams together to work through concrete tasks and prompts. Three applications emerged: GraphQL generation, migration analysis, and organization-specific code review.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Retrieve schema paths before generating GraphQL
The first agent addressed Booking’s large GraphQL API. Liu describes its schema as exceeding one million tokens. His explanation frames it as too large for the available context windows and difficult to use coherently even if it could be included. The capacity claim needs a historical qualification: Gemini 1.5 Pro already offered a two-million-token window before this talk. That does not establish whether Booking’s full schema fit its approved tooling, or whether a model could reliably generate queries from it. The engineering problem was selecting usable schema context, not merely increasing the token allowance.
The agent assembles that context in stages:
- Search the schema for candidate nodes related to the request.
- Select relevant nodes from the search results.
- Walk upward to retrieve the parent nodes needed to connect those selections.
- Generate the response after assembling the relevant schema structure.
Finding an isolated field is insufficient if the model does not know how to reach it from a query root. The upward traversal preserves that structural context. In the demonstration, the right-hand panel displays the agent’s node-selection process before the response appears.
For a small teaching example, suppose the requested value is a hotel’s name. A matching field such as Hotel.name needs the parent route through Query.hotel, including its required argument. The relevant schema slice could be:
graphql
type Query {
hotel(id: ID!): Hotel
}
type Hotel {
id: ID!
name: String!
}
With that route available, the generated query can include both the root field and the nested selection:
graphql
query HotelName($id: ID!) {
hotel(id: $id) {
name
}
}
This illustrates why schema retrieval must preserve relationships, rather than return only fragments containing a matching word. Liu reports that naive generation produced hallucinations despite a similar-looking interface; working through task-specific prompts and retrieval during the hackathon produced qualitatively better results.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Scope the migration before attempting the rewrite
The migration experiment began with legacy code containing functions longer than 10,000 lines. The approach combined code search, structured metaprompts, and divide-and-conquer decomposition. Before transforming an enormous function or service, the team needed to understand its dependencies and split the work into tractable pieces.
Expert pairing helped developers learn how to supply the right prompt and context. Passos connects this to the earlier adoption problem: some developers had dismissed the assistant because they did not yet know how to use it effectively on their own code. Bringing specialists into the office made that knowledge practical rather than abstract.
Passos reports that, after months of investigation, two hackathon days helped the team identify call sites and size the migration problem. That understanding gave the team a starting point and exposed easier pieces to tackle first. The months-to-days observation concerns understanding and scoping the codebase; the migration effort itself remained experimental. Finding the boundaries of a change can be valuable before an agent performs the change.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Make code review specific and selective
Code review initially looked like an unpromising area for another agent because so many AI-review products already existed. Conversations with Booking and other enterprises revealed an unmet requirement: review depends on a long tail of team-specific rules, guidelines, and conventions. A general reviewer could miss precisely the constraints an organization cared about.
Sourcegraph was productizing a process for building a reviewer tailored to those requirements:
- Define the team’s rules in a simple flat file.
- Identify the files modified by a pull request.
- Apply the rules relevant to those files.
- Post comments selectively, tied to the applicable rules.
The flat file makes the review expectations explicit, while relevance selection keeps unrelated rules out of a particular review.
The stated objective is precision over recall. The reviewer should prioritize comments that developers can act on, even if that means missing some potential issues. In this setting, producing more comments is not inherently useful: noise makes the agent another source of work in an already crowded review process.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Declare service rules and enforce them earlier
After a year of collaboration, Booking began extending the review idea toward the service itself. If CI can report that a change violates a rule, could the developer receive that information earlier, inside the IDE, together with a proposed fix? The longer-term aspiration was a service capable of detecting and repairing some of its own problems.
The ingredients included codebase context and the prompt library developers had already built. Automating those questions against a server could expose knowledge about the codebase and identify work to perform. Passos described an ambition to reach parts of this vision by the end of 2025, with substantial work still ahead; self-healing services were a direction, not a delivered outcome.
Liu connects declarative rules to the loss of architectural cohesion familiar from The Mythical Man-Month. Successful software attracts users, revenue, feature requests, and bug reports. Competitive pressure encourages teams to take on technical debt. As more contributors join, a shared vision and consistent standards become harder to preserve.
Under the proposed approach, senior engineers and architects define constraints that should hold across the codebase. Those constraints can be applied during review and inside the editor, whether a human or an AI wrote the code. Enterprise compliance requirements are a concrete candidate: recurring obligations that developers must satisfy even though they do not directly create new user features. The accompanying slide extends the vision to background agents submitting pull requests.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Education turns access into regular practice
Declaring compliance requirements in service rules is one way to reduce recurring developer work. But Passos ends with the organizational practice he considers most important: education. Booking worked with entire business units, giving developers hands-on support and time to experiment in two-day workshops and hackathons. People who could see how the tools applied to their own work were more likely to become regular users.
That education was intended to sustain the delivery improvements Booking associated with daily use, not a separately measured training effect. The operational lesson is concrete: an assistant made available to everyone can still be abandoned; developers need to learn how to give it useful context, choose appropriate tasks, and recognize where it helps. The agents grew out of that same practice—working through real problems with the people who understood the code.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Resources
From the talk
Current documentation for searching across repositories, filtering results, and exploring code changes.
Current guide to Sourcegraph's coding assistant, including codebase context, editor integrations, and reusable prompts.
Fred Brooks's essays on software project management and conceptual integrity, in the anniversary edition.
Further reading
Google's June 2024 announcement of broader access to a two-million-token context window and context caching.
Read the complete timestamped transcript
- 0:00
[on hold music] Uh, so my name is Beyang.
- 0:18
Uh, I'm the CTO and co-founder of a company called Sourcegraph. We build dev tools for, uh, big, messy code bases.
- 0:24
Yeah. And I'm Bruno, Bruno Passos, and I lead, uh, the product side of developer experience at Booking.com. And, um, yeah, over the past year, I've been overseeing the, um, the GenAI innovation side of Booking as well.
- 0:38
Cool. And today we're here to talk about, uh, how we're partnering to build software development agents, uh, that automate a bunch of toil inside Booking that are actually having real ROI and impact.
- 0:51
So how many people have heard this before? You know, you're, you're the... You, you're working inside a large company, the CEO comes in and says like, "Hey, we need to adopt AI."
- 1:00
Uh, and then folks are like, "Okay. Uh, what does that mean?" You know, how do we measure it? You know, maybe you like FOMO purchase Copilot or something like that.
- 1:09
Uh, and then six months later, uh, someone else, maybe the CFO, is asking you, "Hey, so what's the ROI of, of that AI tool we just adopted?" Or, you know, "What's the measurable impact of the agents that, that we're building?"
- 1:20
Um, this is a question that I think a lot of people aren't quite sure how to answer right now, but Bruno and Booking have been sort of on the leading edge of answering this question, uh, and very proactive at, uh, acquiring and building the best tools, and also following through to demonstrate, uh, how they're actually impacting their
- 1:38
org.
- 1:41
It's very kind of you to say we are, we are leading this. I think we are, we are right at the beginning, and, uh, I feel couldn't be f- couldn't feel farther from, from actually the forefront of it.
- 1:51
Uh, but let me, let me start by talking a little bit about Booking. Um, I am sure, uh, that most of you would have heard about this company. Uh, our goal is to make easier for everyone to experience the world, and my team's goal is to make sure that our developers have their path cleared so that they
- 2:07
can do their best work. Now, are we close to that? In some parts of the company, yes. Other parts, we couldn't be, uh, farther away from it.
- 2:16
To get-- to set a little bit of context, uh, we are one of the largest, uh, online travel agencies in the planet. Um, and we serve about 1.5 million room, uh, nights, uh, um, with more than 3,000 developers.
- 2:30
Uh, can you raise your hands, uh, who work in a company that has more than 1,000 developers? Quick show of hands.
- 2:36
Good number of people.
- 2:37
Okay.
- 2:38
Wow.
- 2:38
Uh, on the-- more on the, on the dev side or on the technical side, um, we serve over 250 merge requests, uh, at a given year, uh, with 2.5 million CI jobs running at a given, uh, year as well.
- 2:52
And we are extremely data-driven. Um, our company has gotten to where it got to over experimentation and being obsessed about data. And the reason I'm going into this is because as we experiment and in the form of primarily AB tests, we start adding those experiments and ex- and feature flags into the code base.
- 3:15
And as we push forward to bring new features to our users, uh, most likely those experiment flags or dead code will stay in the code base. And now fast-forward decades, our code base became extremely bloated.
- 3:32
Uh, fun fact, I was-- uh, my kids were looking at me, uh, editing this slide, and they said, "What are feature flags?" And I said, "Well, um, you know, they stay in the code base, and they start po- po- polluting the code base."
- 3:43
And they were like, "Like code farts?" And I'm like- [laughs]
- 3:47
... now you're going into code smells. It's a different topic. [laughs] But let's, uh, let, let's move forward. Um, and so as the, the code base starts to bloat up and become bigger and bigger, cycle times also become, uh, larger and longer, and they s- the time that developers spend to debug and to work on that code base
- 4:06
just becomes over 90% toil, right? Who here is familiar with this?
- 4:14
That's even more hands than a, than, than-
- 4:16
Yeah
- 4:16
... than 1,000 developers. And so we survey our developers at least a quarter, uh, on how they're feeling, how they're, how they're, they're feeling about working on that particular code base, and it's, it just becomes harder and harder for them to do anything.
- 4:30
And so we had to do something about it.
- 4:33
So I've seen the best developer minds of my generation destroyed by decade-long dead feature flag migrations. [laughs] It's crazy.
- 4:43
Claude Shannon actually say that or? [laughs] But I mean, if-- seriously, though, like, there are probably, like, geniuses out there. Like, I was talking to someone from PWC, uh, the other night and described the system that they're building to, like, update, uh, all, all the kinda, like, legacy code in their system, and it was amazing.
- 5:02
Like, the guy was really smart, really brilliant, uh, really, like, interesting tech. But wouldn't it be great if, you know, those sorts of minds were unlocked to actually work on, like, you know, new features and thinking about, like, user problems rather than all this kinda, like, legacy cruft?
- 5:17
And so in a nutshell, that's why Sourcegraph exists, uh, as a company. So our mission is to make s- building software at scale tractable. Uh, and so you might be familiar with a couple of the, the products and tools we built, uh, along the years.
- 5:30
Uh, Code Search, it's kinda like a Google for your code. Allows any human developer to find in and, and build a working understanding of what's going on. We have a tool for large scale refactoring and code migrations.
- 5:40
Uh, you might have heard of our AI coding assistant, Cody. It's a context-aware, uh, code generator that's tuned to work well in large, messy code bases. Uh, and the topic of this talk is really about the agents that we're building to automate toil out of the software development life cycle.
- 5:56
So a bunch of different products that we've built over the years. The unifying theme really is to, uh, accelerate things in the developer inner loop, augment hu- human creativity there, and then to automate as much of the BS, uh, out of the outer loop as possible.
- 6:12
All right. So, um, as Beyang talked about, uh, Sourcegraph Search, just over two years ago, we started using their product, and it was a big success within our, uh, our community because they were able to search that bloated code base much, much easier and find small pieces of context lying here and there.
- 6:29
I, I totally encourage you to have a look at this, uh, particular product. It's awesome. Um, and so about a year ago, uh, January last year, we started experimenting with Cody.
- 6:39
Why? Because Cody also has Sou- uh, uh, has Sourcegraph Search as context, and so it became extremely useful for us to use a, uh, tool that had that context to be able to experiment with the, the GenAI topic.
- 6:52
And now we are hoping to reach the path of, uh, uh, building agents with Cody and, and Sourcegraph Search, uh, uh, built in.
- 7:03
All right. So, um, if I summarize very quickly, and hopefully this illustrates how fast things are moving, uh, uh, forward. In January, we started, um, with Cody. We gave everyone the ability to start using the tool in the company.
- 7:17
So all our three thousand developers, uh, um, had the, the opportunity to use it. Some started using it, some, uh, uh, uh, used it, didn't see any value with it and then stopped using it.
- 7:29
And that started intriguing us. And so back then, right in the beginning of the year, we had the choice of one LLM to use across the entire company and some token limits, uh, uh, um, uh, limiting what we could do with it.
- 7:42
And so the first thing that, that we, uh, started pairing with Sourcegraph, and we appreciate the partnership on that, was to remove all the, the, the guardrails that we had in order to be able to really, uh, give it a go.
- 7:53
And so Sourcegraph was very quickly to be able to give us multiple LLMs, pair developers. We could choose that. And why that was important is because we found that LLMs had expertise, right?
- 8:03
And so if we were going to excavate our code base, our bloated code base, a particular LLM would do better than someone that was working on a completely new, uh, uh, piece of service and, and developing features there.
- 8:14
And so fast-forward to July, um, we started training developers, and that became incredibly important because the people that started using and didn't see the value, when they started getting trained, they started using it and falling in love and becoming what we call that now daily users.
- 8:30
And I'll explain how-- why that's important. Um, and then we started g- looking into more metrics. Back in January, the main metric was hours saved. And, um, I mentioned that we are a data-driven company, and hours saved wasn't the most statistically relevant metric that we could use.
- 8:46
It was based on research only over a couple of developers, a few developers, and, uh, that wasn't cut. Um, raise your hand here if you, uh, heard folks out there in the beginning of the hype talking about thousands or, or eighty, a hundred thousand hours they saved with GenAI.
- 9:03
Has anybody ever heard that? And then you go back to your company and say, "Why are we not doing this?" I call that semi-BS. Uh, uh, uh, and so we had to start going into other metrics, something that were more statistically relevant.
- 9:16
And so we started brainstorming with that. Come October, uh, October, we defined new KPIs, which I'll go deeper into it, and metrics to measure, uh, to measure GenAI. And fast-forward to November, end of last year, we then started finding traces that developers were thirty percent plus faster if they were using Cody on a daily basis, and that's
- 9:37
twelve plus day in a month to take a- away weekends and the times that they're, they were not coding. And most importantly, we were able to partner with Sourcegraph to be able to create an API layer in front of Cody, so we could be creative in using with some of the tooling that we use, like Slack, Jira,
- 9:54
and, and being able to extract some of that away from the IDE.
- 9:59
All right. So as we, as we, we finish around October, we started looking into so those KPIs. And what was important for me is that we defined something that we could measure within a year.
- 10:10
Why? Because things are moving so fast, and if we-- Uh, uh, it was really helpful to ground us to what can we measure within the next year. And so we defined four KPIs.
- 10:20
The lead time for change, quality, code base insights that would then go into how we could modernize some of our, uh, bloated code base. And so some of the metrics, uh, uh, when I say short, mid, and long term, these were metrics that we could see results in the short term, in the mid term, and in the
- 10:36
long term, and that long term is precisely a year. And so we started seeing results with time to review MRs. Developers that were using Cody on a daily basis would ship thirty percent more MRs than the ones that, that didn't.
- 10:49
And one very interesting piece is that their MRs, their MRs were lighter. They had less code in it, which I still don't know what to make out of it, but we are, we are working on it.
- 10:59
And then on the quality side of things, we are hoping to go into the vulnerability. Can we show some of the vulnerabilities we've had in the past? Give the context, the code base's context, and try to see where we can predict where the new vulnerabilities will, uh, will appear, or if they're still lingering in our code base.
- 11:15
And then we started, uh, the obvious one is test coverage. Can we increase test coverage? Can we create test coverage on the legacy so the new stuff, when we re-platform, passes that, that particular set of tests?
- 11:25
And then we went into coding sites, which is more related to, like, can we track what parts of our code base are not being used, some feature flags that are still lingering but shouldn't be there, and the code that is not performant enough.
- 11:36
And all of this is to feed into our ultimate goal, which is can we bring the time to re-platform our code base from, from, yeah, years to months, right?
- 11:49
Okay. So while all this is going on, one of the things we noticed is that the same engineers that were using the, the, like, coding assistant to generate code were also playing around with the underlying APIs.
- 12:00
And so what we realized is that, like, asking people to customize prompts leads to them wanting to build and compose those calls into longer chain automations that we now call agents.
- 12:10
Um, there are a lot of pitfalls that we encountered, uh, uh, you know, in, in the early stages of this, like helping u- people understand what the expectations were with respect to what the, the LLM can do and what it can't do.
- 12:22
But the long story short is, at some point, we basically said, "All
- 12:25
F this, it's not really working. Let's just, like, put our brains together, you know, fly out to Amsterdam. We'll do, like, a week-long joint hackathon and build some agents together.
- 12:36
And so the first thing to come out of that hackathon was this thing that, uh, generates GraphQL. So Booking has a, a huge GraphQL API. We'll play the video.
- 12:47
It, uh, it's seriously, like, more than a million tokens long. [smacks lips]
- 12:51
Uh, so it does not fit into the context window of any of the existing, uh, LLMs. Even if you could shove it inside context, it's not gonna do a good job of, of integrating that context into something that's coherent.
- 13:02
There are a ton of hallucinations. And so what we did is we built this system that basically searches this very, very long GraphQL schema, finds the relevant, like, nodes wherever they are in this, like, schema tree, uh, and then, uh, agentically figures out which ones are relevant, and then walks up that tree to pull in the relevant
- 13:23
parent nodes. And so on the right-hand side, you can kinda see its, like, inner dialogue. This is, like, its thought process for, uh, reasoning about which nodes of the schema to pull in.
- 13:32
And then, uh, after it's done that reasoning, it generates a response. And so if you do this naively, you know, the UI looks very similar, but you just end up getting garbage, which is what we were seeing, you know, before we ran this hackathon.
- 13:44
After we sat down and, and, and actually worked through, like, the specific prompts and stuff, uh, to make this work well, we saw far better results.
- 13:54
All right. So, um, a pretty interesting one that, uh, uh, that we started, uh, uh, working through in terms of agents were the automated code migration. Could we go into that legacy piece,
- 14:08
functions with over 10,000 lines to give you context, and, uh, uh, and speed up that replatforming effort? And so, uh, code search, structure, structured meta- meta prompts, uh, and then the, the concept of dividing that particular code base to conquer the small bits were, were really, uh, really interesting. [smacks lips]
- 14:28
Um, one of the things that I totally recommend if you started to embark on, on, on a journey like this is pairing with some experts to bring that expertise into, into your offices was incredibly valuable to us.
- 14:41
And we started seeing, uh, back to when I mentioned that the developers were using coding and stopping and feeding back, doesn't, doesn't add any value, was pure lack of knowledge.
- 14:51
Uh, folks didn't know how to work LLMs out. They didn't know how to pass the right prompt in the right context, and this was, uh, a, a pretty important piece for us to be able to, uh, to work on this particular, uh, agent.
- 15:04
And so when we go into this, we had developers working for months at this point to try to figure out the size of the problem that we had to then be able to divide and conquer.
- 15:14
And then we came within two days within a hackathon, we were able to really define, uh, and understand where the, the call sites were coming from. And then being able to define how big the problem is was important for us to be able to have a start point and then collect the low-hung-- low-hanging fruits that were a-available
- 15:32
for us. So, um, all of this is still in experimentation, uh, mode, uh, but we've seen a lot of values and a lot of, uh, uh, sort of like firing that smoke in t- going from months, uh, uh, of, of understanding the code base to days.
- 15:50
Cool. And so the, the last agent that really came out of this joint effort, uh, was targeted at code review. So this is something that we found is, is pretty universal across many different enterprises.
- 15:59
Like, everyone, who does not do code review here? [chuckles] One hand, okay. Uh, I'll talk to you later, sir. [laughs]
- 16:08
Um, so, like, everyone does code review. And what we found-- Like, originally, we didn't think this was a very interesting space 'cause there's, like, two dozen startups now that are popping up that do AI code review.
- 16:16
But when we talked to Booking, we talked to other enterprises, what we found is that, like, code review is kinda, like, very specific to your organization. There's a long tail of, like, rules and guidelines and other things that, uh, you wanna bake into your review process.
- 16:28
And a lot of the tools that are off the shelf there aren't super customizable. And so what we built is this interface, uh, where we're going through and productizing the, the process of building a review agent that's tailored to your team and your organization.
- 16:41
So the, the basic idea is that you define a set of rules that you wanna hold in the code, and then those are defined in kind of like a simple flat file format.
- 16:49
And then the agent will go and consume those rules, apply the relevant ones to the specific files that are modified in any given, uh, PR, and then, uh, very selectively post up comments, uh, that are tuned to those rules.
- 17:02
So it's very not noisy. Uh, we're trying to optimize for, you know, precision, uh, over recall here in, in the feedback that we're, we're giving, uh, the, the de- the developer. [smacks lips]
- 17:16
All right. So knowing what we know, in the beginning of this year, we've been working on this for a year together, uh, uh, with Sourcegraph. Then a few ideas started p- uh, popping into our minds of how we could go forward here.
- 17:28
And, uh, one of the things that I'd love to leave you with is the concept of declaring what are the rules of your service, right? So think, think of your CI pipelines today.
- 17:37
Uh, when they give you errors, could we anticipate and shift this left to the IDE so those errors appear there, and they appear in the form of, "Here is an error, and here is a fix," so hopefully the service gets to a point where it's self-healing, right?
- 17:52
And we started seeing that we could do that, that there are, there are, there are areas that we can start using, giving the-- all the context, all the prompts that the developers started creating via the prompt, uh, library that we created, and, uh, asking those questions, autom- uh, automate those questions to the server to see what comes
- 18:09
out in terms of knowledge, uh, um, uh, out of that code base. And so we think this is ultimately what we, we are trying to achieve within, I would say, a short, as short as the end of this year in terms of, uh, agents.
- 18:22
Um, but lots, um- Lots here to, to go
- 18:26
Can I... Sorry, can I just say-
- 18:27
Yeah, of course
- 18:28
... one more thing about that last, uh, slide? Um, I think that we have the potential here to solve one of the problems that has plagued software development since its inception.
- 18:38
So, you know, i- who here has read The Mythical Man-Month before? So, yeah, oh, basically everyone. So, like, it's this problem of, like, any software that becomes successful eventually becomes a victim of its own success.
- 18:50
Because if you have revenue, if you have users, that's gonna generate feature requests, bug reports. Any business that's prioritizing that is gonna take on tech debt to, in order to compete, quite frankly.
- 19:01
And over time, as you add contributors to the code base, you lose this cohesion of vision. You lose the set of standards that you wanna maintain and hold. Uh, with declarative coding, now you can have, like, the senior engineers, the architects, the, the, the people in charge of the organization define constraints and rules that must hold through
- 19:20
the code base, and enforce those rules both at review time, as well as inside the editor for, you know, the code that's written by human or AI.
- 19:28
Yeah, for bigger organization, all your compliance rules, all the things that, that the developers need to work on, but it's not necessarily feeding new features to your, to your end users, I think those could...
- 19:38
Are, are perfect examples of, um, um, yeah, being declared into your service. But anyway, the main important thing so far in this past year that we've been, uh, um, you know, pairing to be able to figure this out has been education.
- 19:53
The more we educated the developer and handholding entire business units to be able to show them the value, but then have them experiment within two days of, like, workshops and hackathons, have them experiment with the tool, they were coming out the other side incredibly passionate about what it can do, but also becoming that daily users that we
- 20:12
are trying to transform them, so hopefully to defend that 30%-plus increase on speed. So educate your folks. If you take one thing from this, is education.
- 20:22
And if you wanna dive deeply into any of this, we got a booth downstairs. Feel free to stop by. We'll talk shop. Or, uh, also tomorrow, I'm giving an expo talk that covers some of the more nitty-gritty details of how some of those agents were implemented, so.
- 20:35
Thank you.
- 20:36
Thank you all. [audience applauds] [upbeat music]