Log in to watch

Log in or create a free account to watch this video.

Log in
Connect Oct 2024
Share

Reaching for AI-Native Developer Tools — A Discussion with Gene Kim

Idan Gazit, Senior Director of Research at GitHub Next, argues that the software development industry is only scratching the surface of what AI-native developer tools can be. Drawing on the history of how developers have adapted to new computing modalities — from teletypes to GUIs to smartphones — he makes the case that chat and code completions, while valuable, represent the low-hanging fruit of a much wider design space still waiting to be discovered. GitHub Next's Copilot Workspace represents an early attempt to find the "Goldilocks" middle ground: more actionable than chat, more ambitious than completions, and designed to keep the developer in control throughout.


In this talk, you'll learn why current AI coding tools leave the hardest problems unsolved, what it takes to build a research team with the trust and autonomy to pursue risky bets, and what a more moldable, personalized future for software development might look like.

Chapters

Full transcript

The complete talk, organized by section.

Host Intro (Gene Kim)

So Idan Gazit, I was so delighted to meet him earlier this year. He is Senior Director of Research at GitHub Next, which is the birthplace of GitHub Copilot, Copilot X, and Copilot Workspace. It has been so amazing learning from him, learning about the wide-open potential design space for the tools that developers could use to do their best work.

I've become even more excited about all the experiments going on right now by so many smart and thoughtful people. So, Idan, hi. Is Idan up? Yes, I see him up. How are you doing, Idan?

Idan Gazit

Good morning. How are you? Hi.

Gene Kim

Good morning. Awesome. Thank you so much for joining us today.

I so much enjoyed your presentation in August. It struck me as one of the most sweeping looks at how we ended up with a modern IDE, where most developers do their daily work and spend most of their day in front of, which in some ways we've been stuck with since, as you mentioned, Visual Studio circa 1985. That was almost 40 years ago.

I wrote up a summary of the presentation, which I'll post in Slack shortly. But just to refresh people's memory, or for people who weren't there, can you describe what you wanted people to learn from in that presentation?

Idan Gazit

Just that I think we're standing at sort of the precipice of this inflection point. Oh God, so many cliches in one sentence. But we really are at this inflection point with the creative act of writing software.

As AI has joined the conversation as an actor, as something that can get things done, what does that mean for the tools that we use to create software? And how can we look at the way those tools have changed in the past as a means of informing how we should be looking at the way the tools will be changing now, even though we can't fully see the complete shape of those future tools today as we're stumbling around blindly and trying to figure out what's good, what works, what actually helps developers, what helps us make this incredibly complicated thing that we sit down and do every day in front of our computers?

Gene Kim

In fact, you had this startling observation that we went from the teletype to the line editor, to the visual text editor, to GUIs, and often it took years for us to actually figure out how to use these new modalities that they present. You're saying that in some ways we're kind of stuck with chat-oriented interfaces just because they're easy.

Can you talk a little bit more about both the fact that it takes time to understand how to use these new modalities, as well as how we've explored only the easy parts of the design space?

Idan Gazit

Yeah. I want to be clear: I think that it's not a bad thing. It's just that these are sort of the low-hanging fruits. These are the first things that we were able to reach for. And it's not something specific to AI.

One of my favorite examples is pull-to-refresh on smartphones. That was possible on the first day of the iPhone. And yet it wasn't until a year or two after the iPhone launched that Loren Brichter wrote the Tweetie app, which later turned into the official Twitter app, that he invented the pull-to-refresh gesture, which leveraged our understanding that new content is further up.

As soon as we all saw that, we were like, oh, yeah, duh, that's how it should be. And so now that's kind of where we are with AI. It's there, it's waiting for us to figure it out, and for these patterns that we're going to have every day, but we don't understand them yet.

All these new things, we could have them today if only we were smart enough to really discover them. That's where we are right now as a group, as an industry.

Gene Kim

One of the things that struck me as remarkable in your presentation was describing the mission of GitHub Next, but also who is comprised of it. It seemed like you've attracted people who cannot just prototype, but actually ship things. It reminds me of the early iPhone team, where it was initially a very small team.

We actually got to write about this in The Winning Organization: that they were able to independently deliver, test, and deliver capabilities because they were a cohesive whole. Does that resonate with your experiences at GitHub Next?

Idan Gazit

Absolutely. It doesn't happen overnight. It's really easy to look back and be like, ah, the overnight success that took four years, or whatever.

We're a very small team, but we've earned a lot of trust from the business to go out and do these risky things in service to the business. Everybody's read Clayton Christensen and The Innovator's Dilemma. Our job is kind of to do that for the business, to go out and break GitHub in interesting ways, in ways that open the door to a bigger future, as opposed to the rest of the business that's responsible for making GitHub for the adjacent possible moves. Our job is to change the game.

I'm incredibly fortunate to work alongside some of the smartest people I've ever gotten the pleasure to work with. I think the trust is the key thing: the trust both that we have inside the team with each other, because we're all trying things that might be stupid, like we might be trying something that's a bad idea, but also the trust that we have from the rest of the business to pursue and pursue and pursue until we do find those things that could be meaningful step changes to the business.

Gene Kim

One of the things I found so remarkable and educational about your talk was that you explained the two primary approaches being used in terms of using gen AI to help developers do their daily work around completions and chat. Can you give us a primer on what those really mean to you?

Idan Gazit

Yeah. The existing modalities, the ones that we reached for first: chat. We've all seen ChatGPT by now, and that just seems like, oh, duh, that's what this technology is naturally good at. That's the grain of this material that wants to be cut along this line, because the models are already built for this sort of conversational prompt and response.

But there's no formalism about what comes out of chat. I have a conversation just like if I was going to have a conversation with a human. At the end of it, it's still on me to write down some action items and then go do the thing. Unless the other human is going to go and do it instead of me, then it's on me to actually take the ball to the goal.

Chat is one big modality, and it's a very helpful modality for evaluating what could be, for having a theoretical discussion or an architecture discussion: how would I go about this? How should I go about this?

Then on the exact opposite end of the spectrum, we have completions, where I type something and AI tries to finish the sentence, finish the thought in my head. That's also a different kind of dopamine factory. When I'm sitting there and I'm starting my function, and it's just like, here's the rest of the function you were going to write, and I'm like, amazing, that's exactly what I wanted. It's a little shocking when you first see it. I mean, a little shocking. It's majorly shocking.

When it works, in the beginning there was a lower hit rate of it succeeding. But over time, as the models have improved, as our prompting has improved, as we've learned to do a better job of sourcing the context that we need to show to the models in order to elicit the useful responses, then we graduated out of toy territory into tool territory.

Now I think those two occupy the edges of the spectrum: very good at abstract chat, the discussion about the theory and the architecture, and then on the other end, help me in the moment, but not the architectural, not the bigger picture. Very much dopamine delivery service while I'm writing software in the moment.

Gene Kim

I love the way you set that up because you said what they both have in common is the lack of ambition, setting up a third way. Can you talk about that?

Idan Gazit

Yeah. I don't mean it in a bad way. It's just, I have a screwdriver. It's not Dr. Who's sonic screwdriver that can do everything. It's a screwdriver. I can use it to drive screws.

These tools are good for their intended purpose. One is helping me in the moment and one is helping me reason about what could be. But chat isn't good at translating that discussion into action. And completions isn't good at helping me with bigger tasks.

If I want to go after a bigger task, what I want is kind of a Goldilocks in the middle, as it were. I don't think there's one Goldilocks. I think that we need to sweat to figure out these patterns. But how do I have something that's more concrete than chat and, at the same time, more able to tackle bigger problems that I specify?

I still need to specify the problem and turn it into code at the level of: I want to fix a bug or implement a feature. These higher-order tasks are the sort of thing that completions is never going to deliver. Maybe it'll write me a function, but it's not going to write a lot of interconnected changes across many different files. Chat might be like, listen, you're going to have to go about it this way, but it's not going to actually solve it for me.

What's that Goldilocks pattern in the middle that's more actionable? That's what I think we're reaching for now at GitHub. Copilot Workspace is our beachhead into that, our first exploration that we found that hits that Goldilocks spot in the middle.

Gene Kim

One of the things that you conveyed was that one of the primary design objectives is allowing the user to steer throughout the process. What has been the biggest surprise in this approach of allowing users to steer?

Idan Gazit

I don't know to say that it's really that much of a surprise, but how important the steering is. Maybe not exactly the question you asked, but I think the deeper truth that you're getting at is: how should steering work? What is it?

One thing that's surprising or interesting as we explore is what's the right balance between this formal, it's the machine's turn, now it's my turn, now it's the machine's turn, now it's my turn, versus being able to iterate. The back-and-forth conversation, chat style, still has a place in this to refine, and not just say, no, not like that, but to say, yeah, but make the logo bigger, or whatever. Then the AI will be like, okay, I'm going to trim my sails in the way that you asked.

Being able to strike the right balance for users to be able to say, not just fix the things that come back from the thing and then tell it to run again, but rather help me iterate my way toward what I want. Even if the user sitting there is maybe not the most articulate, not the most familiar with this, how do we guide them into the pit of success?

Gene Kim

Right.

Idan Gazit

I don't remember who coined it, but I think about that statement all the time. Getting people to get value out of AI is very much this process of guiding them into the pit of success.

Gene Kim

I've actually loved using Workspace, and my goal is to post some cool and surprising things that it's allowed me to do. I've been able to prototype some Slate.js applications, like an outline and text editor that I could not have done without it. It has been able to do larger refactoring.

If I understand correctly, this is in technical preview. What do you hope to achieve in a technical preview, and what involvement are you looking for?

Idan Gazit

GitHub Next prototypes things, and for them to escape the lab, to graduate out, we need to prove to the rest of the business that they deserve to live, that they deserve to see another sunrise.

Technical previews are a way of at once putting it out there so that other people can use it, because in the beginning we're building things and we're building them for ourselves and trying it. We have a few thousand developers at GitHub who are also early adopters and are willing to kick the tires and try things out.

But there's no substitute for the general public actually taking it for a spin and showing us where it's broken and all the different ways that it could be broken. Technical previews are about shoring it up and making it work in a lot of situations.

The help that we need is people to come sign up for the waitlist and then, as you get admitted, kick the tires. Also, it's an opportunity for us to talk with users. We connect with people in our Discord. I'll drop the Discord link in Slack later. It's a great place to see how other people are using it, and for us to connect with people and study how they're using it, how they want to be using it, and to validate our assumptions along the way.

Technical previews are always the milestone that proves to us that if the rocket is ready for launch, that it's ready to turn into a product.

Gene Kim

Sorry. So if I understand you correctly, the technical preview is where we can bring our most selfish objectives to you, right? You are in a remarkable position to potentially help solve problems that we bring to the table. Is that right?

Idan Gazit

Yeah. There's no prior art to guide us here. The only signal that we have is people using it and telling us, listen, this is good, or y'all had a nice idea, but no, I'm sorry. That's brutal, but that's what we gotta do.

Gene Kim

I was dazzled by some of the presentations you've given in terms of imagine what a post-IDE world might look like. The notion of bringing back literate programming from Donald Knuth, the notion of bicameral UX, you've even built fonts to try to convey more information than we can do once we've used up bolding and italicizing and strikethrough.

If you could wave a magic wand, what would the ideal coding environment look like for you?

Idan Gazit

I think the point is less about what's ideal for me and more about this notion of moldable development. This isn't my notion. Other people have spoken about this.

Gene Kim

By Tudor Girba, Dr. Tudor Girba.

Idan Gazit

Yeah, exactly. How do we get to a place where, until now, or at least for the last 30, 40 years, the entirety of my software development life, I've used these interfaces the way they rolled off the factory line. Sure, I could dock the panel to the right or to the left, and it has that very you-can-have-any-color-you-want-so-long-as-it's-black kind of vibe.

How do we get past that? AI opens the door to a lot of flexibility. That's the special part about AI. I don't need to be bound by these heuristics and rules anymore. I can say it like this or I can say it like that, but either way, AI is going to be able to understand the different ways that I can express a thing.

How do I extend that into software development? How do I make something that's going to be a glove fit for you, no matter who you are and what it is that you're trying to do, and what your level of experience is, and what kind of software development you're doing?

That's the thing that's really exciting here: not making something that's really great for me and everybody like me, but something that's really great for everybody no matter where they are in their software development journey.

Gene Kim

Oh my gosh, I can't believe he brought up Tudor Girba. I got to spend 15-plus hours learning Smalltalk from him, and so maybe this is a group that we can get together.

I have one last question for you. You described that we're observing a Cambrian explosion right now. If I remember correctly, this is a time millions of years ago when there was an explosion of new forms that life took. There was incredible innovation happening, and a few survived and are truly enduring. Is that what you meant by the Cambrian explosion in terms of experimenting with what the life of developers will look like?

Idan Gazit

Yeah. The promise of this tech...

Gene Kim

Oops, you're muted.

Idan Gazit

Oh, no, I'm good. Thank you. I was going to say, this field right now, it's like we're all running around like, yeah, chat obviously works. But what else can work? That's the Cambrian explosion part. It's the entire industry running around trying to apply this tech to figure out what it wants to be, just like that pull-to-refresh thing that could exist in the moment that somebody finds it. Everybody's going to be like, oh, yeah, obviously.

That's the Cambrian explosion of tools. We see it in the marketplace. Some of it is good, and some of it isn't. We have to stumble our way through trial and error to figure out what deserves to exist tomorrow and what's going to fill our lives as developers.

Gene Kim

So in this community of technology leaders, what help are you looking for?

Idan Gazit

Use our stuff, please. And then tell us everything that's good and bad about it. That's what we need. We need people to tell us their feedback about: is this working? Really kick the tires and try these different things. There's no substitute for that.

Gene Kim

Fantastic. I can personally say that it is a remarkable Discord community and the capability is changing every week. That's an offer from Idan Gazit that everyone should take advantage of.

Idan, thank you so much for joining us. Man, I have some ideas for you that I'll reach out to you later today.

Idan Gazit

Thank you so much. Thanks for having me.

Gene Kim

Thank you, Idan.