WEBVTT

NOTE Sentence-level transcript of https://www.youtube.com/watch?v=iQ5xldZ9StU

NOTE One cue per sentence. Cue ids are the line anchors on /transcripts/iQ5xldZ9StU.html. A cue ends where the next begins, or 2 s after its last word.

s1
00:00:01.309 --> 00:00:03.309
[music]

s2
00:00:13.640 --> 00:00:17.160
going to start 1 minute early, which gives me one extra minute.

s3
00:00:17.160 --> 00:00:22.720
And then anybody who came on time is going to miss the super enthralling introduction.

s4
00:00:22.720 --> 00:00:23.760
Hi, my name is Eitan.

s5
00:00:23.760 --> 00:00:25.000
Nice to meet you all.

s6
00:00:25.000 --> 00:00:29.960
Uh I lead GitHub Next, which is the Labs team of GitHub.

s7
00:00:29.960 --> 00:00:36.200
I like to call us the Department of Fool Around and Find Out, but I usually don't say the word fool.

s8
00:00:36.200 --> 00:00:40.480
We're the team that created Copilot uh and pioneered a ton of areas since then, right?

s9
00:00:40.480 --> 00:00:44.200
Uh spec-based programming, natural language to app, lots more.

s10
00:00:44.200 --> 00:00:47.800
Not everything uh that we do turns into a finished product.

s11
00:00:47.800 --> 00:00:51.560
Our job is to sort of explore the future and scout it out.

s12
00:00:51.560 --> 00:00:56.280
Um but our job is to reach for the GitHub that's going to be next year.

s13
00:00:56.280 --> 00:01:03.240
Maybe not tomorrow's GitHub, but uh the tools that we're all going to use to make software a year from now, 2 years from now.

s14
00:01:03.240 --> 00:01:07.640
That's pretty hard, cuz my crystal ball barely works into uh next week.

s15
00:01:07.640 --> 00:01:17.000
Uh and we're really fortunate that we get to do most of our work in the open, so you can check out githubnext.com and our socials, which we occasionally remember to post

s16
00:01:17.000 --> 00:01:18.080
stuff to.

s17
00:01:18.080 --> 00:01:20.160
And what we do isn't really research, right?

s18
00:01:20.160 --> 00:01:25.400
Because the only way to know what's going to be good uh is to make stuff.

s19
00:01:25.400 --> 00:01:34.240
So, we make a lot of stuff, and the hard part about being an undirected research team is always the question of what's worth our time.

s20
00:01:34.240 --> 00:01:42.160
Even if you're a token billionaire, uh even if you have 10 terminals running Fable night and day, then opportunity cost is is still there.

s21
00:01:42.160 --> 00:01:43.560
It's everything.

s22
00:01:43.560 --> 00:01:54.600
Uh so, if in a in a world where the uh marginal cost of a line of code is approaching zero, uh and AI can help us to think and to make,

s23
00:01:54.600 --> 00:01:56.080
what do we make, right?

s24
00:01:56.080 --> 00:02:03.320
How do we even choose what's important uh when the market is super noisy and the tech changes every week?

s25
00:02:03.320 --> 00:02:06.000
And this isn't even really a next problem anymore.

s26
00:02:06.000 --> 00:02:08.640
This is an all of us problem now.

s27
00:02:08.640 --> 00:02:10.479
We're all labs teams now.

s28
00:02:10.479 --> 00:02:14.800
And the way that next thinks about this stuff is to look for durable themes.

s29
00:02:14.800 --> 00:02:20.520
Things that will be true no matter what the technology that exists tomorrow.

s30
00:02:20.760 --> 00:02:26.240
And I think that the theme of this moment is very much an evergreen one, right?

s31
00:02:26.240 --> 00:02:30.640
It's AI started with a surge of personal productivity, right?

s32
00:02:30.640 --> 00:02:35.120
The LLMs completed what I type and the agents go fetch me the thing that I need.

s33
00:02:35.120 --> 00:02:39.640
And now I have many agents helping me to parallelize myself.

s34
00:02:39.640 --> 00:02:45.360
But the greatest value doesn't come from multiplying me into more me.

s35
00:02:45.360 --> 00:02:47.680
It comes from enabling groups of people to do more.

s36
00:02:47.680 --> 00:02:50.320
That's always been true.

s37
00:02:50.360 --> 00:02:53.760
And we're thinking about how to accomplish that through two lenses.

s38
00:02:53.760 --> 00:02:57.320
Every industrial revolution came about through automation, right?

s39
00:02:57.320 --> 00:03:11.000
It's funny to think about our giant software industry as being pre-industrial, but on some level it is because until now the only automations that we had were heuristics like make sure there's a semicolon at the end of every line.

s40
00:03:11.000 --> 00:03:17.239
But now AI can help us to automate things that require some amount of basic judgment and intelligence.

s41
00:03:17.239 --> 00:03:19.840
And there's no magic trick to making great software, right?

s42
00:03:19.840 --> 00:03:22.000
It costs time.

s43
00:03:22.000 --> 00:03:27.880
And we can buy that time by automating away the things that we used to need to do manually.

s44
00:03:27.880 --> 00:03:35.320
Like the more we automate, the more time we have to spend on craft or on our product or on making it really good or on features, right?

s45
00:03:35.320 --> 00:03:41.959
Either you hire more people or you automate away part of what your people are currently doing in order to spend that time.

s46
00:03:41.959 --> 00:03:44.720
And at the same time, how are we going to work together, right?

s47
00:03:44.720 --> 00:03:47.360
How does collaboration look like in the future?

s48
00:03:47.360 --> 00:03:48.600
Whoops.

s49
00:03:48.600 --> 00:03:50.600
Oh well, sorry about that.

s50
00:03:50.600 --> 00:03:56.520
Yesterday uh, Jeffrey Lit talked about understanding being the bottleneck, and that's very true at a me level.

s51
00:03:56.520 --> 00:04:01.640
Uh, but my personal understanding was never sufficient for shipping code inside a team, right?

s52
00:04:01.640 --> 00:04:07.200
Our understanding at an us level can only happen at the end of the process.

s53
00:04:07.200 --> 00:04:08.200
Um, sorry.

s54
00:04:08.200 --> 00:04:15.560
Uh, uh, I it can't only happen at the end of the process, uh, when the process happens so much faster.

s55
00:04:15.560 --> 00:04:27.160
So, going faster means that a small misalignment, uh, can snowball into a ton of wasted work, uh, and that work costs tokens, and tokens cost real money now, so,

s56
00:04:27.160 --> 00:04:30.040
uh, on top of the time that you're mis spending.

s57
00:04:30.040 --> 00:04:35.320
So, today I'll give you a quick tour of two prototypes that we're working on at GitHub Next in each of these themes.

s58
00:04:35.320 --> 00:04:38.800
Agentic Workflows is our take Why is that not there?

s59
00:04:38.800 --> 00:04:40.480
Oh, I had to click again.

s60
00:04:40.480 --> 00:04:50.360
Uh, Agentic Workflows is our take on how automations should work in an agentic world, and Aces a prototype that explores what real-time multiplayer software development looks like.

s61
00:04:50.360 --> 00:04:54.200
So, I'll start by showing off Agentic Workflows, and it requires me doing this.

s62
00:04:54.200 --> 00:04:55.240
Okay, cool.

s63
00:04:55.240 --> 00:04:57.800
Uh, this is my personal website, not that interesting.

s64
00:04:57.800 --> 00:04:59.040
I'm showing it to you.

s65
00:04:59.040 --> 00:05:01.720
This is like Chekhov's gun, we're going to see it again later.

s66
00:05:01.720 --> 00:05:04.760
Um, and my personal website is built with this framework called Astro.

s67
00:05:04.760 --> 00:05:06.600
Astro is a great web framework.

s68
00:05:06.600 --> 00:05:17.560
The greatest part about it is that they release like 50 things a month, which means that I'm constantly on the upgrade treadmill, and there's a great GitHub product called Dependabot, which notifies me when my stuff is out of date.

s69
00:05:17.560 --> 00:05:23.240
Um, but the problem is is that when I do these upgrades, I frequently need to make code changes.

s70
00:05:23.240 --> 00:05:33.240
So, what I really want is a kind of super Dependabot that's always there, automatically looking in the background at my dependencies and figuring out how to upgrade me, including the code changes, the breaking changes.

s71
00:05:33.240 --> 00:05:47.280
Um, and because I'm lazy, and I like not doing work, um, I used Copilot, uh, to create an agentic workflow, and there's this magic line up top where I supply effectively a skill saying like, "Hey, create an agentic workflow.

s72
00:05:47.280 --> 00:05:50.560
Here's a document that tells you everything you need to know about that.

s73
00:05:50.560 --> 00:05:57.680
And then what comes below that is something a lot like a Slack message that I'd send to a junior developer on my team.

s74
00:05:57.680 --> 00:06:05.560
Like, every day I want you to check if there's a new release, look at the change log, look at the docs, come up with a plan for the upgrade,

s75
00:06:05.560 --> 00:06:08.320
and then create a PR with the thing and here's the links to the docs.

s76
00:06:08.320 --> 00:06:12.720
Right, this is like a message that I would send to somebody on my team, go write a playbook.

s77
00:06:12.720 --> 00:06:16.240
And when I went and created this, it did go and create a playbook.

s78
00:06:16.240 --> 00:06:18.600
In fact, that's what agentic workflows kind of look like.

s79
00:06:18.600 --> 00:06:20.480
They look like markdown documents.

s80
00:06:20.480 --> 00:06:26.919
Like, if GitHub Actions and Copilot had a baby together, and it ran on markdown, this is what it is.

s81
00:06:26.919 --> 00:06:31.200
So, what does this agentic workflow look like?

s82
00:06:31.200 --> 00:06:36.720
Well, you know, it's an upgrade checker, it's got my tasks, step one, check for new releases.

s83
00:06:36.720 --> 00:06:44.240
Again, because it sees my codebase, it was able to infer what it even needs to check and it actually found these specific dependencies.

s84
00:06:44.240 --> 00:06:50.440
Review the change log and the upgrade guide, apply the upgrade, and then create a pull request.

s85
00:06:50.440 --> 00:06:59.080
Right, I didn't ask for any of this that explicitly, but it turns out that Copilot is pretty good at sussing out my little three-line message into a full playbook.

s86
00:06:59.080 --> 00:07:06.360
And then at the top, I've got this special section, this is the what we're calling No, don't collapse it.

s87
00:07:06.360 --> 00:07:08.040
Oh, man.

s88
00:07:08.040 --> 00:07:10.760
Scrolling is wonky when you zoom in.

s89
00:07:10.760 --> 00:07:12.120
This YAML front matter.

s90
00:07:12.120 --> 00:07:24.240
This is where we stick the guardrails cuz if we're going to be not supervising agents doing things, then we're going to need much stronger guardrails around what they're allowed to do, what they're allowed to read, what they're allowed to write.

s91
00:07:24.240 --> 00:07:25.880
And where are we going to specify that?

s92
00:07:25.880 --> 00:07:32.120
And it's not enough to just prompt the agent and be like, "Listen, bro, I don't want you to buy Bitcoin for me ever."

s93
00:07:32.120 --> 00:07:37.600
That's not enough cuz somebody else can prompt inject the agent and take it in a direction that you don't expect.

s94
00:07:37.600 --> 00:07:45.680
So, any of the guardrails, if you're prompting the guardrails at the agent, you're effectively letting the fox loose in the henhouse.

s95
00:07:45.680 --> 00:07:48.000
It's not actually a guard rail.

s96
00:07:48.000 --> 00:07:59.440
Um, so here, uh, you can see that I'm specifying deterministically like my permissions are read all, what tools am I allowed to use, uh, what network, uh, requests is it allowed to make?

s97
00:07:59.440 --> 00:08:02.480
It's not allowed to just go to bitcoin.com or whatever.

s98
00:08:02.480 --> 00:08:15.200
Uh, in fact, it's only allowed to go to some specified set of default websites, the NPM ecosystem cuz it's got to check for like, you know, what's new, GitHub, and of course the Astro docs which I specified in my original prompt.

s99
00:08:15.200 --> 00:08:21.640
Uh, and I've got this block called safe outputs which is basically saying these are the only things that the agent is allowed to write.

s100
00:08:21.640 --> 00:08:26.040
And so I'm saying in this case the agent will is allowed to create pull request.

s101
00:08:26.040 --> 00:08:32.240
Pull request single uh, because I don't want the agent to get prompt injected to create 500 pull requests.

s102
00:08:32.240 --> 00:08:34.159
That would be a denial of service.

s103
00:08:34.159 --> 00:08:38.880
Um, or and this is the other thing, I explicitly said you're allowed to do nothing, right?

s104
00:08:38.880 --> 00:08:44.800
Which sounds silly, but it actually matters because in a world where I have lots of automations, the last thing I want is noise.

s105
00:08:44.800 --> 00:08:48.320
I don't want the agents denial of servicing me.

s106
00:08:48.320 --> 00:08:56.000
So, okay, I've created this and I've run it and this is actually my actual automation on my actual personal website.

s107
00:08:56.000 --> 00:09:05.640
I didn't ask for any of this, but it did a pretty good job of like saying, "Hey, here's the highlights of what you get from going from this version that you're currently on to the version that is the target,

s108
00:09:05.640 --> 00:09:05.960
right?

s109
00:09:05.960 --> 00:09:07.920
It's read all of the release notes in the middle.

s110
00:09:07.920 --> 00:09:10.120
This is normally what I would do as a human.

s111
00:09:10.120 --> 00:09:13.440
Uh, and it's built me like, you know, sort of like a tailored description.

s112
00:09:13.440 --> 00:09:15.320
It's figured out there's no breaking changes.

s113
00:09:15.320 --> 00:09:18.480
It's actually verified this by running and building my project.

s114
00:09:18.480 --> 00:09:28.720
And because I happen to have this deployed to Cloudflare, um, or whatever, anything with preview deploys, I can click that open and see that nothing has changed in my website, which is exactly what I want, right?

s115
00:09:28.720 --> 00:09:32.960
Like it's done the upgrade and I see that it still works exactly as it did before.

s116
00:09:32.960 --> 00:09:34.640
But this was like a minor point release.

s117
00:09:34.640 --> 00:09:35.560
That doesn't really count.

s118
00:09:35.560 --> 00:09:38.680
Let's look at a major upgrading change.

s119
00:09:38.680 --> 00:09:45.920
And actually, I'm lucky that Astro just released Astro 7 because this is actually jumping two major revisions from five to seven.

s120
00:09:45.920 --> 00:09:50.840
And so, now it's saying like, "Okay, Astro 7 has brought me all of these things.

s121
00:09:50.840 --> 00:09:57.160
And Astro 6 would have brought me all of that stuff, but I neglected to do the upgrade so I could have a cool demo for you all."

s122
00:09:57.160 --> 00:10:02.160
And it's found all of the code changes that were broken, and it updated them.

s123
00:10:02.160 --> 00:10:05.040
It also verified that the build runs.

s124
00:10:05.040 --> 00:10:11.720
And it also highlighted manual steps that things that I would need to do later.

s125
00:10:11.960 --> 00:10:17.120
And again, you know, if I go down here and I click on this, I can see, "Hey, still works."

s126
00:10:17.120 --> 00:10:18.720
So, cool.

s127
00:10:18.720 --> 00:10:21.440
Now, uh it's just markdown.

s128
00:10:21.440 --> 00:10:23.200
It's easy to iterate on that markdown, right?

s129
00:10:23.200 --> 00:10:26.800
If you don't like the way that the automation works, just edit the English.

s130
00:10:26.800 --> 00:10:29.600
It gets recompiled into an Actions workflow.

s131
00:10:29.600 --> 00:10:31.840
Like, the markdown is the source code.

s132
00:10:31.840 --> 00:10:33.800
The YAML is like a compiled artifact.

s133
00:10:33.800 --> 00:10:35.040
You never look at it.

s134
00:10:35.040 --> 00:10:41.400
Um but, we've also given you a whole library of Agendic workflows for you to use as a starting point to customize.

s135
00:10:41.400 --> 00:10:43.360
So, an issue triager.

s136
00:10:43.360 --> 00:10:53.480
Internally, GitHub has actually used this as the basis for like spiking out our own internal issue triager or for like hunting down N+1 queries in our like monolith or all kinds of things.

s137
00:10:53.480 --> 00:10:55.560
There's a ton of things that are super helpful there.

s138
00:10:55.560 --> 00:10:56.280
Repo assist.

s139
00:10:56.280 --> 00:11:12.240
This is actually a swarm of Agendic workflows that work together to help you maintain your project by finding low-hanging fruit, fixing them, identifying tickets that need nudging or feedback that you need from people who have filed issues, whatever.

s140
00:11:12.240 --> 00:11:13.080
CI doctor.

s141
00:11:13.080 --> 00:11:18.720
How many times have you responded to a busted CI run by just running it again?

s142
00:11:18.720 --> 00:11:19.240
All of us.

s143
00:11:19.240 --> 00:11:21.560
Anybody who hasn't raised their hand is lying.

s144
00:11:21.560 --> 00:11:24.160
Uh a million more.

s145
00:11:24.160 --> 00:11:26.440
Like, you know, goals, sure.

s146
00:11:26.440 --> 00:11:28.240
Daily team status and repo status.

s147
00:11:28.240 --> 00:11:31.320
If I want this to go do like homework on the internet, I can.

s148
00:11:31.320 --> 00:11:39.800
So, this is not just for engineers, this is also for product managers whose job it is to look at information over here and summarize those tickets over there, right?

s149
00:11:39.800 --> 00:11:42.280
We can start to get everybody involved in automation.

s150
00:11:42.280 --> 00:11:45.840
That's how you actually get industrial scale.

s151
00:11:46.120 --> 00:11:50.520
Uh So, uh that's Agentic Workflows.

s152
00:11:50.520 --> 00:11:57.760
Um the security guardrails, we have sort of four principles that we believe uh everybody should burn into their brains.

s153
00:11:57.760 --> 00:12:00.320
Uh defense in depth, one layer is never enough.

s154
00:12:00.320 --> 00:12:01.880
Uh that was always true.

s155
00:12:01.880 --> 00:12:03.320
Never trust agents with secrets.

s156
00:12:03.320 --> 00:12:09.880
If an agent can know a secret, that secret, you need to treat it as if it's already been compromised.

s157
00:12:09.880 --> 00:12:14.800
Uh because you have no idea whether or not somebody's injected the agent to reveal that secret somewhere else.

s158
00:12:14.800 --> 00:12:17.800
So, if an agent can see the secret, um it's bad.

s159
00:12:17.800 --> 00:12:29.200
In Agentic Workflows, the secrets are all kept outside of the agent's jail, and when the agent wants to use the secret to call something, it needs to ask the warden, "Hey, mother may I please go talk to that service?"

s160
00:12:29.200 --> 00:12:35.000
Uh stage and vet all rights, just so that it's auditable, and log everything, just so that it's auditable.

s161
00:12:35.000 --> 00:12:53.560
Uh and when we give this to existing projects like the Home Assistant project, which is a huge open-source project, um the first uh Agentic Workflow they built was something that looks at every submitted issue, walks the Python stack trace to figure out if the bug is in first-party code or third-party code, closes the issue if it's not

s162
00:12:53.560 --> 00:12:54.880
their issue, right?

s163
00:12:54.880 --> 00:13:01.600
That's something that was not possible before AI, not possible with heuristics, uh but is possible now.

s164
00:13:01.600 --> 00:13:03.560
Agentic Workflows is in public preview today.

s165
00:13:03.560 --> 00:13:05.080
You can go and kick the tires.

s166
00:13:05.080 --> 00:13:07.800
So, go ahead, go wild.

s167
00:13:07.800 --> 00:13:16.640
Uh we actually believe that this is going to be a bigger category than interactive AI because automations that run in the background while you sleep, that's the ballgame.

s168
00:13:17.200 --> 00:13:19.520
Okay, so let's talk about the collaboration piece.

s169
00:13:19.520 --> 00:13:22.320
So, this is how we've always built software, right?

s170
00:13:22.320 --> 00:13:27.120
Because the cost of writing code was so high, uh but that's not true anymore.

s171
00:13:27.120 --> 00:13:30.600
We would plan and review together, but the building part was done alone.

s172
00:13:30.600 --> 00:13:34.240
Like, you know, illuminated by the light of my monitor, uh, I would build.

s173
00:13:34.240 --> 00:13:35.800
But now, none of it is alone, right?

s174
00:13:35.800 --> 00:13:39.600
Planning isn't before, and review isn't after.

s175
00:13:39.600 --> 00:13:44.280
We iterate on the direction together, and AI takes a step, and then we iterate more in the direction.

s176
00:13:44.280 --> 00:13:48.480
So, what's an interface that makes sense for that style of development?

s177
00:13:48.800 --> 00:13:50.400
I'm only slightly trolling, right?

s178
00:13:50.400 --> 00:13:54.480
Slack was designed to be better, uh, than email for the average office worker.

s179
00:13:54.480 --> 00:13:59.880
It was never designed for making software or the needs of everyone involved in that.

s180
00:13:59.880 --> 00:14:04.360
But, what this is good for is surfacing all the facts that are not in code.

s181
00:14:04.360 --> 00:14:08.800
Anything that's in code, any fact that's in code, the agents can figure out by reading the code.

s182
00:14:08.800 --> 00:14:12.480
What's left are the things that are not in code, like political considerations.

s183
00:14:12.480 --> 00:14:16.120
Like, "Hey, if we do it that way, that VP over there is going to vibe with that direction."

s184
00:14:16.120 --> 00:14:19.320
Or, like, "We should make it purple because that's their favorite color."

s185
00:14:19.320 --> 00:14:23.560
Or, "We get a really sweet deal, uh, on infrastructure from Azure.

s186
00:14:23.560 --> 00:14:28.360
Therefore, we should be building on Azure, not on, uh, GCP or AWS.

s187
00:14:28.360 --> 00:14:30.200
Whatever."

s188
00:14:30.200 --> 00:14:33.200
But, the biggest win is the same win that we've already seen over and over, right?

s189
00:14:33.200 --> 00:14:35.839
I don't email Word documents around anymore.

s190
00:14:35.839 --> 00:14:40.240
I create and collaborate in the same surface, in the same place.

s191
00:14:40.240 --> 00:14:43.080
This is coming for code, a trillion percent, right?

s192
00:14:43.080 --> 00:14:45.720
So, let me show you what we have here.

s193
00:14:45.720 --> 00:14:46.800
Oops.

s194
00:14:46.800 --> 00:14:48.080
Here we go.

s195
00:14:48.080 --> 00:14:49.760
I got to find the tab.

s196
00:14:49.760 --> 00:14:50.600
All right.

s197
00:14:50.600 --> 00:14:52.839
Uh, this is Ace.

s198
00:14:52.839 --> 00:14:54.560
Let's switch to the repository.

s199
00:14:54.560 --> 00:14:57.120
So, Ace looks an awful lot like Slack, right?

s200
00:14:57.120 --> 00:15:00.400
And over here on the left, I've got sessions, and I can create new ones.

s201
00:15:00.400 --> 00:15:05.600
And, you know, so far this kind of looks like every other conductor-like product out there.

s202
00:15:05.600 --> 00:15:09.440
Um, the difference being is that every one of these is not on my machine.

s203
00:15:09.440 --> 00:15:11.360
In fact, none of this is running on my machine.

s204
00:15:11.360 --> 00:15:12.800
It's all micro VMs in the cloud.

s205
00:15:12.800 --> 00:15:17.120
So, every session is just a branch of my repo checked out to a spot in the cloud.

s206
00:15:17.120 --> 00:15:20.600
Uh, and I can create them and do stuff in them and talk with my teammates.

s207
00:15:20.600 --> 00:15:28.280
So, like, uh hey, um uh what's your favorite color, right?

s208
00:15:28.280 --> 00:15:31.960
Uh and meanwhile, I'm going to like install my dependencies.

s209
00:15:31.960 --> 00:15:37.000
And then when that's done, I'm going to do like uh bond dev.

s210
00:15:37.000 --> 00:15:39.000
I'm going to run the dev server.

s211
00:15:39.000 --> 00:15:44.440
Um and here, like, Russ and I are having a discussion, like, are you sure?

s212
00:15:44.440 --> 00:15:49.600
Maybe uh maybe green is calmer.

s213
00:15:49.600 --> 00:15:51.680
Um Oop, nope.

s214
00:15:51.680 --> 00:15:52.800
I sent that as a terminal command.

s215
00:15:52.800 --> 00:15:54.680
Good job, me.

s216
00:15:54.680 --> 00:15:56.280
I do not want that as a thing.

s217
00:15:56.280 --> 00:15:56.600
Great.

s218
00:15:56.600 --> 00:15:58.080
I'll do it like this.

s219
00:15:58.080 --> 00:16:01.120
Uh and I can open up my preview.

s220
00:16:01.120 --> 00:16:02.000
Oops.

s221
00:16:02.000 --> 00:16:03.080
Give me a preview.

s222
00:16:03.080 --> 00:16:04.400
I'd like a browser preview.

s223
00:16:04.400 --> 00:16:05.080
Okay.

s224
00:16:05.080 --> 00:16:09.160
So, so far, not that different from developing with any sort of like multiplayer tool.

s225
00:16:09.160 --> 00:16:11.840
And here, I've got this sort of calm hacker news thing.

s226
00:16:11.840 --> 00:16:14.400
I've just had a whole discussion with my teammate.

s227
00:16:14.400 --> 00:16:17.520
I don't want to turn around and now like emit those instructions again.

s228
00:16:17.520 --> 00:16:20.880
Instead, I just want to be like, yo, Ace, do it.

s229
00:16:20.880 --> 00:16:32.440
Uh and because it sees the entire backscroll of my conversation with my peers, with my team, it's able to act on that uh uh on on that chat history.

s230
00:16:32.440 --> 00:16:36.200
And if the Wi-Fi was nice, then it would be doing it faster.

s231
00:16:36.200 --> 00:16:39.880
Um uh you're going to have to trust me on this because I don't have enough time to wait for this.

s232
00:16:39.880 --> 00:16:43.800
That it's going to just respond to the fact that we had a discussion about colors.

s233
00:16:43.800 --> 00:16:47.440
And AI is also really good at fishing out that final state.

s234
00:16:47.440 --> 00:16:50.240
Like, very frequently, what do engineering conversations sound like?

s235
00:16:50.240 --> 00:16:52.480
They sound like like, hey, we should try it this way.

s236
00:16:52.480 --> 00:16:54.600
No, wait, I thought of like an edge case.

s237
00:16:54.600 --> 00:16:55.760
We should actually do it that way.

s238
00:16:55.760 --> 00:16:58.040
Let's go back to the first idea, right?

s239
00:16:58.040 --> 00:17:06.360
But instead of me sort of like figuring teasing out that final state from that long conversation, I can just let AI do it and it'll figure it out.

s240
00:17:06.360 --> 00:17:08.240
So, I don't need to work for the robots.

s241
00:17:08.240 --> 00:17:12.680
And sometimes we have things that are a lot more um complicated.

s242
00:17:12.680 --> 00:17:16.520
Like here, I wanted to add selectable time frames to my app.

s243
00:17:16.520 --> 00:17:21.640
And so, I asked it to make a plan, and that plan comes as a uh uh markdown document.

s244
00:17:21.640 --> 00:17:28.079
Uh but, this markdown document is not just for me to look at and edit, it's for us to look at and edit together.

s245
00:17:28.079 --> 00:17:37.040
So, Russ is somewhere uh here in this document, and like, you know, maybe he thinks that we should add an all time, and I'm going to get rid of the today,

s246
00:17:37.040 --> 00:17:43.640
and here I can again do like uh we've updated the plan, do it.

s247
00:17:43.640 --> 00:17:49.760
Um Uh uh and it'll just respond to the plan that we've edited together.

s248
00:17:49.760 --> 00:18:01.440
And as we see now, we're moving to this future where uh more and more of the work that we're doing with AI results in documents like markdown documents in a docs folder that captures sort of the truth,

s249
00:18:01.440 --> 00:18:07.240
and maybe more and more in the future we're going to be editing those documents as the way that we do development.

s250
00:18:07.240 --> 00:18:15.960
Like, in order to change something about my application, I'm going to edit a document, and I'm going to tell AI, "Hey, make the document true."

s251
00:18:15.960 --> 00:18:20.160
So, this shared document editing is not just like, "Oh, a nice to have."

s252
00:18:20.160 --> 00:18:24.120
Maybe this is actually sort of the uh interface that we like to work in.

s253
00:18:24.120 --> 00:18:28.320
But, there's also the uh social coding aspect, right?

s254
00:18:28.320 --> 00:18:30.800
Like, if I'm working with other people on my team.

s255
00:18:30.800 --> 00:18:35.920
Um remember when that was a thing that was a tagline under the GitHub logo?

s256
00:18:35.920 --> 00:18:41.920
Um so, uh how can it help me stay up to date with what everybody else on my team is working on?

s257
00:18:41.920 --> 00:18:48.120
Like, it's not just enough to have like real-time multiplayer, I also want to be ambiently aware of what everybody's going going on about.

s258
00:18:48.120 --> 00:18:50.360
So, Kristoff is working on Vian tooling.

s259
00:18:50.360 --> 00:18:57.560
This is actually work that we're doing on Ace, and Maggie wrote this dashboard and hardcoded her name, and so that's why we're looking at Maggie's name.

s260
00:18:57.560 --> 00:18:59.840
Um and David worked on whatever.

s261
00:18:59.840 --> 00:19:02.680
All this stuff to help me stay aligned with my team.

s262
00:19:02.680 --> 00:19:08.160
And when I look to the future, I'm starting to think about how do automations surface themselves in this?

s263
00:19:08.160 --> 00:19:18.320
If I want to talk with my automation, uh there's lots of things that I want to do in this kind of interface, like when an agent wants to tap me on the shoulder and ask me a question,

s264
00:19:18.320 --> 00:19:21.080
um, that I think are very interesting.

s265
00:19:21.080 --> 00:19:23.960
So, that's a short Ace demo.

s266
00:19:24.560 --> 00:19:27.640
We're going through this weird inversion of our relationship with the agents.

s267
00:19:27.640 --> 00:19:34.040
Like, the better that we get at articulating, uh, our goals to the agents, the less they need us.

s268
00:19:34.040 --> 00:19:41.880
Uh, and as the models get better, they're also good at spotting like underspecified behaviors and then asking us to clarify.

s269
00:19:41.880 --> 00:19:45.840
Uh, and then whenever they need a pair of hands, they can ask us to be the pair of hands.

s270
00:19:45.840 --> 00:19:55.640
But, either way, the interfaces now have the ability to support the ability of agents to listen to everything and invoke us when they need it.

s271
00:19:55.640 --> 00:19:56.880
Which is a little funny to think about.

s272
00:19:56.880 --> 00:20:06.880
It's maybe like sort of we're coming at it from this side and like open claws coming at it from this side, but like we're landing in sort of a similar spot.

s273
00:20:08.160 --> 00:20:09.520
And I'll close with this thought.

s274
00:20:09.520 --> 00:20:13.600
Um, for the past few years, AI has helped me to type.

s275
00:20:13.600 --> 00:20:17.680
But, if you look at the science of the matter, it's only about 5% of the job.

s276
00:20:17.680 --> 00:20:22.720
Like, this was a longitudinal study conducted on like 100 developers over thousands of hours.

s277
00:20:22.720 --> 00:20:27.120
Turns out that the hands-on keyboard typing part is 5% of the time.

s278
00:20:27.120 --> 00:20:29.880
Now, AI has to help me with the other 95%.

s279
00:20:29.880 --> 00:20:32.120
Where is the system that I want to touch?

s280
00:20:32.120 --> 00:20:33.560
How does it work today?

s281
00:20:33.560 --> 00:20:38.720
What do other people think about like how we could mutate it or should mutate it?

s282
00:20:38.720 --> 00:20:46.080
When AI can discover anything in my code base, like, how do we How do we help scale up all those other things, right?

s283
00:20:46.080 --> 00:20:51.080
Like, not just the 5%, which is what all the tools have been helping us to do so far.

s284
00:20:51.080 --> 00:20:54.040
So, that's Ace and that's a genetic workflows.

s285
00:20:54.040 --> 00:20:56.880
Uh, please, uh, come by and talk to us.

s286
00:20:56.880 --> 00:21:02.320
Uh, we have, uh, a booth down in the Microsoft booth because we're a Microsoft company.

s287
00:21:02.320 --> 00:21:05.160
Uh, and you can find us on the socials and get at next.com.

s288
00:21:05.160 --> 00:21:17.160
So, if any of this resonates and you're interested in it and you want to give it a shot, ACE is going to be in technical preview hopefully later this month and genetic workflows is already out there for you to kick the tires and we'd love to hear from you and how you want to use this.

s289
00:21:17.160 --> 00:21:18.574
Thank you so much.

s290
00:21:18.574 --> 00:21:20.574
[applause]
