1 00:00:05,239 --> 00:00:07,259 [music] 2 00:00:09,825 --> 00:00:11,845 [music] 3 00:00:15,200 --> 00:00:17,600 All right. Hi everyone. Uh, thanks for 4 00:00:17,600 --> 00:00:19,199 joining. Um, it's good to see so many 5 00:00:19,199 --> 00:00:22,240 people here. Um, I was awake at 4:00 6 00:00:22,240 --> 00:00:26,720 a.m. yesterday. Um, I didn't enjoy it. I 7 00:00:26,720 --> 00:00:29,279 was doing a presentation like a 8 00:00:29,279 --> 00:00:32,719 demonstration for a big analyst who's 9 00:00:32,719 --> 00:00:35,520 based in New York, hence the time. Um, 10 00:00:35,520 --> 00:00:38,559 and it was a 100minute demo, which 11 00:00:38,559 --> 00:00:40,480 sounds like a long time, but it was 12 00:00:40,480 --> 00:00:42,480 about everything that Microsoft and 13 00:00:42,480 --> 00:00:45,440 GitHub has to offer in the DevOps space 14 00:00:45,440 --> 00:00:48,879 with a particular focus on AI tools. So, 15 00:00:48,879 --> 00:00:52,879 I had to cram in I had 19 densely packed 16 00:00:52,879 --> 00:00:55,600 pages of demo script. Um, and I had to 17 00:00:55,600 --> 00:00:57,520 hit all of them and everything had to 18 00:00:57,520 --> 00:01:00,719 work. So, that's done now. I have this 19 00:01:00,719 --> 00:01:02,960 now. And then next time I played, I woke 20 00:01:02,960 --> 00:01:04,720 up this morning to a message saying I 21 00:01:04,720 --> 00:01:07,200 might need to produce a video for a 22 00:01:07,200 --> 00:01:08,799 another large language model that might 23 00:01:08,799 --> 00:01:10,479 be getting released on Monday. So, 24 00:01:10,479 --> 00:01:12,080 that'll might be a short video I'll have 25 00:01:12,080 --> 00:01:14,000 to do sometime on Monday. Um, and then 26 00:01:14,000 --> 00:01:16,080 after that I've got GitHub Universe, uh, 27 00:01:16,080 --> 00:01:17,680 which is at the end of the month where 28 00:01:17,680 --> 00:01:19,680 I'm I'm in charge of the keynote and all 29 00:01:19,680 --> 00:01:22,000 the demos there. So, in each of those 30 00:01:22,000 --> 00:01:23,840 things, all of the demos that I'm doing, 31 00:01:23,840 --> 00:01:25,280 the product demonstrations, they 32 00:01:25,280 --> 00:01:28,320 absolutely have to work. If that analyst 33 00:01:28,320 --> 00:01:30,640 one had gone wrong and I had showed 34 00:01:30,640 --> 00:01:32,159 products that didn't work or they were 35 00:01:32,159 --> 00:01:35,040 slow or they didn't do what we promised, 36 00:01:35,040 --> 00:01:37,119 that could potentially knock a few 37 00:01:37,119 --> 00:01:38,799 billion dollars off the valuation of 38 00:01:38,799 --> 00:01:40,479 Microsoft when they publish their 39 00:01:40,479 --> 00:01:43,600 report. um which some people care about. 40 00:01:43,600 --> 00:01:47,360 If I do a bad video um for this release, 41 00:01:47,360 --> 00:01:48,799 people might not use it. And then we've 42 00:01:48,799 --> 00:01:51,520 had entire research teams working on AI 43 00:01:51,520 --> 00:01:53,520 tools that, you know, is are not going 44 00:01:53,520 --> 00:01:55,439 to get used because it's not compelling. 45 00:01:55,439 --> 00:01:57,200 And then with GitHub Universe, that's 46 00:01:57,200 --> 00:01:59,040 when we announce new products. If I get 47 00:01:59,040 --> 00:02:01,360 on stage or get somebody else to get on 48 00:02:01,360 --> 00:02:02,960 stage and run my demo and the thing 49 00:02:02,960 --> 00:02:04,960 we're selling that is about to be 50 00:02:04,960 --> 00:02:08,080 launched doesn't work, that's a bad time 51 00:02:08,080 --> 00:02:12,160 for me and my employment prospects. So 52 00:02:12,160 --> 00:02:15,760 cool, right? Why though? Why do I do it? 53 00:02:15,760 --> 00:02:17,920 And also, why are demos even important? 54 00:02:17,920 --> 00:02:20,000 Can't I just get up and like tell people 55 00:02:20,000 --> 00:02:23,520 what stuff does? And so I I do like 56 00:02:23,520 --> 00:02:25,040 doing demos. I do like doing product 57 00:02:25,040 --> 00:02:27,280 demos. Um, but it was a bit of an 58 00:02:27,280 --> 00:02:30,080 accident how I got into this. Uh, I was 59 00:02:30,080 --> 00:02:32,400 at GitHub like right when the very first 60 00:02:32,400 --> 00:02:34,560 versions of GitHub Copilot came out. So 61 00:02:34,560 --> 00:02:37,360 the very start of the downfall of human 62 00:02:37,360 --> 00:02:39,360 driven software development if you like. 63 00:02:39,360 --> 00:02:40,879 But I was there right at the start and I 64 00:02:40,879 --> 00:02:42,400 did some videos showing how it could 65 00:02:42,400 --> 00:02:45,040 work and and what what it did. Um and 66 00:02:45,040 --> 00:02:48,560 those videos were, you know, they s they 67 00:02:48,560 --> 00:02:49,920 sold the product the right way and 68 00:02:49,920 --> 00:02:51,360 people liked them. So I did some more 69 00:02:51,360 --> 00:02:53,360 videos and then that year at GitHub 70 00:02:53,360 --> 00:02:54,959 Universe, I helped out with the keynote 71 00:02:54,959 --> 00:02:57,840 demos. And as always happens in tech, if 72 00:02:57,840 --> 00:02:59,519 you don't suck at something, suddenly 73 00:02:59,519 --> 00:03:02,560 it's your job, right? So now I do that 74 00:03:02,560 --> 00:03:05,680 mainly. I'm doing demos. uh if I'm not 75 00:03:05,680 --> 00:03:07,280 delivering them, then I'm doing them for 76 00:03:07,280 --> 00:03:09,280 executives or for other people. I'm 77 00:03:09,280 --> 00:03:11,200 building videos and I'm I'm building 78 00:03:11,200 --> 00:03:13,599 content like that. Now, it turns out I'm 79 00:03:13,599 --> 00:03:16,640 I'm reasonably good at it, or at least 80 00:03:16,640 --> 00:03:18,080 if I'm not good at it, I'm very 81 00:03:18,080 --> 00:03:20,640 opinionated about it. Um and that's what 82 00:03:20,640 --> 00:03:22,400 I you're going to get from me today is 83 00:03:22,400 --> 00:03:25,200 my opinions. So, like I like you might 84 00:03:25,200 --> 00:03:27,519 have guessed, I work at GitHub. Prior 85 00:03:27,519 --> 00:03:29,040 prior to that, I worked at Microsoft for 86 00:03:29,040 --> 00:03:31,040 5 years. Sorry. So, GitHub 5 years, 87 00:03:31,040 --> 00:03:32,480 Microsoft for about four and a half, and 88 00:03:32,480 --> 00:03:34,400 then a local company in Brisbane, 89 00:03:34,400 --> 00:03:35,920 Octopus Deploy for about four years 90 00:03:35,920 --> 00:03:38,000 before that. I heard a wool. That's 91 00:03:38,000 --> 00:03:40,640 great. Um, and so that's pretty much 92 00:03:40,640 --> 00:03:42,319 where I've been doing DevRell for the f 93 00:03:42,319 --> 00:03:45,840 for the past 16 something years, mainly 94 00:03:45,840 --> 00:03:47,840 in these companies. And so, what I'm 95 00:03:47,840 --> 00:03:49,040 going to talk to you about today is 96 00:03:49,040 --> 00:03:50,879 we'll start at the start. What is a 97 00:03:50,879 --> 00:03:52,560 demo? What am I even talking about? And 98 00:03:52,560 --> 00:03:54,640 why are they important? Um, we'll look 99 00:03:54,640 --> 00:03:56,080 at the structure of a demo and the 100 00:03:56,080 --> 00:03:58,480 design of doing demos. I'm going to give 101 00:03:58,480 --> 00:04:01,280 you some broad overarching tips for 102 00:04:01,280 --> 00:04:02,959 succeeding when you're about to write a 103 00:04:02,959 --> 00:04:05,200 demo, when you're creating demos. We're 104 00:04:05,200 --> 00:04:06,640 going to look at some of the challenges 105 00:04:06,640 --> 00:04:09,040 that come up a lot and how to mitigate 106 00:04:09,040 --> 00:04:11,920 them and recover from them. And then at 107 00:04:11,920 --> 00:04:13,439 the end, you'll be totally convinced and 108 00:04:13,439 --> 00:04:16,079 say that's a bit of a placeholder. 109 00:04:16,079 --> 00:04:17,919 All right. So, I do a lot of talks um 110 00:04:17,919 --> 00:04:19,199 and I've been doing them for a lot of 111 00:04:19,199 --> 00:04:21,199 years. I kind of started keeping all my 112 00:04:21,199 --> 00:04:23,199 PowerPoint decks in one folder in about 113 00:04:23,199 --> 00:04:26,160 2010 and I had a look before I came. Uh 114 00:04:26,160 --> 00:04:28,639 I have 427 slide decks in that 115 00:04:28,639 --> 00:04:31,040 presentation folder. So if you anyone 116 00:04:31,040 --> 00:04:32,720 doing quick maths that's about a talk 117 00:04:32,720 --> 00:04:35,199 every 2 weeks since 2010 without any 118 00:04:35,199 --> 00:04:37,360 breaks which is not what's happened but 119 00:04:37,360 --> 00:04:39,440 that's about how many. And I really like 120 00:04:39,440 --> 00:04:41,280 public speaking. Some talks are like 121 00:04:41,280 --> 00:04:43,680 this. They're talk talks. I stand up I 122 00:04:43,680 --> 00:04:46,080 say things at you and then you learn 123 00:04:46,080 --> 00:04:48,160 things or at least you don't hate them 124 00:04:48,160 --> 00:04:51,520 and I get to keep doing it. Um, but I 125 00:04:51,520 --> 00:04:54,800 also do a lot of demos and so we are 126 00:04:54,800 --> 00:04:56,080 I've been working for software 127 00:04:56,080 --> 00:04:58,160 development companies um who write dev 128 00:04:58,160 --> 00:05:00,240 tools for other developers, hence the 129 00:05:00,240 --> 00:05:03,840 Devril title. And um so I'm speaking to 130 00:05:03,840 --> 00:05:05,680 other de developers and showing them how 131 00:05:05,680 --> 00:05:07,919 to use those tools. But sometimes I'm 132 00:05:07,919 --> 00:05:10,800 also showing products to uh customers of 133 00:05:10,800 --> 00:05:13,600 Microsoft or GitHub or I'm showing a 134 00:05:13,600 --> 00:05:16,479 technique to a group of people um about 135 00:05:16,479 --> 00:05:18,320 you know this is how you should write 136 00:05:18,320 --> 00:05:20,000 your code and this is how you should 137 00:05:20,000 --> 00:05:21,280 structure your software. So there's a 138 00:05:21,280 --> 00:05:24,880 bit of variation um but why do these 139 00:05:24,880 --> 00:05:26,800 rather than just tell everyone what it 140 00:05:26,800 --> 00:05:28,960 does? And the main reason is I'm a very 141 00:05:28,960 --> 00:05:31,360 firm believer on the phrase show don't 142 00:05:31,360 --> 00:05:33,919 tell. 143 00:05:33,919 --> 00:05:37,680 So if you are going to tell me that your 144 00:05:37,680 --> 00:05:40,639 your software does a thing, don't just 145 00:05:40,639 --> 00:05:42,800 tell me it does it. Prove it. Put your 146 00:05:42,800 --> 00:05:44,800 money where your mouth is. I'm a very 147 00:05:44,800 --> 00:05:46,639 skeptical person. If somebody tries to 148 00:05:46,639 --> 00:05:48,560 sell me something, I don't want it 149 00:05:48,560 --> 00:05:50,320 unless you can prove that it is 150 00:05:50,320 --> 00:05:52,080 something that is going to benefit me. 151 00:05:52,080 --> 00:05:54,240 And um some people who know me quite 152 00:05:54,240 --> 00:05:56,479 well would know that this flows onto my 153 00:05:56,479 --> 00:05:57,919 um normal life as well. If something 154 00:05:57,919 --> 00:05:59,759 gets advertised to me on Instagram or 155 00:05:59,759 --> 00:06:01,280 any other social media, I'm not allowed 156 00:06:01,280 --> 00:06:03,680 to buy it. That's my personal rule to me 157 00:06:03,680 --> 00:06:05,919 because no, you came to you came at me 158 00:06:05,919 --> 00:06:07,759 with the thing. I didn't go and seek it 159 00:06:07,759 --> 00:06:10,319 out. So very skeptical. If you are 160 00:06:10,319 --> 00:06:12,319 telling me something that uh that your 161 00:06:12,319 --> 00:06:15,600 product does, I want to see it do that. 162 00:06:15,600 --> 00:06:18,080 So um there are a lot of different demos 163 00:06:18,080 --> 00:06:20,080 that you can do. Um and when I say demo, 164 00:06:20,080 --> 00:06:21,600 I'm really talking about anytime where 165 00:06:21,600 --> 00:06:24,240 you're showing a product or a technique 166 00:06:24,240 --> 00:06:26,800 or something to someone with a live demo 167 00:06:26,800 --> 00:06:28,720 or a video or something like that and 168 00:06:28,720 --> 00:06:31,440 like demonstrating what it does. Um, and 169 00:06:31,440 --> 00:06:33,280 some of them aren't that important. This 170 00:06:33,280 --> 00:06:35,680 is my um, personal little important 171 00:06:35,680 --> 00:06:38,880 meter um, graph. Some of the demos that 172 00:06:38,880 --> 00:06:40,639 you do aren't super important, and that 173 00:06:40,639 --> 00:06:42,160 might be like just showing a colleague, 174 00:06:42,160 --> 00:06:44,560 hey, I I'm trying out this new library. 175 00:06:44,560 --> 00:06:46,639 Let me show you what it does. Um, and 176 00:06:46,639 --> 00:06:48,240 then some of them are really important 177 00:06:48,240 --> 00:06:51,759 like uh there was a a a little session I 178 00:06:51,759 --> 00:06:55,919 did at a CIO summit um in uh Redmond 179 00:06:55,919 --> 00:06:58,800 next to the Microsoft CEO and one of his 180 00:06:58,800 --> 00:07:00,479 team came up to me before the event 181 00:07:00,479 --> 00:07:02,880 right before I went on stage and said 182 00:07:02,880 --> 00:07:05,360 you can't he swore so I won't he said 183 00:07:05,360 --> 00:07:08,319 you can't screw this up. Um in that room 184 00:07:08,319 --> 00:07:12,959 is about 40% of the GDP of of the EU. So 185 00:07:12,959 --> 00:07:13,840 [laughter] 186 00:07:13,840 --> 00:07:17,599 which is wonderful for your nerves. Um 187 00:07:17,599 --> 00:07:18,960 so some of them are really really 188 00:07:18,960 --> 00:07:20,479 important and the way you evaluate 189 00:07:20,479 --> 00:07:22,880 whether something is important or not is 190 00:07:22,880 --> 00:07:26,400 really kind of um judging what happens 191 00:07:26,400 --> 00:07:28,720 if it goes well versus judging what 192 00:07:28,720 --> 00:07:30,960 happens if it goes wrong. And so that's 193 00:07:30,960 --> 00:07:32,720 a that's a case of speaking to a room of 194 00:07:32,720 --> 00:07:33,919 people with a bunch of money. But you 195 00:07:33,919 --> 00:07:35,759 might be speaking to your, you know, 196 00:07:35,759 --> 00:07:38,000 your team lead to try and convince them 197 00:07:38,000 --> 00:07:39,520 that you should invest a bunch of time 198 00:07:39,520 --> 00:07:41,440 refactoring the entire, you know, 199 00:07:41,440 --> 00:07:43,599 product. Ultimately, they all have 200 00:07:43,599 --> 00:07:45,039 something in common. You are trying to 201 00:07:45,039 --> 00:07:47,919 convince somebody to invest either money 202 00:07:47,919 --> 00:07:51,440 or time or just trust, right? So, you're 203 00:07:51,440 --> 00:07:53,840 trying to convince them. So to evaluate 204 00:07:53,840 --> 00:07:57,039 whether it's going to um be low impact 205 00:07:57,039 --> 00:07:59,120 or high impact in this important meter, 206 00:07:59,120 --> 00:08:00,879 I thought the best way to explain this 207 00:08:00,879 --> 00:08:03,280 would be um in the natural language of 208 00:08:03,280 --> 00:08:06,160 all Devril people, which is in memes. Um 209 00:08:06,160 --> 00:08:08,400 so if it goes really really well and it 210 00:08:08,400 --> 00:08:10,240 doesn't matter, 211 00:08:10,240 --> 00:08:14,000 great, cool, keep going. Um if it really 212 00:08:14,000 --> 00:08:15,840 does matter, it's very important and it 213 00:08:15,840 --> 00:08:17,280 goes really well, people will throw 214 00:08:17,280 --> 00:08:20,639 money at you. consequent like the other 215 00:08:20,639 --> 00:08:22,479 side of it the word I can't remember is 216 00:08:22,479 --> 00:08:24,560 if it goes badly if it goes badly and it 217 00:08:24,560 --> 00:08:28,639 doesn't matter great oh no anyway but if 218 00:08:28,639 --> 00:08:30,960 it doesn't go well and it really does 219 00:08:30,960 --> 00:08:34,560 matter then not stops [laughter] 220 00:08:34,560 --> 00:08:38,399 cool I'm glad the memes worked um so to 221 00:08:38,399 --> 00:08:40,000 put this in perspective as well some of 222 00:08:40,000 --> 00:08:42,320 the things that could go wrong um this 223 00:08:42,320 --> 00:08:44,880 is April this year I presented a live 224 00:08:44,880 --> 00:08:46,800 demo in Sydney alongside the 225 00:08:46,800 --> 00:08:48,640 and so to show you 226 00:08:48,640 --> 00:08:51,200 Microsoft CEO. I wanted to introduce 227 00:08:51,200 --> 00:08:53,519 Australia's own Damian to the stage. 228 00:08:53,519 --> 00:08:56,451 Damian, take it away. 229 00:08:56,451 --> 00:08:58,471 [applause] 230 00:08:58,560 --> 00:09:00,000 Thanks, Satia. 231 00:09:00,000 --> 00:09:00,320 Right. 232 00:09:00,320 --> 00:09:01,760 Thanks. My name is 233 00:09:01,760 --> 00:09:04,959 Terrifying. Okay, that is the view from 234 00:09:04,959 --> 00:09:07,440 the back of the room. There are about 235 00:09:07,440 --> 00:09:11,360 6,000 people here. Um, and they were 236 00:09:11,360 --> 00:09:13,040 mainly what Microsoft likes to call 237 00:09:13,040 --> 00:09:16,560 BDMs, business decision makers, aka the 238 00:09:16,560 --> 00:09:18,560 people with the money, right? And 239 00:09:18,560 --> 00:09:20,399 because those people aren't writing code 240 00:09:20,399 --> 00:09:22,080 every day, even though I was showing 241 00:09:22,080 --> 00:09:25,120 code in the demo I I did, um, I had to 242 00:09:25,120 --> 00:09:26,880 convince them that the things I was 243 00:09:26,880 --> 00:09:28,240 showing them, which for most of them 244 00:09:28,240 --> 00:09:29,760 would have been the first and last time 245 00:09:29,760 --> 00:09:31,440 they ever saw those products in real 246 00:09:31,440 --> 00:09:34,000 life, um, that they were actually going 247 00:09:34,000 --> 00:09:35,680 to be worthwhile. And I'll talk a little 248 00:09:35,680 --> 00:09:38,480 bit later about the audience, but if I 249 00:09:38,480 --> 00:09:40,399 had got on stage and showed something 250 00:09:40,399 --> 00:09:43,200 that was buggy or just didn't work, that 251 00:09:43,200 --> 00:09:46,160 would have been a very bad day for me 252 00:09:46,160 --> 00:09:47,920 and for Microsoft and for everything 253 00:09:47,920 --> 00:09:51,760 else. Um, just little story as well, we 254 00:09:51,760 --> 00:09:53,360 had to delay that keynote by a few 255 00:09:53,360 --> 00:09:55,120 minutes cuz Satia was meeting with the 256 00:09:55,120 --> 00:09:57,839 prime minister and had to get across to 257 00:09:57,839 --> 00:09:59,040 the other thing. So, he was wearing a 258 00:09:59,040 --> 00:10:00,880 suit when he walked in the building and 259 00:10:00,880 --> 00:10:02,720 then he like quickly changed and got on 260 00:10:02,720 --> 00:10:05,600 stage. It was crazy. Anyway, um but to 261 00:10:05,600 --> 00:10:07,200 make that this is what happens, right? 262 00:10:07,200 --> 00:10:09,760 If I get that wrong. Um so to make that 263 00:10:09,760 --> 00:10:11,360 happen, there's a few things you need to 264 00:10:11,360 --> 00:10:14,240 do to build good demos. So the first 265 00:10:14,240 --> 00:10:15,680 one, which is something that is quite 266 00:10:15,680 --> 00:10:17,519 often overlooked, is the structure and 267 00:10:17,519 --> 00:10:19,519 design of the demo. So how you put that 268 00:10:19,519 --> 00:10:23,120 demo together. Um I'm a big believer in 269 00:10:23,120 --> 00:10:25,440 a coherent narrative, a story that goes 270 00:10:25,440 --> 00:10:28,959 from start to finish. Um this is uh 271 00:10:28,959 --> 00:10:30,560 another screenshot from me doing the 272 00:10:30,560 --> 00:10:32,880 demo on stage next to um Satir and 273 00:10:32,880 --> 00:10:36,720 April. And I was asked to um I had 8 274 00:10:36,720 --> 00:10:38,959 minutes 8 minutes on stage and there 275 00:10:38,959 --> 00:10:41,120 were at least a dozen specific things 276 00:10:41,120 --> 00:10:43,200 that they needed me to hit hit this 277 00:10:43,200 --> 00:10:44,560 feature and this feature and this 278 00:10:44,560 --> 00:10:46,480 feature and this feature. So I could 279 00:10:46,480 --> 00:10:48,880 have got up and just gone through each 280 00:10:48,880 --> 00:10:50,640 of those features. But instead, what we 281 00:10:50,640 --> 00:10:53,360 decided to do was to build the story of 282 00:10:53,360 --> 00:10:55,279 a day in the life of a developer who's 283 00:10:55,279 --> 00:10:57,360 got three or four things on their plate. 284 00:10:57,360 --> 00:10:59,600 Like they need to gather requirements 285 00:10:59,600 --> 00:11:01,839 from a bunch of different places. Uh get 286 00:11:01,839 --> 00:11:03,920 an agent to start working on that. They 287 00:11:03,920 --> 00:11:05,760 need to fix a bug over here and they 288 00:11:05,760 --> 00:11:07,360 need to do these other things. So tell a 289 00:11:07,360 --> 00:11:09,839 story and walk people through. If they 290 00:11:09,839 --> 00:11:12,959 can relate to that story, that a makes 291 00:11:12,959 --> 00:11:14,800 it easier to remember what you've said 292 00:11:14,800 --> 00:11:16,480 rather than just throwing features at 293 00:11:16,480 --> 00:11:19,839 them. And B, it means that they can um 294 00:11:19,839 --> 00:11:21,519 they can picture themselves in that 295 00:11:21,519 --> 00:11:23,040 scenario. 296 00:11:23,040 --> 00:11:24,560 So a list of features is really hard to 297 00:11:24,560 --> 00:11:26,079 pay attention attention to, but a 298 00:11:26,079 --> 00:11:27,839 relatable story resonates. It means it 299 00:11:27,839 --> 00:11:29,920 gets remembered. It tells the story like 300 00:11:29,920 --> 00:11:32,079 in the right way. You can see how this 301 00:11:32,079 --> 00:11:36,240 thing would fix your problem, right? Um 302 00:11:36,240 --> 00:11:38,079 so 303 00:11:38,079 --> 00:11:39,760 this is similar. Has anybody heard of 304 00:11:39,760 --> 00:11:43,360 the um the memory uh what is it? The 305 00:11:43,360 --> 00:11:45,120 memory technique called the something 306 00:11:45,120 --> 00:11:48,000 palace. the meal mind palace or 307 00:11:48,000 --> 00:11:49,360 something like that. I looked this up 308 00:11:49,360 --> 00:11:50,399 just before I came and now I've 309 00:11:50,399 --> 00:11:51,519 forgotten it. I should have put it in a 310 00:11:51,519 --> 00:11:55,200 mind palace. Um the the technique 311 00:11:55,200 --> 00:11:56,640 basically is if you have to remember a 312 00:11:56,640 --> 00:11:58,320 whole bunch of things then you put them 313 00:11:58,320 --> 00:12:00,160 in a place in this virtual palace in 314 00:12:00,160 --> 00:12:01,760 your mind and then to remember them you 315 00:12:01,760 --> 00:12:04,240 walk through the palace. You remember I 316 00:12:04,240 --> 00:12:05,760 go into this room and oh that's right, 317 00:12:05,760 --> 00:12:07,760 there's a blue turkey on the corner and 318 00:12:07,760 --> 00:12:09,200 it helps you remember all of these 319 00:12:09,200 --> 00:12:11,839 different facts. Same idea. If you have 320 00:12:11,839 --> 00:12:13,760 a path for somebody to follow in the 321 00:12:13,760 --> 00:12:15,440 audience, then they will remember the 322 00:12:15,440 --> 00:12:18,079 things you did in those locations. So 323 00:12:18,079 --> 00:12:19,760 try and do that with the demos rather 324 00:12:19,760 --> 00:12:22,160 than just hitting hitting these items. 325 00:12:22,160 --> 00:12:24,399 All right, 326 00:12:24,399 --> 00:12:26,720 a few tips for success to kind of help 327 00:12:26,720 --> 00:12:29,200 you when it's time to like build a demo 328 00:12:29,200 --> 00:12:30,880 to create a demo as well. And the number 329 00:12:30,880 --> 00:12:33,279 one probably fairly obvious for anybody 330 00:12:33,279 --> 00:12:35,760 who does presentations um is know your 331 00:12:35,760 --> 00:12:38,480 audience. So know who you're talking to. 332 00:12:38,480 --> 00:12:40,240 That room full of business development 333 00:12:40,240 --> 00:12:42,160 managers or business decision makers is 334 00:12:42,160 --> 00:12:44,560 not the usual audience I talk to. I'll 335 00:12:44,560 --> 00:12:46,639 talk to developers a lot. But if I'm 336 00:12:46,639 --> 00:12:49,360 speaking at a Python conference first, 337 00:12:49,360 --> 00:12:51,040 um I hope it's not about Python cuz I 338 00:12:51,040 --> 00:12:53,760 don't write a lot. But I I know that the 339 00:12:53,760 --> 00:12:55,600 audience is fairly technical. They they 340 00:12:55,600 --> 00:12:57,440 can write code. If I show a demo that 341 00:12:57,440 --> 00:12:58,959 shows code, they're probably going to 342 00:12:58,959 --> 00:13:01,120 understand that. But in that room of 343 00:13:01,120 --> 00:13:04,079 business decision makers, if I show code 344 00:13:04,079 --> 00:13:05,760 and then start going into the intric 345 00:13:05,760 --> 00:13:07,760 intricacies of that code, I'm going to 346 00:13:07,760 --> 00:13:09,600 lose them. That's not what they want. 347 00:13:09,600 --> 00:13:12,079 The CIO who signs that purchase order 348 00:13:12,079 --> 00:13:14,320 for you, they don't care that you use 349 00:13:14,320 --> 00:13:17,040 local storage and web RTC, right? That's 350 00:13:17,040 --> 00:13:18,560 going to mean nothing to them. And then 351 00:13:18,560 --> 00:13:20,160 the person who is actually using your 352 00:13:20,160 --> 00:13:22,079 software, they don't care that it's 353 00:13:22,079 --> 00:13:23,839 geographically redundant if they're a 354 00:13:23,839 --> 00:13:25,440 receptionist who's, you know, clicking 355 00:13:25,440 --> 00:13:27,760 on your buttons, right? So know your 356 00:13:27,760 --> 00:13:30,240 audience and and target the talk to that 357 00:13:30,240 --> 00:13:33,200 audience. Um and that also means that 358 00:13:33,200 --> 00:13:35,200 you need to know your product and not 359 00:13:35,200 --> 00:13:36,800 just at a surface level. You need to 360 00:13:36,800 --> 00:13:38,399 know exactly what the thing is you're 361 00:13:38,399 --> 00:13:41,200 showing and how it works. This also 362 00:13:41,200 --> 00:13:43,519 helps later on when um you might need to 363 00:13:43,519 --> 00:13:44,800 change what you're talking about or 364 00:13:44,800 --> 00:13:46,800 somebody asks a question. Know it as 365 00:13:46,800 --> 00:13:49,279 deeply as you possibly can. Now in 366 00:13:49,279 --> 00:13:52,000 Devril uh working for dev tools teams 367 00:13:52,000 --> 00:13:54,079 that's pretty easy cuz I'm also the 368 00:13:54,079 --> 00:13:56,079 customer. But if you're writing software 369 00:13:56,079 --> 00:13:58,399 for other people who don't do what you 370 00:13:58,399 --> 00:14:00,320 do, spend a lot of time with those 371 00:14:00,320 --> 00:14:01,760 customers. Find out where the pain 372 00:14:01,760 --> 00:14:03,839 points are, how they actually use your 373 00:14:03,839 --> 00:14:06,720 software and and do that work. 374 00:14:06,720 --> 00:14:08,959 Similarly, know the product team. Go and 375 00:14:08,959 --> 00:14:11,199 speak to the people who do speak to the 376 00:14:11,199 --> 00:14:13,279 customers. Uh speak to your marketing 377 00:14:13,279 --> 00:14:14,880 team and your sales team and your 378 00:14:14,880 --> 00:14:17,199 engineers and really get to learn what 379 00:14:17,199 --> 00:14:19,120 the edges are around this piece of 380 00:14:19,120 --> 00:14:20,639 software. 381 00:14:20,639 --> 00:14:23,440 Last overall uh tip that I have, if you 382 00:14:23,440 --> 00:14:25,839 are writing a demo, not showing 383 00:14:25,839 --> 00:14:28,160 something is way better than showing 384 00:14:28,160 --> 00:14:30,399 something that is broken. 385 00:14:30,399 --> 00:14:33,040 If there is a feature that is maybe 386 00:14:33,040 --> 00:14:35,360 going to work on stage, 387 00:14:35,360 --> 00:14:39,440 don't show it. Just skip it entirely. Um 388 00:14:39,440 --> 00:14:40,800 because there are challenges with 389 00:14:40,800 --> 00:14:43,199 showing with showing software. And quite 390 00:14:43,199 --> 00:14:44,800 frequently we're asked to show the 391 00:14:44,800 --> 00:14:46,959 latest and greatest. You know, I've had 392 00:14:46,959 --> 00:14:48,880 conversations about with people about 393 00:14:48,880 --> 00:14:50,160 how come you don't do any talks on 394 00:14:50,160 --> 00:14:53,199 GitHub actions anymore. I'm like cuz 395 00:14:53,199 --> 00:14:56,000 that doesn't sell stuff anymore. Like 396 00:14:56,000 --> 00:14:57,920 they want me to do AI. So I'm having to 397 00:14:57,920 --> 00:14:59,920 do these, you know, [snorts] 398 00:14:59,920 --> 00:15:02,320 uh these presentations about products 399 00:15:02,320 --> 00:15:04,079 that are right on the bleeding edge, 400 00:15:04,079 --> 00:15:05,920 right? And that is one of the biggest 401 00:15:05,920 --> 00:15:08,160 challenges is that we are demonstrating 402 00:15:08,160 --> 00:15:10,399 sometimes bleeding edge software um 403 00:15:10,399 --> 00:15:12,399 stuff that is hot off the press. 404 00:15:12,399 --> 00:15:13,839 sometimes things that are very much 405 00:15:13,839 --> 00:15:16,079 still on the press uh but at some point 406 00:15:16,079 --> 00:15:17,440 soon they'll probably be off the press 407 00:15:17,440 --> 00:15:20,160 and can you please demo it anyway right 408 00:15:20,160 --> 00:15:22,320 and um I've had a lot of these occasions 409 00:15:22,320 --> 00:15:23,440 right where you are trying to 410 00:15:23,440 --> 00:15:25,120 demonstrate software that doesn't quite 411 00:15:25,120 --> 00:15:28,320 work yet um I've been doing GitHub 412 00:15:28,320 --> 00:15:29,839 Universe I think this year will be my 413 00:15:29,839 --> 00:15:32,800 fifth year involved in the keynote and I 414 00:15:32,800 --> 00:15:35,920 remember um several occasions where 415 00:15:35,920 --> 00:15:37,519 there are products that are still very 416 00:15:37,519 --> 00:15:39,279 actively being worked on that we had to 417 00:15:39,279 --> 00:15:42,000 demonstrate on stage um it's the 418 00:15:42,000 --> 00:15:43,440 wonderful and terrifying thing about 419 00:15:43,440 --> 00:15:46,079 that event, right? Uh I think it was 420 00:15:46,079 --> 00:15:47,519 last year or the year before, there was 421 00:15:47,519 --> 00:15:49,279 one feature where the last deployment 422 00:15:49,279 --> 00:15:51,360 before we showed it on stage was 4:00 423 00:15:51,360 --> 00:15:53,839 a.m. the day of the event after our 424 00:15:53,839 --> 00:15:57,519 final dress rehearsal. Um and I'm aware 425 00:15:57,519 --> 00:15:58,800 I'm being recorded, but I'm going to say 426 00:15:58,800 --> 00:16:01,600 it anyway. The on stage on the day was 427 00:16:01,600 --> 00:16:03,839 the first time that that product worked 428 00:16:03,839 --> 00:16:06,880 perfectly, that feature worked perfectly 429 00:16:06,880 --> 00:16:09,360 through all of our rehearsals. 430 00:16:09,360 --> 00:16:11,759 Now, obviously, you need to do something 431 00:16:11,759 --> 00:16:13,360 about that, right? You can't just go up 432 00:16:13,360 --> 00:16:16,079 there and cross your fingers. Um, so 433 00:16:16,079 --> 00:16:17,279 there are a lot of different ways you 434 00:16:17,279 --> 00:16:19,360 can mitigate these problems. Um, 435 00:16:19,360 --> 00:16:21,360 sometimes the solution is a video 436 00:16:21,360 --> 00:16:24,240 backup. That first picture of Universe, 437 00:16:24,240 --> 00:16:25,759 the first one I was at, we did all the 438 00:16:25,759 --> 00:16:27,600 demos just as videos. We stood on stage 439 00:16:27,600 --> 00:16:29,680 and we talked through the videos. I 440 00:16:29,680 --> 00:16:32,800 don't love that. I I really prefer live 441 00:16:32,800 --> 00:16:36,079 demos because, again, don't just tell 442 00:16:36,079 --> 00:16:38,720 me, prove it, right? but they can be 443 00:16:38,720 --> 00:16:40,560 useful. Um, it's slightly less 444 00:16:40,560 --> 00:16:42,320 authentic, I think, but it's sometimes 445 00:16:42,320 --> 00:16:44,320 okay with one caveat, which you'll hear 446 00:16:44,320 --> 00:16:47,920 me say a bit, is don't lie. Do not show 447 00:16:47,920 --> 00:16:50,959 a video of a thing that can't happen. 448 00:16:50,959 --> 00:16:53,920 Right? Videos are useful for speeding 449 00:16:53,920 --> 00:16:56,560 things up, but don't pretend that that's 450 00:16:56,560 --> 00:16:59,360 how long it took. Right? You can just 451 00:16:59,360 --> 00:17:01,440 say the words, "This takes a few 452 00:17:01,440 --> 00:17:03,600 minutes, so let's go to, you know, the 453 00:17:03,600 --> 00:17:05,600 end when we've done it." or I've sped 454 00:17:05,600 --> 00:17:07,600 this up for time, but let's see how this 455 00:17:07,600 --> 00:17:10,720 is completed and so on. That's fine in 456 00:17:10,720 --> 00:17:12,799 my book, but don't pretend that what 457 00:17:12,799 --> 00:17:14,240 they're seeing on screen is what they 458 00:17:14,240 --> 00:17:15,679 will see when they use the product if 459 00:17:15,679 --> 00:17:18,640 that's not the case. Similarly, 460 00:17:18,640 --> 00:17:20,959 workarounds. So, I'm a big fan of the 461 00:17:20,959 --> 00:17:23,439 cooking show technique, the I'm just 462 00:17:23,439 --> 00:17:24,640 going to kick that off. Now, that takes 463 00:17:24,640 --> 00:17:26,000 a few minutes. Here's one I've prepared 464 00:17:26,000 --> 00:17:27,679 earlier. And I make liberal use of 465 00:17:27,679 --> 00:17:30,559 multiple desktops in Mac or in Windows. 466 00:17:30,559 --> 00:17:32,320 You can just set something up in a 467 00:17:32,320 --> 00:17:34,160 subsequent desktop. I think my record is 468 00:17:34,160 --> 00:17:36,720 eight desktops in one demo where I just 469 00:17:36,720 --> 00:17:39,840 swipe between them. Um, same rule 470 00:17:39,840 --> 00:17:42,720 applies though, don't lie. Um, with 471 00:17:42,720 --> 00:17:45,200 non-deterministic AI dev tools, which is 472 00:17:45,200 --> 00:17:48,000 what I talk about a lot, as long as So, 473 00:17:48,000 --> 00:17:50,080 you can kick something off, write a 474 00:17:50,080 --> 00:17:52,000 prompt, and it starts doing the work, 475 00:17:52,000 --> 00:17:53,600 then skip to one where you've already 476 00:17:53,600 --> 00:17:55,600 written that same prompt and it has 477 00:17:55,600 --> 00:17:57,760 finished. I'm not lying then. I'm just 478 00:17:57,760 --> 00:18:00,320 skipping through the working process. It 479 00:18:00,320 --> 00:18:01,600 won't give me the same thing on the one 480 00:18:01,600 --> 00:18:03,679 I just kicked off, but it is a 481 00:18:03,679 --> 00:18:05,440 legitimate answer that I got from asking 482 00:18:05,440 --> 00:18:06,960 that same question, from that same 483 00:18:06,960 --> 00:18:08,960 prompt. And I think that's fine, but 484 00:18:08,960 --> 00:18:10,720 just don't pretend something took 5 485 00:18:10,720 --> 00:18:12,320 seconds when it actually took an hour. 486 00:18:12,320 --> 00:18:13,760 And in fact, in the US, if you 487 00:18:13,760 --> 00:18:15,760 demonstrate those things, uh the company 488 00:18:15,760 --> 00:18:18,000 can be fined stupid amounts of money if 489 00:18:18,000 --> 00:18:19,919 you if you pretend something is quicker 490 00:18:19,919 --> 00:18:21,039 than it actually is, which is 491 00:18:21,039 --> 00:18:23,600 interesting. Um, there is a lot of gray 492 00:18:23,600 --> 00:18:27,039 area in this, I understand. But, um, I 493 00:18:27,039 --> 00:18:29,360 think it's still, uh, legitimate as long 494 00:18:29,360 --> 00:18:31,039 as you are showing people the product 495 00:18:31,039 --> 00:18:33,120 and the feature as it actually would 496 00:18:33,120 --> 00:18:35,280 work, right? People understand they're 497 00:18:35,280 --> 00:18:37,039 not going to sit there for 20 minutes. 498 00:18:37,039 --> 00:18:39,039 Um, if that's how long it takes. And 499 00:18:39,039 --> 00:18:40,720 then the final one is this last word. 500 00:18:40,720 --> 00:18:42,880 Has anybody heard this word before? 501 00:18:42,880 --> 00:18:44,880 Yeah, a few people. I learned it from Ed 502 00:18:44,880 --> 00:18:47,919 Zitron. Um, who if you are sketchy on 503 00:18:47,919 --> 00:18:49,679 AI, definitely go and read his stuff. 504 00:18:49,679 --> 00:18:52,080 Um, but it comes from I think it comes 505 00:18:52,080 --> 00:18:54,320 from the world of wrestling in the US. 506 00:18:54,320 --> 00:18:57,039 Yeah. Um, it's kayfabe and it basically 507 00:18:57,039 --> 00:18:59,760 means a simulation that you pretend is a 508 00:18:59,760 --> 00:19:02,080 real thing, right? Um, so you can see 509 00:19:02,080 --> 00:19:03,440 why it came from the wrestling world. 510 00:19:03,440 --> 00:19:04,799 There's also suggestions that it came 511 00:19:04,799 --> 00:19:07,280 from the carnie world where they're um, 512 00:19:07,280 --> 00:19:09,760 yeah, similar kind of things. Um, so 513 00:19:09,760 --> 00:19:11,440 basically you are pretending that you 514 00:19:11,440 --> 00:19:13,039 are doing the thing, but you're not 515 00:19:13,039 --> 00:19:14,480 actually doing the thing. You're doing a 516 00:19:14,480 --> 00:19:17,039 very trusted version of it. This is my 517 00:19:17,039 --> 00:19:19,760 least favorite technique because it even 518 00:19:19,760 --> 00:19:21,280 if you're very honest about it while 519 00:19:21,280 --> 00:19:23,520 you're doing it, it feels like a lie. 520 00:19:23,520 --> 00:19:25,760 Like it is a lie. You're saying, "I'm 521 00:19:25,760 --> 00:19:27,120 just going to click on this button." And 522 00:19:27,120 --> 00:19:28,880 really, you're just progressing a slide 523 00:19:28,880 --> 00:19:33,280 deck, right? However, it can be useful 524 00:19:33,280 --> 00:19:35,200 if you actually want to just show what a 525 00:19:35,200 --> 00:19:37,440 product does without any of the risk of 526 00:19:37,440 --> 00:19:39,360 it going wrong when you don't want it to 527 00:19:39,360 --> 00:19:40,799 go wrong. 528 00:19:40,799 --> 00:19:43,039 So, uh, there are tools that can do this 529 00:19:43,039 --> 00:19:45,200 really, really well, um, where you 530 00:19:45,200 --> 00:19:47,120 actually record your screen and then you 531 00:19:47,120 --> 00:19:48,640 can do some work to say, well, this is a 532 00:19:48,640 --> 00:19:51,280 hit spot like this button and that will 533 00:19:51,280 --> 00:19:53,200 continue with this part of the the 534 00:19:53,200 --> 00:19:55,280 demonstration. Um, but I've used 535 00:19:55,280 --> 00:19:56,720 techniques as well where I just record 536 00:19:56,720 --> 00:19:59,200 an end to-end demo and then I cut it 537 00:19:59,200 --> 00:20:01,520 into pieces at the natural stop points, 538 00:20:01,520 --> 00:20:03,039 hide the mouse, and then you can move 539 00:20:03,039 --> 00:20:05,039 the mouse around, click, and it's just 540 00:20:05,039 --> 00:20:06,799 progressing a slide rather than clicking 541 00:20:06,799 --> 00:20:10,240 a button. It's fine as long as you again 542 00:20:10,240 --> 00:20:12,080 don't lie about what you're doing. You 543 00:20:12,080 --> 00:20:13,360 can say, "I want to show you how this 544 00:20:13,360 --> 00:20:15,360 product works." Um, you can be a little 545 00:20:15,360 --> 00:20:16,799 bit clever with language depending on 546 00:20:16,799 --> 00:20:18,960 your moral stance. Say, "I just want to 547 00:20:18,960 --> 00:20:20,799 show you how this product works. So, 548 00:20:20,799 --> 00:20:22,720 here's a, you know, demonstration of 549 00:20:22,720 --> 00:20:24,720 it." Um, don't pretend you're doing it 550 00:20:24,720 --> 00:20:27,760 live, though. I don't love that. Okay? 551 00:20:27,760 --> 00:20:29,840 And part of that is because I think if 552 00:20:29,840 --> 00:20:31,360 you are asked to demonstrate a product 553 00:20:31,360 --> 00:20:34,320 or a feature, you really need to stick 554 00:20:34,320 --> 00:20:36,640 to your professional integrity. If 555 00:20:36,640 --> 00:20:38,960 somebody's asking you to lie on stage 556 00:20:38,960 --> 00:20:41,120 about what your product or your feature 557 00:20:41,120 --> 00:20:44,159 does, you should absolutely say no. And 558 00:20:44,159 --> 00:20:46,720 it may be a career limiting move. Um, 559 00:20:46,720 --> 00:20:49,200 but I I feel like I feel pretty strongly 560 00:20:49,200 --> 00:20:50,880 about this. I realize not everybody is 561 00:20:50,880 --> 00:20:52,640 in a situation where they can say no, 562 00:20:52,640 --> 00:20:54,720 but maybe think about where you are if 563 00:20:54,720 --> 00:20:57,679 that happens regularly. Um, the other 564 00:20:57,679 --> 00:20:58,960 side of this is just because an 565 00:20:58,960 --> 00:21:00,559 important person says that you need to 566 00:21:00,559 --> 00:21:02,240 show something doesn't mean it's a good 567 00:21:02,240 --> 00:21:05,600 idea. Um, I have had plenty of arguments 568 00:21:05,600 --> 00:21:06,880 about whether something should be 569 00:21:06,880 --> 00:21:09,760 included or not included. Um, because it 570 00:21:09,760 --> 00:21:12,799 was maybe going to work on stage and it 571 00:21:12,799 --> 00:21:15,280 was too risky to show it. Um, I've asked 572 00:21:15,280 --> 00:21:16,880 them to cut it and they've said no. And 573 00:21:16,880 --> 00:21:18,320 so I said, well, okay, how about for 574 00:21:18,320 --> 00:21:20,960 that part of the demo we do a video um, 575 00:21:20,960 --> 00:21:22,080 you know, trying to stick to that 576 00:21:22,080 --> 00:21:24,960 professional integrity. Um, this is a 577 00:21:24,960 --> 00:21:27,360 picture of former GitHub CEO Thomas 578 00:21:27,360 --> 00:21:29,840 Donkey. Um, he is in this picture. He's 579 00:21:29,840 --> 00:21:32,559 presenting at TED in Vancouver. uh I 580 00:21:32,559 --> 00:21:34,400 built the demo that he showed live on 581 00:21:34,400 --> 00:21:36,080 stage. This is really really really 582 00:21:36,080 --> 00:21:40,480 early GitHub uh co-pilot chat. So the 583 00:21:40,480 --> 00:21:42,080 first time you actually were able to 584 00:21:42,080 --> 00:21:45,200 chat with copilot um and so I built this 585 00:21:45,200 --> 00:21:46,960 demo with some help of some 3D artists 586 00:21:46,960 --> 00:21:48,799 and things like that. And basically it 587 00:21:48,799 --> 00:21:52,320 was you asked the thing to use the the 588 00:21:52,320 --> 00:21:54,480 Lego bricks that they have to build the 589 00:21:54,480 --> 00:21:56,880 word TED. And so Thomas got on stage and 590 00:21:56,880 --> 00:22:00,080 he did this demo um and it worked well 591 00:22:00,080 --> 00:22:02,080 and everything went fine. And then he 592 00:22:02,080 --> 00:22:03,919 came off stage for some feedback and 593 00:22:03,919 --> 00:22:05,679 Chris Anderson who's like the head of 594 00:22:05,679 --> 00:22:08,400 TED said that was good. I don't really 595 00:22:08,400 --> 00:22:10,159 like the TED bit though. Could you get 596 00:22:10,159 --> 00:22:11,679 it to like build a house or something 597 00:22:11,679 --> 00:22:14,880 instead? And so Thomas turned around and 598 00:22:14,880 --> 00:22:16,559 stared straight at me. And Chris 599 00:22:16,559 --> 00:22:18,480 Anderson turned and stared at me and I 600 00:22:18,480 --> 00:22:21,679 was like there's so much pressure now. 601 00:22:21,679 --> 00:22:25,360 And I said, "Maybe give me two hours and 602 00:22:25,360 --> 00:22:27,679 I'll let you know." And I went away and 603 00:22:27,679 --> 00:22:29,520 did that. I was prepared to say no to 604 00:22:29,520 --> 00:22:32,159 those people and then uh jump on seek 605 00:22:32,159 --> 00:22:33,900 and look for another job. But um 606 00:22:33,900 --> 00:22:35,039 [laughter] 607 00:22:35,039 --> 00:22:36,799 turned out though that the 3D artist who 608 00:22:36,799 --> 00:22:39,039 gave me the bricks, the little 3D Lego 609 00:22:39,039 --> 00:22:40,559 bricks, gave me multiple sizes of 610 00:22:40,559 --> 00:22:42,159 bricks. So I managed to figure it out 611 00:22:42,159 --> 00:22:44,320 and we did it and it worked. Uh and it 612 00:22:44,320 --> 00:22:46,960 was fun. Um, but the risk of committing 613 00:22:46,960 --> 00:22:48,480 to something just because there's an 614 00:22:48,480 --> 00:22:49,840 important person breathing down your 615 00:22:49,840 --> 00:22:52,080 neck and then either having to go back 616 00:22:52,080 --> 00:22:53,679 and say, "I know I said I could do it, 617 00:22:53,679 --> 00:22:56,480 but I can't." Or even worse, just 618 00:22:56,480 --> 00:22:58,080 crossing your fingers and it doesn't 619 00:22:58,080 --> 00:23:01,520 work. Not worth the risk, I think. And 620 00:23:01,520 --> 00:23:03,200 sometimes it's not because the product 621 00:23:03,200 --> 00:23:04,880 is a bit sketchy. Sometimes it's because 622 00:23:04,880 --> 00:23:08,960 there are shifting priorities. Um I I 623 00:23:08,960 --> 00:23:11,600 was working on a keynote for um 624 00:23:11,600 --> 00:23:13,919 Microsoft Ignite which is comes a couple 625 00:23:13,919 --> 00:23:16,960 of weeks after um GitHub Universe in 626 00:23:16,960 --> 00:23:19,919 Seattle at the time. Um and I was just 627 00:23:19,919 --> 00:23:21,360 about to get on the flight to go to 628 00:23:21,360 --> 00:23:23,919 GitHub Universe and I had a meeting with 629 00:23:23,919 --> 00:23:25,679 some of the executives to show them this 630 00:23:25,679 --> 00:23:27,360 demo that I worked on showing GitHub 631 00:23:27,360 --> 00:23:29,200 stuff. I'd probably put I worked out 632 00:23:29,200 --> 00:23:32,080 about a 100 hours of hands-on keyboard 633 00:23:32,080 --> 00:23:34,480 effort to get this demo working. And so 634 00:23:34,480 --> 00:23:37,200 I showed them and um one of the senior 635 00:23:37,200 --> 00:23:38,960 vice presidents, Scott Guthrie, watched 636 00:23:38,960 --> 00:23:41,520 it and he said, "Yep, that's good. But I 637 00:23:41,520 --> 00:23:44,559 think what we might do is just show like 638 00:23:44,559 --> 00:23:47,039 um some videos of some of the products 639 00:23:47,039 --> 00:23:51,440 instead." I went, "Cool." Shut the 640 00:23:51,440 --> 00:23:53,280 laptop, went to the airport, and then 641 00:23:53,280 --> 00:23:55,440 came back. And in between rehearsals of 642 00:23:55,440 --> 00:23:57,200 GitHub Universe, I was editing a video 643 00:23:57,200 --> 00:24:00,880 to send. So threw away several weeks of 644 00:24:00,880 --> 00:24:03,760 work um because the priorities shifted. 645 00:24:03,760 --> 00:24:04,960 they didn't want to show as much of 646 00:24:04,960 --> 00:24:06,720 that. They wanted to do something else. 647 00:24:06,720 --> 00:24:08,320 Similarly, GitHub Universe, they quite 648 00:24:08,320 --> 00:24:09,679 frequently have three or four features 649 00:24:09,679 --> 00:24:11,600 they want to show and then you know 650 00:24:11,600 --> 00:24:13,039 what, this one's not going to work, but 651 00:24:13,039 --> 00:24:14,240 we've got this other thing. Can you 652 00:24:14,240 --> 00:24:17,600 shove that in? My only advice with this 653 00:24:17,600 --> 00:24:20,320 is do the work and don't be attached to 654 00:24:20,320 --> 00:24:23,120 any of it. It can be really frustrating 655 00:24:23,120 --> 00:24:25,120 doing hours and hours and hours of work 656 00:24:25,120 --> 00:24:26,960 to be told, "Ah, we don't want that 657 00:24:26,960 --> 00:24:30,400 anymore." But it happens. And it doesn't 658 00:24:30,400 --> 00:24:32,720 mean you didn't provide value. it just 659 00:24:32,720 --> 00:24:34,799 means that that value was really 660 00:24:34,799 --> 00:24:37,919 short-lived, right? It helps them 661 00:24:37,919 --> 00:24:39,200 understand what they wanted and what 662 00:24:39,200 --> 00:24:41,679 they didn't. Um, the other thing that 663 00:24:41,679 --> 00:24:44,080 comes up as well is time limitations. 664 00:24:44,080 --> 00:24:47,600 So, sometimes you're asked to put in 30 665 00:24:47,600 --> 00:24:50,640 different features into a demo of 4 666 00:24:50,640 --> 00:24:52,559 minutes. And this happens to me all the 667 00:24:52,559 --> 00:24:55,600 time um where they say we would like a 668 00:24:55,600 --> 00:24:58,480 video um they call it an ambient v video 669 00:24:58,480 --> 00:25:00,000 if it's something that plays behind an 670 00:25:00,000 --> 00:25:02,159 executive at a Microsoft keynote and 671 00:25:02,159 --> 00:25:04,400 it's just this little demo of the thing 672 00:25:04,400 --> 00:25:06,400 they're talking about. So sometimes we 673 00:25:06,400 --> 00:25:08,799 will get instructions uh you have an 674 00:25:08,799 --> 00:25:10,880 ambient video that we need it needs to 675 00:25:10,880 --> 00:25:13,360 be less than 20 seconds but we need to 676 00:25:13,360 --> 00:25:15,520 show these eight things. You're like 677 00:25:15,520 --> 00:25:18,000 there's no way there's absolutely no way 678 00:25:18,000 --> 00:25:21,360 we can do that. So again, you can have 679 00:25:21,360 --> 00:25:23,520 arguments. Um I've lobbied really hard 680 00:25:23,520 --> 00:25:25,679 for pulling stuff out of um videos and 681 00:25:25,679 --> 00:25:28,400 out of presentations. Um sometimes I won 682 00:25:28,400 --> 00:25:30,080 those arguments, sometimes I lost those 683 00:25:30,080 --> 00:25:33,440 arguments. Um the worst case is when 684 00:25:33,440 --> 00:25:34,799 people above you have had the 685 00:25:34,799 --> 00:25:36,080 conversations about what's going to be 686 00:25:36,080 --> 00:25:39,360 in the demo before it gets to you. And 687 00:25:39,360 --> 00:25:40,960 so those conversations have already 688 00:25:40,960 --> 00:25:43,600 happened and you are told, "You have 3 689 00:25:43,600 --> 00:25:45,919 minutes to do this demo and here are the 690 00:25:45,919 --> 00:25:48,400 six things you need to show." And now 691 00:25:48,400 --> 00:25:50,240 this causes problems because a how am I 692 00:25:50,240 --> 00:25:52,159 going to shove that all in? But how am I 693 00:25:52,159 --> 00:25:54,480 going to turn that into a a reasonable 694 00:25:54,480 --> 00:25:56,159 story and a narrative because none of 695 00:25:56,159 --> 00:25:58,480 these things are related to each other? 696 00:25:58,480 --> 00:26:00,320 Um and that's where some of your 697 00:26:00,320 --> 00:26:02,320 professional integrity can come in or 698 00:26:02,320 --> 00:26:03,600 sometimes you just have to bite the 699 00:26:03,600 --> 00:26:05,440 bullet and do your the best you can with 700 00:26:05,440 --> 00:26:07,440 what you have. 701 00:26:07,440 --> 00:26:09,919 I think what's most important though is 702 00:26:09,919 --> 00:26:13,440 that narrative and that story. Um and 703 00:26:13,440 --> 00:26:15,760 showing what's reliable. 704 00:26:15,760 --> 00:26:18,320 If you can't cleanly demonstrate how a 705 00:26:18,320 --> 00:26:21,279 feature or a product works, then you are 706 00:26:21,279 --> 00:26:23,200 and how it solves a problem, then you're 707 00:26:23,200 --> 00:26:24,799 going to have no chance convincing your 708 00:26:24,799 --> 00:26:26,960 audience that it works and solves a 709 00:26:26,960 --> 00:26:28,880 problem either. 710 00:26:28,880 --> 00:26:32,000 All right, quick summary. I think it's a 711 00:26:32,000 --> 00:26:35,039 privilege to be asked to show off the 712 00:26:35,039 --> 00:26:36,559 feature that a bunch of other people 713 00:26:36,559 --> 00:26:39,279 have worked on. Um, I've showed I've 714 00:26:39,279 --> 00:26:41,120 been like the first person on stage to 715 00:26:41,120 --> 00:26:42,880 show some features that GitHub's created 716 00:26:42,880 --> 00:26:45,840 that are like at the time groundbreaking 717 00:26:45,840 --> 00:26:47,279 and it feels like you're taking the 718 00:26:47,279 --> 00:26:49,520 credit for a lot of other people's work. 719 00:26:49,520 --> 00:26:50,960 So, you should try and do it as much 720 00:26:50,960 --> 00:26:53,360 justice as you possibly could as as you 721 00:26:53,360 --> 00:26:55,840 possibly can. at the same time being 722 00:26:55,840 --> 00:26:58,080 able to stay authentic and true to what 723 00:26:58,080 --> 00:26:59,679 the product can do and what it is good 724 00:26:59,679 --> 00:27:03,679 at and balancing um showing it in the 725 00:27:03,679 --> 00:27:06,559 best light but also being totally honest 726 00:27:06,559 --> 00:27:09,520 and authentic and trustworthy when you 727 00:27:09,520 --> 00:27:11,120 do demonstrate it I think is the most 728 00:27:11,120 --> 00:27:13,840 important thing. All right, I think I 729 00:27:13,840 --> 00:27:15,440 actually finished maybe in time for a 730 00:27:15,440 --> 00:27:17,919 couple of questions. Um but thank you. 731 00:27:17,919 --> 00:27:20,080 This is demo visa is how you can find me 732 00:27:20,080 --> 00:27:21,840 everywhere. Uh it looks like a Twitter 733 00:27:21,840 --> 00:27:24,480 handle but not there much um everywhere 734 00:27:24,480 --> 00:27:25,520 else. But thank you very much for 735 00:27:25,520 --> 00:27:27,520 listening. [applause] 736 00:27:27,520 --> 00:27:30,240 Um I think we have time for one or two 737 00:27:30,240 --> 00:27:34,240 questions. So 738 00:27:34,240 --> 00:27:35,679 make me run. 739 00:27:35,679 --> 00:27:39,200 Just choked on water. Speak. [laughter] 740 00:27:39,200 --> 00:27:41,760 Um thank you for your presentation. I 741 00:27:41,760 --> 00:27:44,000 was wondering um I agree about being 742 00:27:44,000 --> 00:27:47,120 authentic in presenting things that are 743 00:27:47,120 --> 00:27:49,039 true, but when you're saying don't 744 00:27:49,039 --> 00:27:52,320 present the bugs, how do you not present 745 00:27:52,320 --> 00:27:54,320 them, but still be authentic? 746 00:27:54,320 --> 00:27:56,080 Yeah, there's a there's a balance there. 747 00:27:56,080 --> 00:27:57,600 Um 748 00:27:57,600 --> 00:28:01,360 excuse me. Um lying by a mission is 749 00:28:01,360 --> 00:28:04,640 still kind of lying, I think. Um but 750 00:28:04,640 --> 00:28:06,720 just because you're asked to show a 751 00:28:06,720 --> 00:28:07,840 product doesn't mean you have to show 752 00:28:07,840 --> 00:28:10,399 all of the product, right? We [snorts] 753 00:28:10,399 --> 00:28:12,080 we tend to, especially if we're limited 754 00:28:12,080 --> 00:28:14,399 in time, we tend to show the happy path. 755 00:28:14,399 --> 00:28:15,840 And I don't think there's anything wrong 756 00:28:15,840 --> 00:28:17,919 with showing the happy path as long as 757 00:28:17,919 --> 00:28:19,600 the happy path isn't misleading 758 00:28:19,600 --> 00:28:22,080 customers into what it can and can't do. 759 00:28:22,080 --> 00:28:24,000 Um, 760 00:28:24,000 --> 00:28:25,520 I mean, that's kind of a short version 761 00:28:25,520 --> 00:28:27,520 of the answer, but I think a lot of this 762 00:28:27,520 --> 00:28:29,679 as well is up to your own morality. I 763 00:28:29,679 --> 00:28:31,440 wouldn't expect that you would keep your 764 00:28:31,440 --> 00:28:33,120 job for very long if you got up on stage 765 00:28:33,120 --> 00:28:34,640 and said, "I'm going to show you this 766 00:28:34,640 --> 00:28:36,720 product first. here's a bunch of bugs 767 00:28:36,720 --> 00:28:38,240 that it has at the moment and things 768 00:28:38,240 --> 00:28:40,799 that go wrong. You can maybe dodge them 769 00:28:40,799 --> 00:28:42,559 for the moment, but part of the job of a 770 00:28:42,559 --> 00:28:44,159 devril as well is to come back to the 771 00:28:44,159 --> 00:28:46,159 product team and say these things don't 772 00:28:46,159 --> 00:28:47,679 work. These are causing friction with 773 00:28:47,679 --> 00:28:49,840 the customers as well. So in terms of a 774 00:28:49,840 --> 00:28:52,240 demo, putting it in its best light, 775 00:28:52,240 --> 00:28:54,960 maybe aiming towards the happy path, but 776 00:28:54,960 --> 00:28:56,799 being aware that maybe there are bugs 777 00:28:56,799 --> 00:28:59,600 that that crop up and if they do on 778 00:28:59,600 --> 00:29:03,600 stage, you can talk through them. Um, AI 779 00:29:03,600 --> 00:29:05,520 dev tools are really good at that cuz 780 00:29:05,520 --> 00:29:06,960 you ask it to do something and it gets 781 00:29:06,960 --> 00:29:09,279 it wrong. If you can explain why it got 782 00:29:09,279 --> 00:29:11,679 that wrong and what to do about it when 783 00:29:11,679 --> 00:29:13,919 it does get that wrong, it can still be 784 00:29:13,919 --> 00:29:15,840 a win. You know, the audience is like, 785 00:29:15,840 --> 00:29:17,840 "Oh, I understand these tools now." 786 00:29:17,840 --> 00:29:20,960 Yeah. Tricky one though. Yeah, it is. 787 00:29:20,960 --> 00:29:24,000 One more quick question if anyone Oh 788 00:29:24,000 --> 00:29:25,840 gosh, I'll run this [laughter] way. 789 00:29:25,840 --> 00:29:28,080 You can ask at the same time. [snorts] 790 00:29:28,080 --> 00:29:30,480 Nope. 791 00:29:30,480 --> 00:29:33,039 Um, when you do have important people 792 00:29:33,039 --> 00:29:34,799 breathing down your neck, like you said, 793 00:29:34,799 --> 00:29:36,559 and you say no because they've asked for 794 00:29:36,559 --> 00:29:38,720 a last minute change and you're you 795 00:29:38,720 --> 00:29:40,159 don't think it's going to go well, how 796 00:29:40,159 --> 00:29:42,000 do you deal with their reaction? Cuz I 797 00:29:42,000 --> 00:29:44,559 would be jumping on seek as well cuz 798 00:29:44,559 --> 00:29:47,120 Yeah. And that depends on the culture of 799 00:29:47,120 --> 00:29:50,159 the place you're at, honestly. Um, I I 800 00:29:50,159 --> 00:29:52,240 mentioned the Scott Guthrie thing where 801 00:29:52,240 --> 00:29:53,600 he said, "Oh, actually, we're going to 802 00:29:53,600 --> 00:29:55,679 do a video instead." I've been in a room 803 00:29:55,679 --> 00:29:57,520 as well with him. he's fairly high up in 804 00:29:57,520 --> 00:29:59,200 Microsoft and so being in a room with 805 00:29:59,200 --> 00:30:01,679 him if he asks you to do something the 806 00:30:01,679 --> 00:30:03,360 natural response from everybody in the 807 00:30:03,360 --> 00:30:05,120 room is like yes absolutely I'll do 808 00:30:05,120 --> 00:30:08,080 that. Um he I'm lucky in that he is 809 00:30:08,080 --> 00:30:10,399 somebody who if you say no and this is 810 00:30:10,399 --> 00:30:12,559 why I don't think we can do that. He 811 00:30:12,559 --> 00:30:15,120 will listen to you and he respects that 812 00:30:15,120 --> 00:30:17,440 point of view. Not everybody is like 813 00:30:17,440 --> 00:30:20,159 that. Um, sometimes you have to say no 814 00:30:20,159 --> 00:30:22,240 and they say, "Okay, I appreciate you 815 00:30:22,240 --> 00:30:24,159 said no, but still do it though." And 816 00:30:24,159 --> 00:30:26,799 then you still have to like just do the 817 00:30:26,799 --> 00:30:30,000 best you can. Um, it's a tricky one. I 818 00:30:30,000 --> 00:30:31,520 push back a lot more these days because 819 00:30:31,520 --> 00:30:34,240 I've been doing it for a while and to 820 00:30:34,240 --> 00:30:36,960 some extent I don't care. So if somebody 821 00:30:36,960 --> 00:30:39,039 says, "Sorry, you're going to do it 822 00:30:39,039 --> 00:30:41,120 anyway." I'm like, "All right, well note 823 00:30:41,120 --> 00:30:43,200 that I thought it was a terrible idea." 824 00:30:43,200 --> 00:30:45,840 Um, but yeah, it is a really hard thing. 825 00:30:45,840 --> 00:30:49,200 Um yeah, your your psychological safety 826 00:30:49,200 --> 00:30:51,919 and your um career safety is also 827 00:30:51,919 --> 00:30:53,840 paramount. So you got to balance those 828 00:30:53,840 --> 00:30:55,279 things, I think. Yeah. 829 00:30:55,279 --> 00:30:56,640 Well, thank you very much. 830 00:30:56,640 --> 00:30:59,120 Yeah, thanks everyone. 831 00:30:59,120 --> 00:31:01,600 Here's a token of our appreciation. It's 832 00:31:01,600 --> 00:31:05,159 a Bon mug.