1 00:00:05,239 --> 00:00:07,259 [music] 2 00:00:09,825 --> 00:00:11,845 [music] 3 00:00:15,440 --> 00:00:17,920 Please welcome today's uh keynote 4 00:00:17,920 --> 00:00:20,960 speaker, Justin Warren. [applause] 5 00:00:20,960 --> 00:00:22,980 [music] 6 00:00:25,545 --> 00:00:27,565 [music] 7 00:00:28,820 --> 00:00:30,640 [applause] 8 00:00:30,640 --> 00:00:34,199 Good morning, Pyon. 9 00:00:34,320 --> 00:00:35,600 Sorry, I should say that louder. Good 10 00:00:35,600 --> 00:00:37,280 morning, Pon. 11 00:00:37,280 --> 00:00:38,480 Hey, how are we all feeling this 12 00:00:38,480 --> 00:00:39,760 morning? Anyone feeling a bit dusty 13 00:00:39,760 --> 00:00:41,680 after last night? Did we uh Yeah, we got 14 00:00:41,680 --> 00:00:44,399 one. All right, try to pitch the energy 15 00:00:44,399 --> 00:00:46,000 to the to the room. I've actually only 16 00:00:46,000 --> 00:00:48,000 just figured out how this clicker thing 17 00:00:48,000 --> 00:00:50,640 works. I've had it for like 10 years, 15 18 00:00:50,640 --> 00:00:53,440 years, and uh I only just worked out how 19 00:00:53,440 --> 00:00:56,079 the time thing works. Uh anyone who has 20 00:00:56,079 --> 00:00:58,239 ever programmed anything to do with time 21 00:00:58,239 --> 00:01:01,600 will understand why that's complicated. 22 00:01:01,600 --> 00:01:05,500 Uh now, will this work? Yes. 23 00:01:05,500 --> 00:01:07,520 [sighs] 24 00:01:07,840 --> 00:01:10,560 AV software on Linux. Amazing. It works 25 00:01:10,560 --> 00:01:13,760 well now. It's great. So, this talk is 26 00:01:13,760 --> 00:01:16,400 about the care of software. Uh, this 27 00:01:16,400 --> 00:01:18,799 came about because I have a new favorite 28 00:01:18,799 --> 00:01:20,960 book that I'm going to tell you about uh 29 00:01:20,960 --> 00:01:23,119 later. Uh, the structure of my talk 30 00:01:23,119 --> 00:01:24,560 means that it's probably too late. I'll 31 00:01:24,560 --> 00:01:26,479 try not to run long, but we'll see how 32 00:01:26,479 --> 00:01:29,040 we go. Uh, for those who don't know me, 33 00:01:29,040 --> 00:01:30,720 which is probably most of you, uh, my 34 00:01:30,720 --> 00:01:32,400 name is Justin Warren. I'm the principal 35 00:01:32,400 --> 00:01:34,400 consultant and kind of founder for a 36 00:01:34,400 --> 00:01:36,159 little boutique uh, consulting firm 37 00:01:36,159 --> 00:01:39,280 called Pivot 9. Uh in the words of the 38 00:01:39,280 --> 00:01:42,799 uh sadly departed Dolly Parton, my goal 39 00:01:42,799 --> 00:01:45,040 recently has been to try to find out who 40 00:01:45,040 --> 00:01:48,560 you are and do it on purpose. Uh and I 41 00:01:48,560 --> 00:01:51,840 have decided that my who I really am is 42 00:01:51,840 --> 00:01:54,240 I'm a Linux systems administrator or a 43 00:01:54,240 --> 00:01:57,040 Unix CIS admin. Uh it's that's really 44 00:01:57,040 --> 00:01:58,799 where I live. It's where I started my 45 00:01:58,799 --> 00:02:01,840 career. I like to look after things. Um 46 00:02:01,840 --> 00:02:03,520 it used to be called CISOPS and then for 47 00:02:03,520 --> 00:02:05,439 a while it was CISAD. and then we called 48 00:02:05,439 --> 00:02:06,799 it DevOps for a bit and I think it's 49 00:02:06,799 --> 00:02:09,200 platform engineering now. Uh I'm not 50 00:02:09,200 --> 00:02:11,280 sure which term we'll use soon but 51 00:02:11,280 --> 00:02:14,000 that's that's where I live. Uh I 52 00:02:14,000 --> 00:02:16,239 maintain a few tiny projects. Most of 53 00:02:16,239 --> 00:02:17,760 you statistically would never have heard 54 00:02:17,760 --> 00:02:20,400 of them which is fine and I make small 55 00:02:20,400 --> 00:02:23,040 contributions to other things by which 56 00:02:23,040 --> 00:02:25,440 to say I am one of you. I have been 57 00:02:25,440 --> 00:02:27,680 doing open source for a long time. It's 58 00:02:27,680 --> 00:02:29,599 it's what I like. It's what I like 59 00:02:29,599 --> 00:02:31,920 doing. [snorts] Now for this talk I had 60 00:02:31,920 --> 00:02:34,400 to try to figure out what to tell you. 61 00:02:34,400 --> 00:02:36,400 Ah, so 62 00:02:36,400 --> 00:02:40,400 where to begin? It's tricky. I have so 63 00:02:40,400 --> 00:02:43,440 much that I want to tell you. But before 64 00:02:43,440 --> 00:02:46,480 we get into all of that, I want to warn 65 00:02:46,480 --> 00:02:48,480 you that this this talk, as you may have 66 00:02:48,480 --> 00:02:50,160 guessed, has some ethics bits in it. 67 00:02:50,160 --> 00:02:52,720 There will be discussions of politics. 68 00:02:52,720 --> 00:02:54,800 Anyone who doesn't uh feel comfortable 69 00:02:54,800 --> 00:02:57,280 with the idea that technology systems uh 70 00:02:57,280 --> 00:02:59,280 involves politics and ethics should read 71 00:02:59,280 --> 00:03:01,599 this book. That link, I promise, takes 72 00:03:01,599 --> 00:03:03,840 you to the book. Uh it's called the 73 00:03:03,840 --> 00:03:05,200 social construction of technological 74 00:03:05,200 --> 00:03:06,720 systems. This is not my new favorite 75 00:03:06,720 --> 00:03:08,080 book by the way. This is a different 76 00:03:08,080 --> 00:03:10,607 book. This is an introductory book. 77 00:03:10,607 --> 00:03:11,840 [snorts] Uh I really recommend this 78 00:03:11,840 --> 00:03:14,640 book. Uh but it if you are don't do not 79 00:03:14,640 --> 00:03:17,519 already believe that you can uh that you 80 00:03:17,519 --> 00:03:19,760 can't avoid politics and ethics when 81 00:03:19,760 --> 00:03:21,680 you're dealing with technology, do read 82 00:03:21,680 --> 00:03:23,200 this book. Hopefully it will change your 83 00:03:23,200 --> 00:03:27,280 mind. Uh maybe this talk will. 84 00:03:27,280 --> 00:03:30,560 I used to frame my talks using this sort 85 00:03:30,560 --> 00:03:33,120 of thing more recently but uh I decided 86 00:03:33,120 --> 00:03:34,640 that I need something stronger than 87 00:03:34,640 --> 00:03:36,959 this. 88 00:03:36,959 --> 00:03:38,560 I believe that the maintenance of 89 00:03:38,560 --> 00:03:41,920 software ecosystems by groups of people 90 00:03:41,920 --> 00:03:44,319 is more important than the creation of 91 00:03:44,319 --> 00:03:47,599 software artifacts by individuals or 92 00:03:47,599 --> 00:03:49,200 computers. 93 00:03:49,200 --> 00:03:52,640 And I would like to try to explain why. 94 00:03:52,640 --> 00:03:55,440 Before I do that, quick show of hands. 95 00:03:55,440 --> 00:03:57,920 Uh, who has been doing Very good, sir. 96 00:03:57,920 --> 00:04:00,400 Uh, who has been doing open source? 97 00:04:00,400 --> 00:04:01,920 Interpret that as broadly as you like. 98 00:04:01,920 --> 00:04:03,680 Free and open source software. Who's 99 00:04:03,680 --> 00:04:05,920 been doing it for more than one year? 100 00:04:05,920 --> 00:04:08,560 Put your hand up. Yep. Awesome. Uh, keep 101 00:04:08,560 --> 00:04:10,080 your hand up if you've been doing it for 102 00:04:10,080 --> 00:04:12,560 more than 2 years, 103 00:04:12,560 --> 00:04:15,439 5 years, 104 00:04:15,439 --> 00:04:17,280 10 years. 105 00:04:17,280 --> 00:04:19,600 Okay, let's stop there. Uh, 5 years or 106 00:04:19,600 --> 00:04:23,040 more. Hands back up. Keep your hand in 107 00:04:23,040 --> 00:04:26,560 the air. if it is as much fun doing it 108 00:04:26,560 --> 00:04:30,320 now as it was 5 years ago. 109 00:04:30,320 --> 00:04:36,000 Interesting. Yeah. Let's talk about why. 110 00:04:36,000 --> 00:04:38,720 Because computers 111 00:04:38,720 --> 00:04:42,000 kind of suck now. 112 00:04:42,000 --> 00:04:44,880 It's not as great. I remember when we 113 00:04:44,880 --> 00:04:46,639 used to have to fight to get our 114 00:04:46,639 --> 00:04:48,560 computers to connect to the internet and 115 00:04:48,560 --> 00:04:51,600 they would scream at us when we did it. 116 00:04:51,600 --> 00:04:55,680 Now I have a what are they called? I 117 00:04:55,680 --> 00:05:00,720 have a bench oven um that has Wi-Fi. 118 00:05:00,720 --> 00:05:03,978 Why [laughter] 119 00:05:05,520 --> 00:05:09,120 everything is broken? [laughter] 120 00:05:09,120 --> 00:05:11,039 Cyber security. Anyone uh involved in 121 00:05:11,039 --> 00:05:12,639 the cyber security function as part of 122 00:05:12,639 --> 00:05:15,360 their role? Yeah. How fun is that at the 123 00:05:15,360 --> 00:05:16,400 moment? [laughter] 124 00:05:16,400 --> 00:05:18,639 Yeah. Three words uh well three letters 125 00:05:18,639 --> 00:05:22,240 really. NPM. Awesome. 126 00:05:22,240 --> 00:05:25,199 Because we take security seriously. 127 00:05:25,199 --> 00:05:27,360 It's great. Every second day, my data 128 00:05:27,360 --> 00:05:29,280 that I gave to someone else and I didn't 129 00:05:29,280 --> 00:05:32,743 have a choice is in a data breach. Fun. 130 00:05:32,743 --> 00:05:33,360 [snorts] 131 00:05:33,360 --> 00:05:34,960 But we've solved everything because now 132 00:05:34,960 --> 00:05:39,039 we have blockchain. Uh I mean AI. 133 00:05:39,039 --> 00:05:40,479 Yeah. And as you heard from Cam 134 00:05:40,479 --> 00:05:43,199 yesterday, people don't like it. People 135 00:05:43,199 --> 00:05:45,039 are fed up with the tech industry. I'm 136 00:05:45,039 --> 00:05:46,560 fed up with the tech industry. It's not 137 00:05:46,560 --> 00:05:49,280 as much fun. 138 00:05:49,280 --> 00:05:51,680 Lots of people are making money. Well, 139 00:05:51,680 --> 00:05:54,560 some people are making money out of it. 140 00:05:54,560 --> 00:05:56,240 Previous version of this diagram that I 141 00:05:56,240 --> 00:05:58,000 was showing people had a bigger bump at 142 00:05:58,000 --> 00:06:00,800 consumers, but even for them, the line 143 00:06:00,800 --> 00:06:02,720 has gone down. And you'll notice where 144 00:06:02,720 --> 00:06:04,080 maintainers and contributors are 145 00:06:04,080 --> 00:06:06,479 sitting. 146 00:06:06,479 --> 00:06:08,880 The costbenefit allocation kind of looks 147 00:06:08,880 --> 00:06:10,800 a bit like this, or at least it used to. 148 00:06:10,800 --> 00:06:12,880 This is how I felt about it. Um, as a 149 00:06:12,880 --> 00:06:14,960 hobbyist and and kind of contributor 150 00:06:14,960 --> 00:06:17,120 mostly. As a consumer, it's great. My 151 00:06:17,120 --> 00:06:18,639 laptop is full of free and open source 152 00:06:18,639 --> 00:06:21,680 software. It works really well. Uh I can 153 00:06:21,680 --> 00:06:22,960 do a lot of things and it doesn't 154 00:06:22,960 --> 00:06:25,360 actually cost me a lot of money, but 155 00:06:25,360 --> 00:06:27,360 it's not as good as it used to be. The 156 00:06:27,360 --> 00:06:30,400 deal has changed. 157 00:06:30,400 --> 00:06:33,440 It feels like a worse tradeoff. And 158 00:06:33,440 --> 00:06:34,880 there's a lot going on there. And I 159 00:06:34,880 --> 00:06:36,319 would like to talk about what we can do 160 00:06:36,319 --> 00:06:39,199 about that because the purpose of a 161 00:06:39,199 --> 00:06:41,680 system is what it does. 162 00:06:41,680 --> 00:06:44,479 And people don't like what this system 163 00:06:44,479 --> 00:06:47,440 does anymore. People within the industry 164 00:06:47,440 --> 00:06:49,520 don't like the system. People outside 165 00:06:49,520 --> 00:06:51,919 the industry really don't like the 166 00:06:51,919 --> 00:06:55,120 system. But if we want the system to do 167 00:06:55,120 --> 00:06:58,479 something differently, we have to change 168 00:06:58,479 --> 00:07:02,240 the system. So how might we do that? And 169 00:07:02,240 --> 00:07:04,720 this is something which I think we have 170 00:07:04,720 --> 00:07:06,560 a chance to do. The thing about systems 171 00:07:06,560 --> 00:07:09,360 is stable systems resist change. That's 172 00:07:09,360 --> 00:07:12,000 what stable means. 173 00:07:12,000 --> 00:07:13,759 But they're not as stable as they used 174 00:07:13,759 --> 00:07:15,840 to be. Now, that's an opportunity. That 175 00:07:15,840 --> 00:07:18,319 means that they're easier to change. But 176 00:07:18,319 --> 00:07:21,039 not all change is good, which is where 177 00:07:21,039 --> 00:07:23,520 ethics comes into it because ethics is 178 00:07:23,520 --> 00:07:27,120 really about figuring out is this good? 179 00:07:27,120 --> 00:07:30,240 Good for who? And how do we figure out 180 00:07:30,240 --> 00:07:32,880 the answer to that question? Now, one of 181 00:07:32,880 --> 00:07:35,039 the ways that we can do that is using 182 00:07:35,039 --> 00:07:36,639 the work of one of my favorite people, 183 00:07:36,639 --> 00:07:39,759 Ellen Ostram, uh the Nobel Prize winner. 184 00:07:39,759 --> 00:07:42,479 Well, the economics Nobel, speaking of 185 00:07:42,479 --> 00:07:45,039 politics, is the Nobel Prize in 186 00:07:45,039 --> 00:07:48,960 economics a real Nobel Prize. 187 00:07:48,960 --> 00:07:50,400 Many of the people who won it would 188 00:07:50,400 --> 00:07:52,319 agree with you that it isn't. But 189 00:07:52,319 --> 00:07:54,080 whether it is or not is a political 190 00:07:54,080 --> 00:07:56,319 question. In fact, the existence of the 191 00:07:56,319 --> 00:07:59,039 award is a political maneuver by 192 00:07:59,039 --> 00:08:00,639 particular people at a particular place 193 00:08:00,639 --> 00:08:02,960 in time. But I don't want that to 194 00:08:02,960 --> 00:08:04,800 detract from the work of Ellena, which I 195 00:08:04,800 --> 00:08:06,479 think stands whether or not she won it 196 00:08:06,479 --> 00:08:08,400 because the neocclassicists liked her 197 00:08:08,400 --> 00:08:12,240 work or not. But she looked at various 198 00:08:12,240 --> 00:08:14,479 systems. Her specialtity was a thing 199 00:08:14,479 --> 00:08:17,120 called common pool resources. 200 00:08:17,120 --> 00:08:19,280 Now economists 201 00:08:19,280 --> 00:08:21,120 um believe that there are four types of 202 00:08:21,120 --> 00:08:23,120 goods. Actually they originally believed 203 00:08:23,120 --> 00:08:25,199 that there are only two types of goods. 204 00:08:25,199 --> 00:08:27,120 But it turns out that management 205 00:08:27,120 --> 00:08:29,280 consultants and people with MBAs uh 206 00:08:29,280 --> 00:08:31,280 can't do a presentation without a 2x2 207 00:08:31,280 --> 00:08:34,560 matrix in it. Uh so the economists went 208 00:08:34,560 --> 00:08:36,800 and had another look and uh wouldn't you 209 00:08:36,800 --> 00:08:38,560 know it Dedri Chambers what a 210 00:08:38,560 --> 00:08:40,159 coincidence they found another two 211 00:08:40,159 --> 00:08:42,880 goods. Uh so now we have four types of 212 00:08:42,880 --> 00:08:45,200 goods. Question for you. Shout out if 213 00:08:45,200 --> 00:08:47,440 you know the answer. 214 00:08:47,440 --> 00:08:52,040 What type of good is software? 215 00:08:53,040 --> 00:08:56,240 Correct. All of the above. 216 00:08:56,240 --> 00:08:59,279 But they're different sorts. And I'm 217 00:08:59,279 --> 00:09:01,279 going to put the uh two pictures side by 218 00:09:01,279 --> 00:09:03,279 side this time so that we can talk about 219 00:09:03,279 --> 00:09:05,839 it. I'm going to ignore the bottom two 220 00:09:05,839 --> 00:09:05,920 qu qu qu qu qu qu qu qu qu qu qu qu qu 221 00:09:05,920 --> 00:09:06,480 qu qu qu qu qu qu qu quadrants not 222 00:09:06,480 --> 00:09:07,680 because they're not important but just I 223 00:09:07,680 --> 00:09:08,800 don't want to talk about them in this 224 00:09:08,800 --> 00:09:11,279 talk and this talk is not a democracy. 225 00:09:11,279 --> 00:09:15,600 Uh so we have for a long time 226 00:09:15,600 --> 00:09:17,279 been pushing the idea that free and open 227 00:09:17,279 --> 00:09:19,680 source software is a public good. I 228 00:09:19,680 --> 00:09:23,040 think that's wrong or not really correct 229 00:09:23,040 --> 00:09:25,760 enough is probably more accurate. Some 230 00:09:25,760 --> 00:09:27,519 kinds of software yes I would say that 231 00:09:27,519 --> 00:09:28,800 yeah it's a public good. something like 232 00:09:28,800 --> 00:09:31,279 Eliza, which weirdly enough was 233 00:09:31,279 --> 00:09:33,040 published before copyright and software 234 00:09:33,040 --> 00:09:35,279 was even a thing, 235 00:09:35,279 --> 00:09:38,160 but it doesn't really change. It's more 236 00:09:38,160 --> 00:09:41,279 of an artifact. It's more of historical 237 00:09:41,279 --> 00:09:43,279 interest or research interest. It's more 238 00:09:43,279 --> 00:09:46,160 like information and information is a 239 00:09:46,160 --> 00:09:47,920 public good because one of the main 240 00:09:47,920 --> 00:09:49,440 defining characteristics of a public 241 00:09:49,440 --> 00:09:50,880 good, as you can see on the axis, 242 00:09:50,880 --> 00:09:53,200 hopefully we can read it from there, uh, 243 00:09:53,200 --> 00:09:55,360 is how hard is it to stop people using 244 00:09:55,360 --> 00:09:57,040 this thing? 245 00:09:57,040 --> 00:09:59,120 That's kind of the point of free and 246 00:09:59,120 --> 00:10:01,360 open source. That was the idea. We 247 00:10:01,360 --> 00:10:03,360 wanted people to be able to use it for 248 00:10:03,360 --> 00:10:06,320 free. The word free software, which 249 00:10:06,320 --> 00:10:09,040 again was a political question, was an 250 00:10:09,040 --> 00:10:11,440 ethical question. We thought we don't 251 00:10:11,440 --> 00:10:13,120 want to restrict people from being able 252 00:10:13,120 --> 00:10:15,680 to use this stuff. But being able to use 253 00:10:15,680 --> 00:10:17,200 it, being able to consume it is very 254 00:10:17,200 --> 00:10:19,279 different from how you produce it or how 255 00:10:19,279 --> 00:10:23,600 you look after it. How is it maintained? 256 00:10:23,600 --> 00:10:25,200 And that's where I think that free and 257 00:10:25,200 --> 00:10:27,839 open- source software really the 258 00:10:27,839 --> 00:10:30,079 ecosystems 259 00:10:30,079 --> 00:10:33,279 the projects the maintenance of those 260 00:10:33,279 --> 00:10:36,880 software ecosystems and projects sits up 261 00:10:36,880 --> 00:10:39,279 here in common pool resources. I think 262 00:10:39,279 --> 00:10:41,200 it's a lot more like forestry or 263 00:10:41,200 --> 00:10:45,519 fisheries. You can make them worse. 264 00:10:45,519 --> 00:10:48,160 Your participation in a project can 265 00:10:48,160 --> 00:10:50,480 damage the project. Having the wrong 266 00:10:50,480 --> 00:10:52,560 people involved in that project can make 267 00:10:52,560 --> 00:10:56,720 it worse. It can die. 268 00:10:56,720 --> 00:10:58,320 It can be stripped of all of its 269 00:10:58,320 --> 00:11:01,040 resources and go away like other common 270 00:11:01,040 --> 00:11:04,079 pool resources. Now that's useful if we 271 00:11:04,079 --> 00:11:05,760 recognize that because now Eleanor 272 00:11:05,760 --> 00:11:07,680 Astramm's work, she's already done it 273 00:11:07,680 --> 00:11:10,079 all for us years ago. We can just read 274 00:11:10,079 --> 00:11:11,519 it in a book. We don't have to discover 275 00:11:11,519 --> 00:11:14,079 it from first principles. That's great. 276 00:11:14,079 --> 00:11:16,640 So she identified uh and this is from 277 00:11:16,640 --> 00:11:19,120 one of her papers that there are about 278 00:11:19,120 --> 00:11:23,279 eight design principles. So a project 279 00:11:23,279 --> 00:11:27,279 will be successful well sustainable. It 280 00:11:27,279 --> 00:11:29,360 will continue to exist or it's more 281 00:11:29,360 --> 00:11:31,200 likely I have to get this right. It's a 282 00:11:31,200 --> 00:11:34,079 bit technical. A project is more likely 283 00:11:34,079 --> 00:11:37,839 to continue to exist if it exhibits most 284 00:11:37,839 --> 00:11:40,720 of these characteristics. So the more of 285 00:11:40,720 --> 00:11:42,399 these things you design into your 286 00:11:42,399 --> 00:11:45,120 system, the better the chance that your 287 00:11:45,120 --> 00:11:47,360 project or system will continue to exist 288 00:11:47,360 --> 00:11:49,040 into the future. It will be sustainable 289 00:11:49,040 --> 00:11:51,360 as a common pool resource. I'm not going 290 00:11:51,360 --> 00:11:52,720 to go through them in too much detail, 291 00:11:52,720 --> 00:11:54,560 but I do want to touch on them and 292 00:11:54,560 --> 00:11:56,480 compare and contrast to how we've been 293 00:11:56,480 --> 00:11:58,399 doing with free and open-source 294 00:11:58,399 --> 00:12:00,079 software. 295 00:12:00,079 --> 00:12:04,680 Now the first one is about boundaries. 296 00:12:06,399 --> 00:12:08,639 Who is we? 297 00:12:08,639 --> 00:12:11,519 What is the project? What are its edges? 298 00:12:11,519 --> 00:12:14,480 This was a lot easier to answer 10, 20, 299 00:12:14,480 --> 00:12:16,480 30 years ago, 300 00:12:16,480 --> 00:12:19,839 but now does your project include the 301 00:12:19,839 --> 00:12:22,320 test framework that you've chosen, the 302 00:12:22,320 --> 00:12:26,399 set of libraries, the well supply chain. 303 00:12:26,399 --> 00:12:28,320 It's not really a supply chain within 304 00:12:28,320 --> 00:12:30,079 open source software. It's more like, 305 00:12:30,079 --> 00:12:32,079 well, you picked up some roadkill from 306 00:12:32,079 --> 00:12:34,079 the side of the information superighway 307 00:12:34,079 --> 00:12:37,040 and shoved it into your product, 308 00:12:37,040 --> 00:12:38,800 but we can call it a supply chain if you 309 00:12:38,800 --> 00:12:41,040 like. So, if I decide to change a 310 00:12:41,040 --> 00:12:42,720 library, 311 00:12:42,720 --> 00:12:45,680 is that part of my project or not? 312 00:12:45,680 --> 00:12:48,399 Where do we draw the lines? 313 00:12:48,399 --> 00:12:50,320 Who is allowed to participate in our 314 00:12:50,320 --> 00:12:51,839 project? 315 00:12:51,839 --> 00:12:56,079 Who can contribute? Who can't? Why? 316 00:12:56,079 --> 00:12:58,720 These are often ethical questions. Is it 317 00:12:58,720 --> 00:13:00,800 right to exclude someone from our 318 00:13:00,800 --> 00:13:03,760 project and on what grounds? 319 00:13:03,760 --> 00:13:06,480 How do we do that? I don't know that 320 00:13:06,480 --> 00:13:08,079 we've considered those questions enough, 321 00:13:08,079 --> 00:13:09,519 but we're certainly starting to think 322 00:13:09,519 --> 00:13:13,639 about them a lot right now. 323 00:13:14,320 --> 00:13:16,320 Are the costs and benefit allocations 324 00:13:16,320 --> 00:13:17,839 fair? 325 00:13:17,839 --> 00:13:19,839 Is it okay that people continue to use 326 00:13:19,839 --> 00:13:21,360 this software for free without giving 327 00:13:21,360 --> 00:13:24,079 anything back, without contributing? How 328 00:13:24,079 --> 00:13:28,240 much contribution is enough? 329 00:13:28,240 --> 00:13:31,440 What happens if you change the license? 330 00:13:31,440 --> 00:13:33,360 Is it okay to change the license because 331 00:13:33,360 --> 00:13:35,360 you're unhappy with the benefit and cost 332 00:13:35,360 --> 00:13:37,440 allocation? 333 00:13:37,440 --> 00:13:40,000 Is it ethical to convert a license from 334 00:13:40,000 --> 00:13:43,600 say uh Apache 2 to the business source 335 00:13:43,600 --> 00:13:46,959 license? Is it okay? 336 00:13:46,959 --> 00:13:49,040 Is it not? How do we decide? That's an 337 00:13:49,040 --> 00:13:52,440 ethical question. 338 00:13:53,920 --> 00:13:56,160 Austramm says that collective choice is 339 00:13:56,160 --> 00:13:58,079 a good thing to have in your project. 340 00:13:58,079 --> 00:14:00,480 Uh, American tech companies in 341 00:14:00,480 --> 00:14:01,519 particular love to talk about 342 00:14:01,519 --> 00:14:04,720 democratization. Weirdly, we don't seem 343 00:14:04,720 --> 00:14:07,519 to be able to vote. 344 00:14:07,519 --> 00:14:10,320 Free and open- source projects tend not 345 00:14:10,320 --> 00:14:12,160 to be democracies. 346 00:14:12,160 --> 00:14:14,480 Same as corporations. Even not for-p 347 00:14:14,480 --> 00:14:16,959 profofit foundations don't tend to be 348 00:14:16,959 --> 00:14:19,360 democracies. How how many times do you 349 00:14:19,360 --> 00:14:21,040 get to vote on whether we will change 350 00:14:21,040 --> 00:14:24,720 the license or not? Who's in charge? 351 00:14:24,720 --> 00:14:27,360 Why are they in charge? [snorts] Does it 352 00:14:27,360 --> 00:14:29,760 matter? Is it a thing that we should 353 00:14:29,760 --> 00:14:31,519 have? Austin would say that we should 354 00:14:31,519 --> 00:14:32,880 have more collective choice, but who 355 00:14:32,880 --> 00:14:34,639 gets to be in that group that makes the 356 00:14:34,639 --> 00:14:37,600 collective choice? 357 00:14:37,600 --> 00:14:39,680 Austin recommends monitoring. And I 358 00:14:39,680 --> 00:14:41,199 specifically say monitoring, not 359 00:14:41,199 --> 00:14:43,760 surveillance. Surveillance is a thing 360 00:14:43,760 --> 00:14:46,399 that is done from afar by an authority 361 00:14:46,399 --> 00:14:48,079 looking down at people and checking on 362 00:14:48,079 --> 00:14:49,839 what they're doing. Austrian sense of 363 00:14:49,839 --> 00:14:51,680 monitoring is more about us checking in 364 00:14:51,680 --> 00:14:54,720 with each other. How are we doing? 365 00:14:54,720 --> 00:14:56,639 What's the health of this ecosystem 366 00:14:56,639 --> 00:14:58,480 like? Is the project healthy? Is it 367 00:14:58,480 --> 00:15:00,800 achieving its goals? 368 00:15:00,800 --> 00:15:03,199 How would we know? 369 00:15:03,199 --> 00:15:04,959 Can we check on each other to see if 370 00:15:04,959 --> 00:15:07,440 we're following the rules that we set up 371 00:15:07,440 --> 00:15:10,079 for our little community? Like that we 372 00:15:10,079 --> 00:15:12,079 don't do that here. Well, who is we and 373 00:15:12,079 --> 00:15:14,240 who's doing it? How would we notice? We 374 00:15:14,240 --> 00:15:17,199 have to monitor it. And then we have to 375 00:15:17,199 --> 00:15:19,839 enforce the rules. 376 00:15:19,839 --> 00:15:22,720 We don't do that here. You can do that 377 00:15:22,720 --> 00:15:24,480 over there 378 00:15:24,480 --> 00:15:27,920 because if you don't enforce the rules, 379 00:15:27,920 --> 00:15:30,399 then people will notice. And that's 380 00:15:30,399 --> 00:15:32,160 where the monitoring is actually comes 381 00:15:32,160 --> 00:15:34,639 in like monitoring each other to see who 382 00:15:34,639 --> 00:15:36,959 is paying attention and who is following 383 00:15:36,959 --> 00:15:38,800 the rules. Because if everyone else 384 00:15:38,800 --> 00:15:40,800 stops following the rules, why should I 385 00:15:40,800 --> 00:15:43,839 keep doing it? And that is an important 386 00:15:43,839 --> 00:15:45,440 part of the monitoring and and rule 387 00:15:45,440 --> 00:15:48,800 compliance function. According to Ostra, 388 00:15:48,800 --> 00:15:51,680 conflict resolution is a thing that we 389 00:15:51,680 --> 00:15:53,600 should be doing a lot more of. I think 390 00:15:53,600 --> 00:15:56,320 for a lot of open source projects uh and 391 00:15:56,320 --> 00:15:57,920 free and open source software projects 392 00:15:57,920 --> 00:16:00,959 that we didn't really want there to be 393 00:16:00,959 --> 00:16:03,040 any conflict. 394 00:16:03,040 --> 00:16:05,120 We wanted everyone to get along. That 395 00:16:05,120 --> 00:16:08,959 was the point. We don't like conflict. 396 00:16:09,120 --> 00:16:12,560 We hoped that if we just did all of this 397 00:16:12,560 --> 00:16:14,399 with all of these humans together in a 398 00:16:14,399 --> 00:16:15,759 project, they'd all get along and be 399 00:16:15,759 --> 00:16:17,279 friends and it would be great. And have 400 00:16:17,279 --> 00:16:20,759 you met humans? 401 00:16:20,959 --> 00:16:24,240 We should have been more prepared. 402 00:16:24,240 --> 00:16:26,480 And from now on, I think we need to be 403 00:16:26,480 --> 00:16:28,480 more prepared 404 00:16:28,480 --> 00:16:31,040 for conflict. What will we do about it 405 00:16:31,040 --> 00:16:32,880 when people come into conflict? How can 406 00:16:32,880 --> 00:16:35,120 we have healthy conflict? How can we 407 00:16:35,120 --> 00:16:37,040 have those discussions about which 408 00:16:37,040 --> 00:16:38,720 library should we use? Which test 409 00:16:38,720 --> 00:16:40,959 framework should we use? Which language 410 00:16:40,959 --> 00:16:42,959 should we use, 411 00:16:42,959 --> 00:16:44,560 which platform should we use to store it 412 00:16:44,560 --> 00:16:47,120 on for CI/CD or for or for version 413 00:16:47,120 --> 00:16:48,959 control? 414 00:16:48,959 --> 00:16:50,800 What are we allowed to do? How do we 415 00:16:50,800 --> 00:16:53,199 resolve disputes between different 416 00:16:53,199 --> 00:16:55,600 parties who are all we assume operating 417 00:16:55,600 --> 00:16:57,120 in good faith? What if they're not 418 00:16:57,120 --> 00:16:59,839 operating in good faith? 419 00:16:59,839 --> 00:17:02,079 How do we manage that? we have not done 420 00:17:02,079 --> 00:17:04,480 this well and we need to get better at 421 00:17:04,480 --> 00:17:07,039 it. 422 00:17:07,039 --> 00:17:08,880 And Austin sort of summarizes in another 423 00:17:08,880 --> 00:17:10,319 paper that these are the these are the 424 00:17:10,319 --> 00:17:12,799 characteristics of success. They're 425 00:17:12,799 --> 00:17:14,640 pretty much in priority order and I 426 00:17:14,640 --> 00:17:17,439 think we're we do okay for the first 427 00:17:17,439 --> 00:17:18,799 three. I think we're in pretty good 428 00:17:18,799 --> 00:17:20,559 shape. I think we start getting into 429 00:17:20,559 --> 00:17:22,959 trouble when we get to the bottom three. 430 00:17:22,959 --> 00:17:24,720 So the cost of information that's about 431 00:17:24,720 --> 00:17:26,959 the monitoring thing of like how easy is 432 00:17:26,959 --> 00:17:28,960 it for you to tell whether we're doing 433 00:17:28,960 --> 00:17:32,559 well or not. We do okay there. It's a 434 00:17:32,559 --> 00:17:34,400 bit asymmetric. Some things are pretty 435 00:17:34,400 --> 00:17:36,160 easy to do. Some things don't cost a lot 436 00:17:36,160 --> 00:17:38,720 for us to monitor. Uh other things are 437 00:17:38,720 --> 00:17:41,280 quite tricky. 438 00:17:41,280 --> 00:17:44,880 Okay. Uh transformation. The cost of 439 00:17:44,880 --> 00:17:47,440 transforming things is again sometimes 440 00:17:47,440 --> 00:17:50,240 really easy, sometimes really really 441 00:17:50,240 --> 00:17:53,600 hard. Who thinks that they could easily 442 00:17:53,600 --> 00:17:56,160 tomorrow spin up a hard fork of the 443 00:17:56,160 --> 00:17:59,200 Linux kernel? 444 00:17:59,200 --> 00:18:03,437 Ha. There's always one. [laughter] 445 00:18:04,080 --> 00:18:06,400 I look forward to uh monitoring the 446 00:18:06,400 --> 00:18:08,720 project. So 447 00:18:08,720 --> 00:18:11,120 enforcement. Enforcement is really 448 00:18:11,120 --> 00:18:13,760 tricky. The cost of enforcement 449 00:18:13,760 --> 00:18:16,880 partly deliberately. We want you to use 450 00:18:16,880 --> 00:18:19,120 the software. That was the goal. We 451 00:18:19,120 --> 00:18:21,440 didn't want to stop you from doing that. 452 00:18:21,440 --> 00:18:24,320 So we can't enforce any kind of rule 453 00:18:24,320 --> 00:18:27,200 that says don't use it. Like what if we 454 00:18:27,200 --> 00:18:28,480 were to say you can use it for some 455 00:18:28,480 --> 00:18:30,559 things and not others? How can we stop 456 00:18:30,559 --> 00:18:32,960 you? 457 00:18:32,960 --> 00:18:34,480 So maybe we shouldn't be trying to 458 00:18:34,480 --> 00:18:35,840 enforce that. What else should we 459 00:18:35,840 --> 00:18:37,919 enforce instead? Maybe it's things like 460 00:18:37,919 --> 00:18:41,120 who can contribute? 461 00:18:41,120 --> 00:18:42,720 I'd say that we do have a shared 462 00:18:42,720 --> 00:18:44,720 culture, 463 00:18:44,720 --> 00:18:46,960 but I don't think we recognize that 464 00:18:46,960 --> 00:18:49,840 actually what's really going on is we 465 00:18:49,840 --> 00:18:52,799 have multiple competing cultures, 466 00:18:52,799 --> 00:18:55,440 various subcultures within the ecosystem 467 00:18:55,440 --> 00:18:57,440 that are competing for dominance. And 468 00:18:57,440 --> 00:19:00,240 some of them are much more aware of 469 00:19:00,240 --> 00:19:03,919 their goal of dominating than others. 470 00:19:03,919 --> 00:19:06,240 And I think we should recognize that if 471 00:19:06,240 --> 00:19:08,880 if only so that we can see it happening 472 00:19:08,880 --> 00:19:12,559 and plan what to do about it. 473 00:19:12,559 --> 00:19:14,640 Our group is relatively small compared 474 00:19:14,640 --> 00:19:15,840 to the rest of the world and what else 475 00:19:15,840 --> 00:19:17,840 is going on. Like this is not a massive 476 00:19:17,840 --> 00:19:19,360 conference compared to some of the 477 00:19:19,360 --> 00:19:20,960 others 478 00:19:20,960 --> 00:19:23,120 which is good. It's also relatively 479 00:19:23,120 --> 00:19:24,960 stable. You see a lot of the same faces. 480 00:19:24,960 --> 00:19:26,720 We do have new ones come in. We do 481 00:19:26,720 --> 00:19:28,160 unfortunately have a lot of people 482 00:19:28,160 --> 00:19:32,880 leaving. Burnout is real. 483 00:19:32,880 --> 00:19:34,480 But Austramm says that this one is 484 00:19:34,480 --> 00:19:36,080 probably the least important if we have 485 00:19:36,080 --> 00:19:38,160 everything else. 486 00:19:38,160 --> 00:19:41,160 Great. 487 00:19:43,360 --> 00:19:46,960 Success at what? 488 00:19:46,960 --> 00:19:49,760 What are we actually trying to do? 489 00:19:49,760 --> 00:19:51,440 How would we know? We could do all of 490 00:19:51,440 --> 00:19:52,720 the things that Austramm suggests and 491 00:19:52,720 --> 00:19:54,559 and okay, we'll succeed, but succeed at 492 00:19:54,559 --> 00:19:57,679 doing what? And now I get to talk about 493 00:19:57,679 --> 00:19:59,840 my favorite bit. 494 00:19:59,840 --> 00:20:02,000 So the purpose of a system is what it 495 00:20:02,000 --> 00:20:04,960 does. So what do we want it to do? What 496 00:20:04,960 --> 00:20:08,600 do we think would be good? 497 00:20:09,360 --> 00:20:12,000 Disposable software is perfectly fine 498 00:20:12,000 --> 00:20:14,160 for some things. 499 00:20:14,160 --> 00:20:16,880 Now disposable culture is relatively 500 00:20:16,880 --> 00:20:18,799 new. I was surprised to discover it was 501 00:20:18,799 --> 00:20:21,120 actually kind of purposefully designed 502 00:20:21,120 --> 00:20:23,840 about 100 years ago. that started in in 503 00:20:23,840 --> 00:20:25,600 America and it came about as a as a 504 00:20:25,600 --> 00:20:27,280 result of certain technological changes 505 00:20:27,280 --> 00:20:30,559 that made it possible to for example uh 506 00:20:30,559 --> 00:20:33,360 bill uh metological changes made it 507 00:20:33,360 --> 00:20:34,720 possible for you to have disposable 508 00:20:34,720 --> 00:20:36,400 razors 509 00:20:36,400 --> 00:20:38,619 and it was pitched as freedom from 510 00:20:38,619 --> 00:20:40,960 [clears throat] having to maintain a 511 00:20:40,960 --> 00:20:43,440 straight razor that you had and kept. 512 00:20:43,440 --> 00:20:44,960 You bought one of them and it lasted 513 00:20:44,960 --> 00:20:46,240 essentially your entire life. It could 514 00:20:46,240 --> 00:20:47,600 be an heirloom that you got from your 515 00:20:47,600 --> 00:20:50,600 grandfather, 516 00:20:50,720 --> 00:20:52,799 but disposable things was convenient. 517 00:20:52,799 --> 00:20:54,000 You don't have to think about what 518 00:20:54,000 --> 00:20:56,240 happens after you've finished using it. 519 00:20:56,240 --> 00:20:57,919 You can just spin it up and use it. And 520 00:20:57,919 --> 00:20:59,760 I I think there's a place for disposable 521 00:20:59,760 --> 00:21:02,000 software, one-off scripts that you use 522 00:21:02,000 --> 00:21:05,039 once. Fair enough. 523 00:21:05,039 --> 00:21:07,840 But production doesn't run on disposable 524 00:21:07,840 --> 00:21:10,000 software. And production is where I 525 00:21:10,000 --> 00:21:12,559 live. I'm a systems admin. I look after 526 00:21:12,559 --> 00:21:14,720 the stuff that runs production, the 527 00:21:14,720 --> 00:21:16,480 things that keep they need to keep 528 00:21:16,480 --> 00:21:18,640 working, the software that needs to stay 529 00:21:18,640 --> 00:21:22,559 alive because as I have learned to my uh 530 00:21:22,559 --> 00:21:24,720 great chagrin and with great personal 531 00:21:24,720 --> 00:21:27,039 suffering uh the first 80% of the 532 00:21:27,039 --> 00:21:29,760 software project is putting bugs in and 533 00:21:29,760 --> 00:21:32,480 the second 80% is taking them out again. 534 00:21:32,480 --> 00:21:33,840 How many people are involved in doing 535 00:21:33,840 --> 00:21:36,480 business cases for software projects? 536 00:21:36,480 --> 00:21:38,559 this line with uh how we generally do 537 00:21:38,559 --> 00:21:40,640 our budgeting and planning and cost and 538 00:21:40,640 --> 00:21:41,840 it's like yeah that's how it turns out 539 00:21:41,840 --> 00:21:44,080 isn't it? Yes I have uh left out all of 540 00:21:44,080 --> 00:21:46,320 the uh the other 60 to 70% of things 541 00:21:46,320 --> 00:21:47,760 that need to go into a software project 542 00:21:47,760 --> 00:21:49,919 of course 543 00:21:49,919 --> 00:21:52,640 but production is about the second 80%. 544 00:21:52,640 --> 00:21:54,159 So if we're spending all of our time in 545 00:21:54,159 --> 00:21:56,559 the first 80% then we're just mostly 546 00:21:56,559 --> 00:21:59,200 just putting bugs in. 547 00:21:59,200 --> 00:22:01,679 So if things need to survive, if they 548 00:22:01,679 --> 00:22:03,520 need to stay alive for a long time, 549 00:22:03,520 --> 00:22:04,960 we're spending most of our time in the 550 00:22:04,960 --> 00:22:07,679 maintenance phase. 551 00:22:07,679 --> 00:22:09,360 And maintenance is what I really want to 552 00:22:09,360 --> 00:22:11,520 talk about. 553 00:22:11,520 --> 00:22:14,480 This is a tremendous book, The Care of 554 00:22:14,480 --> 00:22:17,120 Things. Uh that QR code will take you to 555 00:22:17,120 --> 00:22:18,720 a link to the publishers's website. 556 00:22:18,720 --> 00:22:21,039 Please get this book. Uh ask your 557 00:22:21,039 --> 00:22:22,400 library to get it if they don't have it 558 00:22:22,400 --> 00:22:24,080 already. Borrow it from the library. It 559 00:22:24,080 --> 00:22:27,240 is tremendous. 560 00:22:28,159 --> 00:22:29,919 It is subtitled the ethics and politics 561 00:22:29,919 --> 00:22:31,280 of maintenance. There is ethics and 562 00:22:31,280 --> 00:22:33,280 politics discussed in the book again in 563 00:22:33,280 --> 00:22:36,000 this talk. Um it's very French uh sorry 564 00:22:36,000 --> 00:22:38,485 French brackets complimentary. Uh 565 00:22:38,485 --> 00:22:39,919 [laughter] 566 00:22:39,919 --> 00:22:42,080 it is it is great and I will be talking 567 00:22:42,080 --> 00:22:43,679 a lot about the the concepts in this 568 00:22:43,679 --> 00:22:45,360 book and some some bits that it it talks 569 00:22:45,360 --> 00:22:47,520 about. I don't want to spoil it for you. 570 00:22:47,520 --> 00:22:49,280 There's some tremendous bits in that I 571 00:22:49,280 --> 00:22:50,799 really want you to discover for the 572 00:22:50,799 --> 00:22:53,200 first time. Uh, one phrase that I hope 573 00:22:53,200 --> 00:22:55,280 piques your interest. Gorilla clock 574 00:22:55,280 --> 00:22:57,440 repair. 575 00:22:57,440 --> 00:23:01,039 Yeah, it's a great story. Uh, yeah, I 576 00:23:01,039 --> 00:23:02,480 don't want to spoil. Oh, I I so want to 577 00:23:02,480 --> 00:23:03,760 tell you, but no, I don't want to spoil 578 00:23:03,760 --> 00:23:05,679 it. It's really, really good. [snorts] 579 00:23:05,679 --> 00:23:07,440 So, in this book, they say care is an 580 00:23:07,440 --> 00:23:09,200 activity. 581 00:23:09,200 --> 00:23:11,760 Care is work. 582 00:23:11,760 --> 00:23:14,799 It's a doing thing. We don't just care 583 00:23:14,799 --> 00:23:19,039 about things, we care for them. You can 584 00:23:19,039 --> 00:23:20,480 care about a thing that's all the way 585 00:23:20,480 --> 00:23:22,880 over there. It's like, oh yeah, I care 586 00:23:22,880 --> 00:23:25,520 about that, all the way over there. When 587 00:23:25,520 --> 00:23:27,520 you care for something, it's an active 588 00:23:27,520 --> 00:23:30,720 participatory thing. You are in contact 589 00:23:30,720 --> 00:23:32,799 with the system with with whatever it 590 00:23:32,799 --> 00:23:36,400 is. When you're maintaining uh Paris, 591 00:23:36,400 --> 00:23:38,480 they they they talk about the streets of 592 00:23:38,480 --> 00:23:40,159 Paris and how they have to remove 593 00:23:40,159 --> 00:23:42,720 graffiti. 594 00:23:42,720 --> 00:23:44,880 you go and you are in contact with the 595 00:23:44,880 --> 00:23:47,440 wall, with the graffiti, with the stuff 596 00:23:47,440 --> 00:23:49,520 that's there. It's an active 597 00:23:49,520 --> 00:23:52,000 participatory thing. But when people 598 00:23:52,000 --> 00:23:54,240 think about maintenance, they often 599 00:23:54,240 --> 00:23:56,480 think about repair. 600 00:23:56,480 --> 00:23:58,559 They think about machinery. And if you 601 00:23:58,559 --> 00:24:01,520 go looking in uh image libraries for 602 00:24:01,520 --> 00:24:03,039 images to illustrate a talk like this 603 00:24:03,039 --> 00:24:05,520 one, when you look at maintenance, a lot 604 00:24:05,520 --> 00:24:07,919 of the pictures are about cars and about 605 00:24:07,919 --> 00:24:11,279 machinery. Uh also mobile phones a lot 606 00:24:11,279 --> 00:24:13,279 comes up a lot. They seem to need a lot 607 00:24:13,279 --> 00:24:15,360 of repair, a lot of broken screens and 608 00:24:15,360 --> 00:24:19,679 so on. Um but repair when you repair and 609 00:24:19,679 --> 00:24:21,200 maintenance aren't really the same 610 00:24:21,200 --> 00:24:23,360 thing. Repair is sort of a subset. When 611 00:24:23,360 --> 00:24:25,600 you think of repair, something is 612 00:24:25,600 --> 00:24:27,360 broken, which means that it was 613 00:24:27,360 --> 00:24:29,840 previously working. 614 00:24:29,840 --> 00:24:31,520 There's one state where it's good and 615 00:24:31,520 --> 00:24:34,159 one state where it's bad. 616 00:24:34,159 --> 00:24:36,480 And it requires a major intervention. 617 00:24:36,480 --> 00:24:38,720 It's like you have to save it. And it it 618 00:24:38,720 --> 00:24:41,840 has this sort of heroics are involved 619 00:24:41,840 --> 00:24:45,120 that someone saving the day tends to 620 00:24:45,120 --> 00:24:47,360 happen. Something was working and 621 00:24:47,360 --> 00:24:48,720 everything was great and the villagers 622 00:24:48,720 --> 00:24:51,200 were happy and then it broke and the 623 00:24:51,200 --> 00:24:52,880 villagers were sad and there was much 624 00:24:52,880 --> 00:24:56,640 wailing and nashing of teeth and then 625 00:24:56,640 --> 00:24:59,840 they put out a call and a hero arrives 626 00:24:59,840 --> 00:25:03,039 from out of town and comes in and does 627 00:25:03,039 --> 00:25:05,279 great heroics and fixes things and 628 00:25:05,279 --> 00:25:07,760 repairs the things and the machines and 629 00:25:07,760 --> 00:25:09,520 everything is great and there is a great 630 00:25:09,520 --> 00:25:10,960 celebration and everyone goes home for 631 00:25:10,960 --> 00:25:12,880 tear medals. 632 00:25:12,880 --> 00:25:15,600 That's the general pitch for how repair 633 00:25:15,600 --> 00:25:18,799 is framed. But that's not maintenance. I 634 00:25:18,799 --> 00:25:20,159 don't think it's a bit of it. And 635 00:25:20,159 --> 00:25:21,520 sometimes you have to do that, but 636 00:25:21,520 --> 00:25:25,799 mostly maintenance is cleaning. 637 00:25:26,240 --> 00:25:29,120 I love this photo. [laughter] 638 00:25:29,120 --> 00:25:31,919 We were looking at high schools and uh 639 00:25:31,919 --> 00:25:35,760 the science teachers had put this out. 640 00:25:35,760 --> 00:25:39,440 I cannot tell you how much joy it gave 641 00:25:39,440 --> 00:25:42,799 me when I noticed and enjoyed this. The 642 00:25:42,799 --> 00:25:46,559 smile on her face could light up a room. 643 00:25:46,559 --> 00:25:51,360 It was glorious. I love this. 644 00:25:51,360 --> 00:25:55,240 But who does this? 645 00:25:55,279 --> 00:25:57,840 Who does the cleaning? 646 00:25:57,840 --> 00:26:01,279 Who chops wood and carries water 647 00:26:01,279 --> 00:26:05,840 and the daily ongoing constant work of 648 00:26:05,840 --> 00:26:09,360 maintenance? It's not someone coming in 649 00:26:09,360 --> 00:26:12,720 saving the day. It's not heroics. It's 650 00:26:12,720 --> 00:26:15,039 not a one-off thing that happens and 651 00:26:15,039 --> 00:26:17,120 then it's finished and then we go back 652 00:26:17,120 --> 00:26:20,000 to the way things were. 653 00:26:20,000 --> 00:26:23,039 It's something that we do all the time. 654 00:26:23,039 --> 00:26:25,440 We do it to prevent things breaking. So, 655 00:26:25,440 --> 00:26:27,440 we don't have to do repair. It's kind of 656 00:26:27,440 --> 00:26:30,159 preemptive repair. We're trying to 657 00:26:30,159 --> 00:26:34,240 prolong the existence of things. And the 658 00:26:34,240 --> 00:26:37,279 authors of the book make this point that 659 00:26:37,279 --> 00:26:39,600 there are objects and there are things. 660 00:26:39,600 --> 00:26:43,279 Objects kind of exist by themselves 661 00:26:43,279 --> 00:26:47,039 whereas things thingness 662 00:26:47,039 --> 00:26:50,000 requires intervention. It requires 663 00:26:50,000 --> 00:26:53,520 constant maintenance in order to keep it 664 00:26:53,520 --> 00:26:55,760 being a thing. Without that 665 00:26:55,760 --> 00:26:59,360 intervention, it ceases to exist or it 666 00:26:59,360 --> 00:27:02,880 may just become a mere object. It is the 667 00:27:02,880 --> 00:27:05,440 very act of maintenance that makes a 668 00:27:05,440 --> 00:27:09,440 thing a thing. 669 00:27:09,440 --> 00:27:12,559 But it's also not static. 670 00:27:12,559 --> 00:27:16,400 It requires us to pay attention to it. 671 00:27:16,400 --> 00:27:18,559 We have to focus. People who do a lot of 672 00:27:18,559 --> 00:27:20,080 maintenance understand what they're 673 00:27:20,080 --> 00:27:21,760 maintaining really, really well. They 674 00:27:21,760 --> 00:27:24,240 understand the detail. They focus on the 675 00:27:24,240 --> 00:27:28,919 detail. The details are important. 676 00:27:29,520 --> 00:27:32,159 They look at every individual system. 677 00:27:32,159 --> 00:27:34,720 They know that wall and that wall. And 678 00:27:34,720 --> 00:27:36,320 yes, I'm removing graffiti from 679 00:27:36,320 --> 00:27:38,720 different walls, but different walls are 680 00:27:38,720 --> 00:27:40,400 different. They require different 681 00:27:40,400 --> 00:27:42,559 interventions. They require different 682 00:27:42,559 --> 00:27:45,279 amounts of care, different ways of 683 00:27:45,279 --> 00:27:48,159 thinking about it. Every happy printer 684 00:27:48,159 --> 00:27:51,279 is happy in the same way. 685 00:27:51,279 --> 00:27:54,080 Every unhappy printer is happy 686 00:27:54,080 --> 00:27:57,080 differently. 687 00:27:59,440 --> 00:28:03,039 When we want to take care of something, 688 00:28:03,039 --> 00:28:06,080 we worry about it because what if we 689 00:28:06,080 --> 00:28:09,360 break it? We might have to do repair. We 690 00:28:09,360 --> 00:28:11,039 don't really want to do that. Requires 691 00:28:11,039 --> 00:28:13,919 heroics. What if our making uh our 692 00:28:13,919 --> 00:28:16,480 intervening with this machine? What if 693 00:28:16,480 --> 00:28:18,960 doing something with it makes it stop 694 00:28:18,960 --> 00:28:22,559 being the thing? A vintage sewing 695 00:28:22,559 --> 00:28:26,559 machine might need new parts. I may not 696 00:28:26,559 --> 00:28:30,000 be able to find original parts. How many 697 00:28:30,000 --> 00:28:33,200 parts of a vintage sewing machine can I 698 00:28:33,200 --> 00:28:35,279 change before it stops being a vintage 699 00:28:35,279 --> 00:28:37,840 sewing machine? 700 00:28:37,840 --> 00:28:40,480 Or a vintage car? How many parts can I 701 00:28:40,480 --> 00:28:42,000 change? 702 00:28:42,000 --> 00:28:44,960 Is it still a vintage car if it has seat 703 00:28:44,960 --> 00:28:48,399 belts when it didn't originally? 704 00:28:48,399 --> 00:28:51,520 What if I can't get the same fuel? 705 00:28:51,520 --> 00:28:53,039 How many changes can I make to a thing 706 00:28:53,039 --> 00:28:55,440 before it isn't a thing anymore? When I 707 00:28:55,440 --> 00:28:57,200 make those changes, will I break the 708 00:28:57,200 --> 00:28:58,960 thing? 709 00:28:58,960 --> 00:29:01,600 Will, strangely, my attempt to intervene 710 00:29:01,600 --> 00:29:03,600 and do maintenance by taking it all 711 00:29:03,600 --> 00:29:05,840 apart and then I go to put it back 712 00:29:05,840 --> 00:29:08,799 together and discover that I can't find 713 00:29:08,799 --> 00:29:11,360 something or I have all of these screws 714 00:29:11,360 --> 00:29:13,440 left over. 715 00:29:13,440 --> 00:29:15,360 Um, 716 00:29:15,360 --> 00:29:17,200 does it matter? Maybe I could put it 717 00:29:17,200 --> 00:29:18,399 back together without all of those 718 00:29:18,399 --> 00:29:19,919 screws and it's still actually a working 719 00:29:19,919 --> 00:29:21,440 sewing machine. Did it need them in the 720 00:29:21,440 --> 00:29:23,600 first place? 721 00:29:23,600 --> 00:29:25,840 Maybe that's okay. How do I decide? How 722 00:29:25,840 --> 00:29:28,480 do we decide what we can do about 723 00:29:28,480 --> 00:29:32,080 maintenance? Because time 724 00:29:32,080 --> 00:29:34,640 is important. Maintenance is in many 725 00:29:34,640 --> 00:29:36,320 ways a fight against time, a fight 726 00:29:36,320 --> 00:29:38,080 against entropy. Because if we don't do 727 00:29:38,080 --> 00:29:39,679 the maintenance, the thing will cease to 728 00:29:39,679 --> 00:29:43,840 exist. So we are always aware of time. 729 00:29:43,840 --> 00:29:45,840 But like the sewing machine, time 730 00:29:45,840 --> 00:29:48,240 matters. Am I restoring the thing back 731 00:29:48,240 --> 00:29:50,880 to what it was originally or am I 732 00:29:50,880 --> 00:29:53,600 restoring it to an earlier part of time? 733 00:29:53,600 --> 00:29:55,840 Am I changing the nature of the thing 734 00:29:55,840 --> 00:29:58,480 with my maintenance? If I swap pieces 735 00:29:58,480 --> 00:30:00,799 out, does it cease to become the same 736 00:30:00,799 --> 00:30:02,720 thing? Am I still allowed to do that? 737 00:30:02,720 --> 00:30:04,720 Does it become a new thing? We get into 738 00:30:04,720 --> 00:30:07,039 very ship of thesis territory. My 739 00:30:07,039 --> 00:30:09,679 grandfather's axe. If I swap the handle 740 00:30:09,679 --> 00:30:11,120 and the axe head, but I swapped the 741 00:30:11,120 --> 00:30:12,720 handle last year and I swapped the head 742 00:30:12,720 --> 00:30:14,799 of it about 3 years ago. Is it still my 743 00:30:14,799 --> 00:30:16,720 grandfather's axe or is it my axe now? 744 00:30:16,720 --> 00:30:21,720 When did it change? Who gets to decide 745 00:30:22,559 --> 00:30:25,440 with conservancy um historical 746 00:30:25,440 --> 00:30:27,520 restorations and so on? Should I take it 747 00:30:27,520 --> 00:30:28,799 all the way back to what it was 748 00:30:28,799 --> 00:30:31,919 originally? We have all of these photos 749 00:30:31,919 --> 00:30:35,120 of ruins of the pathonon and so on. So, 750 00:30:35,120 --> 00:30:36,799 weirdly enough, they probably didn't 751 00:30:36,799 --> 00:30:39,520 look like that originally. 752 00:30:39,520 --> 00:30:42,720 So when we restore something 753 00:30:42,720 --> 00:30:44,960 to what point? Do we restore it all the 754 00:30:44,960 --> 00:30:46,640 way back to what it was originally? Do 755 00:30:46,640 --> 00:30:49,120 we restore it back to some historical 756 00:30:49,120 --> 00:30:52,960 point which was arbitrarily decided? 757 00:30:52,960 --> 00:30:55,840 Do we change it and restore it to modern 758 00:30:55,840 --> 00:30:57,600 standards? 759 00:30:57,600 --> 00:31:00,960 Do we install ramps to make it more 760 00:31:00,960 --> 00:31:03,200 accessible 761 00:31:03,200 --> 00:31:05,039 or have we changed the nature of the 762 00:31:05,039 --> 00:31:08,240 thing by doing so? Time becomes a thing 763 00:31:08,240 --> 00:31:11,039 we we have to be very aware of. We pay a 764 00:31:11,039 --> 00:31:15,039 great deal of attention to time 765 00:31:15,039 --> 00:31:18,320 because we are generally 766 00:31:18,320 --> 00:31:20,399 being careful. 767 00:31:20,399 --> 00:31:23,200 Taking care of things requires tact. It 768 00:31:23,200 --> 00:31:27,600 requires wisdom, requires skill. Many of 769 00:31:27,600 --> 00:31:29,440 these things, 770 00:31:29,440 --> 00:31:31,919 skill, wisdom, experience, they take 771 00:31:31,919 --> 00:31:34,880 time to accumulate. And we have 772 00:31:34,880 --> 00:31:36,880 different experiences. Every individual 773 00:31:36,880 --> 00:31:38,559 who's part of a project will have a 774 00:31:38,559 --> 00:31:40,320 different idea about what they need to 775 00:31:40,320 --> 00:31:42,559 care about. 776 00:31:42,559 --> 00:31:45,919 Should we change the test framework? Why 777 00:31:45,919 --> 00:31:47,760 should we swap out that library for 778 00:31:47,760 --> 00:31:48,960 another one? Should we make it 779 00:31:48,960 --> 00:31:51,760 compatible with a new operating system, 780 00:31:51,760 --> 00:31:54,240 with a new chipset? Should we stop 781 00:31:54,240 --> 00:31:55,919 supporting 782 00:31:55,919 --> 00:31:58,960 32-bit processors and only support 783 00:31:58,960 --> 00:32:02,240 64-bit processors? Does it matter that 784 00:32:02,240 --> 00:32:05,440 our operating system now can't run on a 785 00:32:05,440 --> 00:32:08,480 8886 or a 286? 786 00:32:08,480 --> 00:32:11,360 Maybe. 787 00:32:11,360 --> 00:32:14,399 Do we know what impact our changes will 788 00:32:14,399 --> 00:32:18,320 have before we make them? 789 00:32:18,320 --> 00:32:21,600 Does that matter? Do we Is it okay to 790 00:32:21,600 --> 00:32:27,159 just try it and find out? 791 00:32:27,360 --> 00:32:29,440 When will we know? Can we reverse 792 00:32:29,440 --> 00:32:31,600 course? Can we decide that actually no, 793 00:32:31,600 --> 00:32:33,200 we didn't want to do that and I I want 794 00:32:33,200 --> 00:32:34,880 to take it back to where it was before 795 00:32:34,880 --> 00:32:37,120 because we've taken a wrong turn. How 796 00:32:37,120 --> 00:32:40,159 easy will that be to do? We need to be 797 00:32:40,159 --> 00:32:42,080 careful. 798 00:32:42,080 --> 00:32:44,000 Or do we? Maybe we don't need to be 799 00:32:44,000 --> 00:32:46,240 careful. 800 00:32:46,240 --> 00:32:48,000 Is it a problem? These are ethical 801 00:32:48,000 --> 00:32:49,279 questions that we need to wrestle with 802 00:32:49,279 --> 00:32:53,039 when we're taking care of things. 803 00:32:53,039 --> 00:32:56,000 We cannot escape the ethics. people who 804 00:32:56,000 --> 00:32:58,399 say ethics aside when we're talking 805 00:32:58,399 --> 00:33:02,960 about technology projects, it's like how 806 00:33:02,960 --> 00:33:06,159 how can we do that? It's intimate. The 807 00:33:06,159 --> 00:33:08,240 active maintenance is always wrestling 808 00:33:08,240 --> 00:33:10,880 with these ethical questions every 809 00:33:10,880 --> 00:33:12,960 single time. We're in constant contact 810 00:33:12,960 --> 00:33:16,200 with them. 811 00:33:20,080 --> 00:33:22,320 And I want to end with slightly more 812 00:33:22,320 --> 00:33:25,760 hopeful part I hope. Um earlier in the 813 00:33:25,760 --> 00:33:29,760 week uh I went to a musical workshop um 814 00:33:29,760 --> 00:33:32,720 with uh my my son's high school bands. 815 00:33:32,720 --> 00:33:35,919 Uh and it was a really great talk. But 816 00:33:35,919 --> 00:33:37,919 the person leading the workshop said a 817 00:33:37,919 --> 00:33:38,960 couple of things that really stuck with 818 00:33:38,960 --> 00:33:41,440 me. Um and as an exuso uh people 819 00:33:41,440 --> 00:33:42,960 musicians in the audience. Yeah, we got 820 00:33:42,960 --> 00:33:44,960 a few. Yeah, I was a drummer 821 00:33:44,960 --> 00:33:46,320 percussionist, which is a fancy way of 822 00:33:46,320 --> 00:33:50,399 saying drummer. Um I like to hit things 823 00:33:50,399 --> 00:33:51,600 which is weird for a guy who's into 824 00:33:51,600 --> 00:33:54,080 maintenance. Uh percussive maintenance. 825 00:33:54,080 --> 00:33:56,559 it's a thing. [laughter] 826 00:33:56,559 --> 00:33:57,840 He said some really interesting things 827 00:33:57,840 --> 00:33:59,679 and he and I think that he was talking 828 00:33:59,679 --> 00:34:01,600 about music but I think that that 829 00:34:01,600 --> 00:34:03,360 applies to technical projects and I use 830 00:34:03,360 --> 00:34:04,960 this a lot with when I'm consulting with 831 00:34:04,960 --> 00:34:07,279 teams. Um I like to use musical 832 00:34:07,279 --> 00:34:10,639 analogies and he said when you come to 833 00:34:10,639 --> 00:34:12,480 practice when you you come to this 834 00:34:12,480 --> 00:34:14,960 activity that you're doing 835 00:34:14,960 --> 00:34:16,480 something that we should keep in mind is 836 00:34:16,480 --> 00:34:19,200 are we having fun? 837 00:34:19,200 --> 00:34:20,800 So to go back to the beginning of the 838 00:34:20,800 --> 00:34:22,320 talk and what the tech industry is like 839 00:34:22,320 --> 00:34:25,200 at the moment are we having fun? 840 00:34:25,200 --> 00:34:27,440 Is it fun anymore? Are we enjoying what 841 00:34:27,440 --> 00:34:29,599 we're doing? 842 00:34:29,599 --> 00:34:31,919 How might we change the systems that 843 00:34:31,919 --> 00:34:34,879 we're in to make it more fun 844 00:34:34,879 --> 00:34:37,679 to get that joy back that we've perhaps 845 00:34:37,679 --> 00:34:40,320 lost? How can we do it in a way that 846 00:34:40,320 --> 00:34:43,359 we're enjoying ourselves more? Why do we 847 00:34:43,359 --> 00:34:46,320 do this? Why are we here to do this? We 848 00:34:46,320 --> 00:34:49,119 do it because we enjoy it. We volunteer. 849 00:34:49,119 --> 00:34:50,879 Like we who comes to a conference like 850 00:34:50,879 --> 00:34:53,359 this because they hate being here. Like 851 00:34:53,359 --> 00:34:56,000 we enjoy doing this and we want to keep 852 00:34:56,000 --> 00:34:59,119 doing it and if it's not fun then we're 853 00:34:59,119 --> 00:35:01,119 not likely to keep doing it. People will 854 00:35:01,119 --> 00:35:04,160 leave if it's not fun anymore. We have a 855 00:35:04,160 --> 00:35:06,800 problem with burnout. 856 00:35:06,800 --> 00:35:09,040 So are we having fun? 857 00:35:09,040 --> 00:35:11,760 Who are we doing it for? Is it for us? 858 00:35:11,760 --> 00:35:15,040 Partly yes. I want to have fun. 859 00:35:15,040 --> 00:35:16,880 But we also like to perform for others. 860 00:35:16,880 --> 00:35:19,040 We want other people to enjoy the things 861 00:35:19,040 --> 00:35:21,680 that we've built, the music that we 862 00:35:21,680 --> 00:35:22,880 play. 863 00:35:22,880 --> 00:35:25,280 We want it to be good and not just good 864 00:35:25,280 --> 00:35:27,920 for us but for good for others, good for 865 00:35:27,920 --> 00:35:30,800 society at large or good for an audience 866 00:35:30,800 --> 00:35:34,560 or good for others as well as ourselves. 867 00:35:34,560 --> 00:35:36,400 So as we're thinking about what changes 868 00:35:36,400 --> 00:35:38,800 we could make to the system, second 869 00:35:38,800 --> 00:35:40,880 thing that that this uh workshop leader 870 00:35:40,880 --> 00:35:43,520 pointed out was like is it good for the 871 00:35:43,520 --> 00:35:46,240 band? 872 00:35:46,240 --> 00:35:48,800 Is it good for us? Are we having fun? 873 00:35:48,800 --> 00:35:51,599 And is it good for the band? 874 00:35:51,599 --> 00:35:53,200 And that's what I'd like us to think 875 00:35:53,200 --> 00:35:55,680 about more using the work of Austramm to 876 00:35:55,680 --> 00:35:58,079 maybe construct a framework for thinking 877 00:35:58,079 --> 00:36:00,400 about it. Looking at how might we change 878 00:36:00,400 --> 00:36:01,760 this? What are we doing well? What 879 00:36:01,760 --> 00:36:03,359 aren't we doing well? Have those 880 00:36:03,359 --> 00:36:05,839 conversations with each other about what 881 00:36:05,839 --> 00:36:08,320 is it that we're here to do? What's the 882 00:36:08,320 --> 00:36:10,480 band for? What sort of music do we play 883 00:36:10,480 --> 00:36:13,599 here? Do we want to change it? Who's in 884 00:36:13,599 --> 00:36:16,160 the band? Who maybe shouldn't be in the 885 00:36:16,160 --> 00:36:19,200 band? Who do we let into the band? Who 886 00:36:19,200 --> 00:36:21,440 needs to get moved on? How do we resolve 887 00:36:21,440 --> 00:36:24,160 the conflict about who wants to come in? 888 00:36:24,160 --> 00:36:25,839 Who gets to do the solo this time? 889 00:36:25,839 --> 00:36:28,240 What's the set list tonight? I hate that 890 00:36:28,240 --> 00:36:30,720 song. 891 00:36:30,720 --> 00:36:32,480 You didn't do very well in that last bit 892 00:36:32,480 --> 00:36:34,800 and I was a bit slow in the middle. We 893 00:36:34,800 --> 00:36:36,560 should practice on this bit a bit more. 894 00:36:36,560 --> 00:36:38,160 Maybe we could tighten that up. Make a 895 00:36:38,160 --> 00:36:40,560 few changes. How do we have those 896 00:36:40,560 --> 00:36:43,359 conversations with each other? 897 00:36:43,359 --> 00:36:46,640 Because we care about the band. We care 898 00:36:46,640 --> 00:36:48,560 about open source. We care about free 899 00:36:48,560 --> 00:36:50,240 and open source software. We care about 900 00:36:50,240 --> 00:36:52,480 this industry. 901 00:36:52,480 --> 00:36:55,200 It needs maintenance. 902 00:36:55,200 --> 00:36:57,839 We have to be engaged with maintenance 903 00:36:57,839 --> 00:37:00,400 and wrestling with the ethical questions 904 00:37:00,400 --> 00:37:03,440 that come up as we do maintenance to 905 00:37:03,440 --> 00:37:06,320 keep these things alive to prolong them 906 00:37:06,320 --> 00:37:09,040 into the future. And that's what I'd 907 00:37:09,040 --> 00:37:12,400 like us to do more consciously because I 908 00:37:12,400 --> 00:37:14,960 want it to be fun. I want it to be good 909 00:37:14,960 --> 00:37:18,640 for us and good for the band 910 00:37:18,640 --> 00:37:20,400 because the maintenance of software 911 00:37:20,400 --> 00:37:23,599 ecosystems by groups of people is more 912 00:37:23,599 --> 00:37:25,040 important than the creation of software 913 00:37:25,040 --> 00:37:27,520 artifacts by individuals or computers or 914 00:37:27,520 --> 00:37:30,400 anything else. 915 00:37:30,400 --> 00:37:31,839 The care of things. Please read this 916 00:37:31,839 --> 00:37:33,680 book. It's great. Uh when you've read 917 00:37:33,680 --> 00:37:35,040 it, come and talk to me about it. I 918 00:37:35,040 --> 00:37:37,119 would love to just tell you all about my 919 00:37:37,119 --> 00:37:40,240 special interest for hours. 920 00:37:40,240 --> 00:37:41,839 And if you would like a cyber rating 921 00:37:41,839 --> 00:37:43,920 sticker for your very own to stick on 922 00:37:43,920 --> 00:37:45,440 whatever it is that you would like that 923 00:37:45,440 --> 00:37:46,960 thinks you think that needs one. 924 00:37:46,960 --> 00:37:48,160 Everything needs one of these. Put them 925 00:37:48,160 --> 00:37:49,760 everywhere. Uh that QR code will take 926 00:37:49,760 --> 00:37:51,200 you to a website where you can design 927 00:37:51,200 --> 00:37:53,359 your own. Uh you can dial in whatever 928 00:37:53,359 --> 00:37:54,880 cyber rating you think is appropriate 929 00:37:54,880 --> 00:37:56,160 for the thing you're about to stick it 930 00:37:56,160 --> 00:37:57,839 to. 931 00:37:57,839 --> 00:37:59,680 Do try and play with the numbers. There 932 00:37:59,680 --> 00:38:01,599 are some Easter eggs in there for you. 933 00:38:01,599 --> 00:38:05,321 Uh and with that, thank you very much. 934 00:38:05,321 --> 00:38:07,341 [applause] 935 00:38:14,491 --> 00:38:16,511 [applause] 936 00:38:20,880 --> 00:38:23,920 Indeed, on behalf of the conference, 937 00:38:23,920 --> 00:38:26,936 thank you very much. Help being mugged. 938 00:38:26,936 --> 00:38:28,956 [applause]