WEBVTT - Why Corporate America Still Runs on Ancient Software That Breaks

0:00:10.119 --> 0:00:14.360
<v Speaker 1>Hello, and welcome to another episode of the Odd Locks Podcast.

0:00:14.440 --> 0:00:18.360
<v Speaker 1>I'm Joe Wisenthal and I'm Tracy Hallo. Tracy, I forgot

0:00:18.360 --> 0:00:20.800
<v Speaker 1>to ask you, and it's kind of embarrassing like this

0:00:20.920 --> 0:00:24.400
<v Speaker 1>late in January, but how is your how is your

0:00:24.400 --> 0:00:25.880
<v Speaker 1>New Year's? Like? How is your holidays? Do you have

0:00:25.920 --> 0:00:29.320
<v Speaker 1>a good Christmas? And stuff? Thanks? Thanks, Joe. I had

0:00:29.360 --> 0:00:32.559
<v Speaker 1>excellent Christmas. I stayed at home for a week with

0:00:32.600 --> 0:00:35.960
<v Speaker 1>my husband and my dog and we did hardly anything

0:00:36.040 --> 0:00:40.000
<v Speaker 1>and it was absolutely glorious. How about you? It was

0:00:40.040 --> 0:00:41.920
<v Speaker 1>all right. So the thing was I was down in

0:00:42.000 --> 0:00:45.080
<v Speaker 1>Texas visiting a family, which is but there was that

0:00:45.280 --> 0:00:50.040
<v Speaker 1>huge cold blast and it's worse in It's worth when

0:00:50.159 --> 0:00:52.239
<v Speaker 1>when the weather gets really cold, it's worse in a

0:00:52.280 --> 0:00:55.200
<v Speaker 1>place like Texas because like none of the buildings are

0:00:55.240 --> 0:00:58.120
<v Speaker 1>insulated particularly well, none of them have that heat. So

0:00:58.160 --> 0:01:00.640
<v Speaker 1>it's like, when it's really cold, is that like better

0:01:00.720 --> 0:01:03.279
<v Speaker 1>to be in a cold place where people are used

0:01:03.320 --> 0:01:05.880
<v Speaker 1>to it. So it's a little uncomfortable. But the good

0:01:05.880 --> 0:01:09.000
<v Speaker 1>news is somehow we managed to travel back and forth

0:01:09.240 --> 0:01:14.200
<v Speaker 1>without getting having any major airline disruptions. Right, So this

0:01:14.280 --> 0:01:17.360
<v Speaker 1>is the key thing that happened right before Christmas, which

0:01:17.400 --> 0:01:21.040
<v Speaker 1>is we had that very big winter storm, the Arctic

0:01:21.160 --> 0:01:25.839
<v Speaker 1>bomb blast, and it disrupted a ton of flights first off,

0:01:25.840 --> 0:01:28.640
<v Speaker 1>because of the weather, But then what happened is you

0:01:28.680 --> 0:01:31.639
<v Speaker 1>had this sort of cascade effect because the weather event

0:01:31.720 --> 0:01:35.520
<v Speaker 1>was so large, a number of airlines, but one airline

0:01:35.640 --> 0:01:39.520
<v Speaker 1>in particular experienced a lot of problems with its software

0:01:39.520 --> 0:01:42.479
<v Speaker 1>and Southwest had to cancel I think in the end

0:01:42.520 --> 0:01:46.400
<v Speaker 1>it was something like sixteen thousand flights. You had millions

0:01:46.400 --> 0:01:49.680
<v Speaker 1>of passengers affected, and you had disruptions that you know,

0:01:49.760 --> 0:01:52.800
<v Speaker 1>a weather related disruption that lasted one or two days

0:01:53.360 --> 0:01:57.440
<v Speaker 1>ended up lasting I think more than a week because

0:01:57.680 --> 0:02:01.720
<v Speaker 1>of the impact of the computer litches. I guess, yeah, yeah,

0:02:01.800 --> 0:02:04.760
<v Speaker 1>that's right. Like you know, airline traveled like it always

0:02:04.840 --> 0:02:07.640
<v Speaker 1>sort of cascades and ripples out right, because it canceled

0:02:07.680 --> 0:02:09.840
<v Speaker 1>flight is going to affect other flights and so forth.

0:02:10.160 --> 0:02:13.840
<v Speaker 1>But it seemed like Southwest experienced something unique, which is

0:02:13.880 --> 0:02:17.400
<v Speaker 1>that there's turned into this major software problem. And it's

0:02:17.440 --> 0:02:19.800
<v Speaker 1>sort of like a reminder that like, okay, when we

0:02:19.880 --> 0:02:22.040
<v Speaker 1>use the Internet, when we use like sort of like

0:02:22.160 --> 0:02:25.280
<v Speaker 1>modern consumer software, it's all very zippy and quick, and

0:02:25.360 --> 0:02:28.560
<v Speaker 1>it has nice interfaces and then when you use like

0:02:28.600 --> 0:02:32.600
<v Speaker 1>sort of like back end corporate software, particularly at large

0:02:32.840 --> 0:02:39.200
<v Speaker 1>legacy institutions, it's just like it's nothing like the consumer Internet.

0:02:39.240 --> 0:02:43.000
<v Speaker 1>It's like clunky. It's like we all know what it's like, right.

0:02:43.080 --> 0:02:44.919
<v Speaker 1>So this is something that came up quite a lot.

0:02:44.960 --> 0:02:48.200
<v Speaker 1>I used to cover the big banks, and one of

0:02:48.240 --> 0:02:51.840
<v Speaker 1>the crazy things that I learned relatively early on while

0:02:51.840 --> 0:02:54.120
<v Speaker 1>I was doing this was just how much of their

0:02:54.160 --> 0:02:59.080
<v Speaker 1>I T system was still these old, creaky, big iron mainframes,

0:02:59.400 --> 0:03:01.800
<v Speaker 1>some of them still running on Cobalt, which is the

0:03:01.840 --> 0:03:03.959
<v Speaker 1>programming language that I think it dates back to the

0:03:04.040 --> 0:03:08.000
<v Speaker 1>nineteen fifties or nineteen sixties. And I remember, you know,

0:03:08.120 --> 0:03:10.200
<v Speaker 1>you hear this, You hear like, oh, I can't believe

0:03:10.200 --> 0:03:13.799
<v Speaker 1>that these big banks, our entire financial system in some respects,

0:03:13.840 --> 0:03:17.080
<v Speaker 1>is still running on these legacy computer systems. But on

0:03:17.120 --> 0:03:19.440
<v Speaker 1>the other hand, if you look at what a big

0:03:19.480 --> 0:03:25.160
<v Speaker 1>bank is, it's structurally a series of mergers and acquisitions.

0:03:25.200 --> 0:03:30.000
<v Speaker 1>There used to be the no, no, that's there used

0:03:30.040 --> 0:03:33.160
<v Speaker 1>to be this great flow chart that showed the formation

0:03:33.360 --> 0:03:35.480
<v Speaker 1>of like a JP Morgan or a Bank of America,

0:03:35.600 --> 0:03:37.400
<v Speaker 1>and you can just see it's like a series of

0:03:37.480 --> 0:03:40.320
<v Speaker 1>roll ups of smaller banks, and you think every time

0:03:40.360 --> 0:03:43.720
<v Speaker 1>they acquire a new bank, they have to integrate another

0:03:43.840 --> 0:03:46.640
<v Speaker 1>system into their own system, and in the end you

0:03:46.720 --> 0:03:50.320
<v Speaker 1>kind of end up with this just incredibly like complex

0:03:50.320 --> 0:03:53.720
<v Speaker 1>and kind of patchy i T structure that in some

0:03:53.800 --> 0:03:57.960
<v Speaker 1>ways very much resembles the amalgamation of all these smaller

0:03:57.960 --> 0:04:00.560
<v Speaker 1>banks into a larger bank. There's too the right, like

0:04:00.640 --> 0:04:03.280
<v Speaker 1>you think of like banks and when they merge, it

0:04:03.400 --> 0:04:05.760
<v Speaker 1>just like okay, like you know, the capitals all merged

0:04:05.800 --> 0:04:09.080
<v Speaker 1>together and the assets, etcetera. But like, right, like none

0:04:09.120 --> 0:04:11.000
<v Speaker 1>of them are going to have like i T systems

0:04:11.000 --> 0:04:14.000
<v Speaker 1>that work perfectly together, so they're like glued together with

0:04:14.000 --> 0:04:17.360
<v Speaker 1>like duct tape and just over time. I think technical

0:04:17.440 --> 0:04:19.960
<v Speaker 1>debt is a term that software engineers, and so you

0:04:19.960 --> 0:04:23.000
<v Speaker 1>can to relate all this technical debt. And I'm surely

0:04:23.120 --> 0:04:26.640
<v Speaker 1>nobody likes it inside the bank at any level. But

0:04:26.680 --> 0:04:29.760
<v Speaker 1>I've always been curious, like, what are the economics such

0:04:29.880 --> 0:04:37.000
<v Speaker 1>that it is just so impossible for these legacy institutions, banking, airlines,

0:04:37.080 --> 0:04:42.120
<v Speaker 1>absolute public sector to like get with the times, you know, absolutely,

0:04:42.240 --> 0:04:44.160
<v Speaker 1>and when it comes to Southwest, So first of all,

0:04:44.240 --> 0:04:47.320
<v Speaker 1>let me declare a small self interest in Southwest which

0:04:47.400 --> 0:04:50.080
<v Speaker 1>is my My dad was a pilot for Southwest for

0:04:50.120 --> 0:04:52.160
<v Speaker 1>a long time and I remember when the outages were

0:04:52.200 --> 0:04:54.680
<v Speaker 1>happening this Christmas. I sent him a text going like, well,

0:04:54.680 --> 0:04:56.880
<v Speaker 1>what do you think about this? And he just said, well,

0:04:56.880 --> 0:04:58.760
<v Speaker 1>all the crew are out of position and they need

0:04:58.800 --> 0:05:02.359
<v Speaker 1>to get them back. So very straightforward ex pilot answer

0:05:02.480 --> 0:05:06.040
<v Speaker 1>about what was going on. Not that helpful for this podcast.

0:05:06.320 --> 0:05:09.599
<v Speaker 1>But I do think in the case of Southwest, this

0:05:09.640 --> 0:05:12.320
<v Speaker 1>has been a long running issue and you have had,

0:05:12.600 --> 0:05:14.960
<v Speaker 1>you know, people talking about it at various times, the

0:05:15.040 --> 0:05:18.680
<v Speaker 1>need to upgrade the infrastructure, of the technological infrastructure, and

0:05:18.760 --> 0:05:21.200
<v Speaker 1>yet it hasn't happened. And so the question is why.

0:05:21.520 --> 0:05:24.240
<v Speaker 1>The question is whether or not is it cheaper just

0:05:24.320 --> 0:05:27.280
<v Speaker 1>to keep running these old mainframes and assume that you

0:05:27.320 --> 0:05:30.840
<v Speaker 1>are going to have these outages during major events, cheaper

0:05:30.920 --> 0:05:34.320
<v Speaker 1>than it would cost to actually upgrade it. No. Absolutely, Well,

0:05:34.640 --> 0:05:38.800
<v Speaker 1>let's let's talk to somebody who knows about software and

0:05:38.880 --> 0:05:41.280
<v Speaker 1>knows about economics and can walk us through and help

0:05:41.360 --> 0:05:45.600
<v Speaker 1>us understand the problem. We're gonna be speaking with Patrick mackenzie.

0:05:46.040 --> 0:05:49.960
<v Speaker 1>He's an expert on software and infrastructure. He's a writer

0:05:50.080 --> 0:05:52.640
<v Speaker 1>of the Bits about Money newsletter and knows a lot

0:05:52.680 --> 0:05:56.839
<v Speaker 1>about finance, and he just left a stripe after six years.

0:05:56.880 --> 0:06:00.200
<v Speaker 1>He's still an adviser there. Been reading his stuff for

0:06:00.240 --> 0:06:02.039
<v Speaker 1>a long time. One of these people I was sort

0:06:02.040 --> 0:06:04.839
<v Speaker 1>of trust on almost any topic. Patrick, Thank you so

0:06:04.920 --> 0:06:07.560
<v Speaker 1>much for coming on odd lots. Thanks very much for

0:06:07.600 --> 0:06:10.320
<v Speaker 1>having me. What is the deal? Let's just start like

0:06:10.520 --> 0:06:13.680
<v Speaker 1>straight up, like why do you like, I mean Tracy

0:06:13.800 --> 0:06:17.360
<v Speaker 1>mentioned like all these institutions, they just like they swish

0:06:17.400 --> 0:06:20.080
<v Speaker 1>it all together. They sort of like tie it together

0:06:20.200 --> 0:06:23.360
<v Speaker 1>with duct tape and so forth. You get these unwieldy things.

0:06:24.080 --> 0:06:26.159
<v Speaker 1>Just like give us the high level view of like

0:06:26.600 --> 0:06:29.880
<v Speaker 1>why is it so difficult from at an abstract level

0:06:30.240 --> 0:06:35.560
<v Speaker 1>to modernize legacy software? So I'll start with a disclaimer,

0:06:35.560 --> 0:06:38.880
<v Speaker 1>which is sort of mandatory and engineering culture, we have

0:06:39.000 --> 0:06:40.880
<v Speaker 1>this thing that we've come up with over the last

0:06:41.000 --> 0:06:44.799
<v Speaker 1>course of two decades, or so called blameless postmortems, where

0:06:45.320 --> 0:06:48.440
<v Speaker 1>when there is a failure within a company where you know,

0:06:48.640 --> 0:06:50.840
<v Speaker 1>planes cannot be up in the air for a week

0:06:50.880 --> 0:06:53.120
<v Speaker 1>at a time. Rather than like trying to point the

0:06:53.160 --> 0:06:55.359
<v Speaker 1>finger at someone and say it was your decision or

0:06:55.400 --> 0:06:58.680
<v Speaker 1>your inaction that caused this event, we as engineers want

0:06:58.800 --> 0:07:01.200
<v Speaker 1>to like look at the rejective reality of the system,

0:07:01.279 --> 0:07:03.719
<v Speaker 1>figure out what went wrong for the benefit of both

0:07:03.720 --> 0:07:05.880
<v Speaker 1>that organization and for the larger community. And so this

0:07:05.920 --> 0:07:08.400
<v Speaker 1>isn't too grind their nose in it, but just you know,

0:07:08.720 --> 0:07:13.040
<v Speaker 1>as an engineering matter, what probably happened in an ideal world,

0:07:13.320 --> 0:07:15.840
<v Speaker 1>And if this had happened at a Google, for example,

0:07:15.920 --> 0:07:18.880
<v Speaker 1>the engineering teams would push, because of the culture of

0:07:18.880 --> 0:07:23.040
<v Speaker 1>these things, to do a very public postmortem of what

0:07:23.200 --> 0:07:26.320
<v Speaker 1>the decisions were, what the background is, etcetera, etcetera. In

0:07:26.360 --> 0:07:29.360
<v Speaker 1>more traditional industries, I don't think that culture is fully

0:07:29.680 --> 0:07:32.800
<v Speaker 1>baked yet as it were, although they're very well might

0:07:32.840 --> 0:07:35.920
<v Speaker 1>be a postmortem by uh, you know, the FA and

0:07:35.960 --> 0:07:39.520
<v Speaker 1>federal regulators, because you know, liveness constraint is a real

0:07:39.560 --> 0:07:43.920
<v Speaker 1>thing for extremely important economic systems like airlines. Anyhowp what

0:07:44.240 --> 0:07:48.240
<v Speaker 1>probably happened. It wouldn't surprise anyone in the bowels of

0:07:48.320 --> 0:07:51.640
<v Speaker 1>an airline that if you put off maintenance on airplanes

0:07:51.680 --> 0:07:54.080
<v Speaker 1>for decades at a time, that eventually bad things would

0:07:54.120 --> 0:07:58.400
<v Speaker 1>happen and no one would countenance that. However, software systems

0:07:58.400 --> 0:08:01.800
<v Speaker 1>are quite similar. Where aren't a build once and then

0:08:01.920 --> 0:08:04.200
<v Speaker 1>run for the rest of eternity sort of things? There

0:08:04.240 --> 0:08:06.960
<v Speaker 1>were some decisions made early in their lifetimes which share

0:08:07.040 --> 0:08:09.320
<v Speaker 1>no longer accurate for the world we live in. They

0:08:09.360 --> 0:08:12.600
<v Speaker 1>do suffer from something engineers you from misply called bit

0:08:12.720 --> 0:08:16.680
<v Speaker 1>rot where software which worked back in the past will

0:08:16.680 --> 0:08:19.640
<v Speaker 1>tend to like succumbed entropy over time and not work

0:08:19.680 --> 0:08:22.760
<v Speaker 1>exactly perfectly for all time afterwards, and so you need

0:08:22.800 --> 0:08:27.320
<v Speaker 1>to be doing a ongoing program of maintenance for your software,

0:08:27.400 --> 0:08:30.840
<v Speaker 1>just like you would for your airplanes. That bluntly was

0:08:30.960 --> 0:08:34.920
<v Speaker 1>not done, and it seems to be credibly reported that's

0:08:35.320 --> 0:08:38.320
<v Speaker 1>the sort of cultural factors at Southwest that caused that

0:08:38.360 --> 0:08:40.959
<v Speaker 1>to not be done. Might have been caused by a

0:08:41.120 --> 0:08:43.760
<v Speaker 1>sort of like overly accounting the slash penny pinching focused

0:08:43.760 --> 0:08:46.400
<v Speaker 1>management culture, which thought, well, it costs money and the

0:08:46.440 --> 0:08:49.320
<v Speaker 1>short term to do to do maintenance, we can like

0:08:49.480 --> 0:08:51.560
<v Speaker 1>cram down or engineering costs by doing less of this

0:08:51.600 --> 0:08:54.640
<v Speaker 1>and relying more on external vendors, etcetera, etcetera. And then

0:08:54.840 --> 0:08:59.000
<v Speaker 1>when stuff HiT's the oscillating plate, the right people have

0:08:59.080 --> 0:09:01.040
<v Speaker 1>not done the years of work that are required to

0:09:01.880 --> 0:09:04.560
<v Speaker 1>get to a posture where you can like quickly recover

0:09:04.640 --> 0:09:07.680
<v Speaker 1>from failures, and so they were left in a part

0:09:07.760 --> 0:09:11.000
<v Speaker 1>where we use euphemistically in the in street called heroics

0:09:11.440 --> 0:09:15.720
<v Speaker 1>was required from folks in operations trying to you know,

0:09:15.800 --> 0:09:18.839
<v Speaker 1>contact thousands and tens of thousands of employees by fille

0:09:18.880 --> 0:09:22.200
<v Speaker 1>and pass around their information and probably spreadsheets to figure

0:09:22.200 --> 0:09:24.720
<v Speaker 1>out where the crew is actually where to be able

0:09:24.720 --> 0:09:27.679
<v Speaker 1>to take the boxes that are required due to regulation

0:09:27.760 --> 0:09:30.280
<v Speaker 1>to allow people to get back and up in the air.

0:09:31.120 --> 0:09:33.720
<v Speaker 1>So that's probably the high level, like root cause of

0:09:33.720 --> 0:09:37.080
<v Speaker 1>what happened. But like a reason to conduct these postmortems

0:09:37.200 --> 0:09:40.720
<v Speaker 1>is it's there for one, like one single decision made

0:09:40.720 --> 0:09:44.280
<v Speaker 1>by one person. It's the result of cultural factors, business

0:09:44.320 --> 0:09:47.440
<v Speaker 1>decisions made over a course of probably decades in this place,

0:09:47.760 --> 0:09:49.880
<v Speaker 1>and we want to like keys out the various nuances

0:09:49.880 --> 0:09:53.520
<v Speaker 1>there and like make both Southwest and other organizations where

0:09:53.520 --> 0:09:57.040
<v Speaker 1>of that so that they don't suffer critical systemic failures

0:09:57.040 --> 0:10:00.960
<v Speaker 1>in their own places. So, first of all, bit brought

0:10:01.240 --> 0:10:03.080
<v Speaker 1>is a fantastic term that I am going to have

0:10:03.160 --> 0:10:06.120
<v Speaker 1>to try to work into all my conversations going forward.

0:10:06.520 --> 0:10:09.480
<v Speaker 1>But secondly, just to step back a bit, can you

0:10:09.520 --> 0:10:14.199
<v Speaker 1>maybe explain, you know, when we talk about mainframe computer systems,

0:10:14.640 --> 0:10:17.480
<v Speaker 1>what exactly are we talking about? And like what is

0:10:17.520 --> 0:10:21.280
<v Speaker 1>the counterpoint to mainframe. I'm assuming it's more like cloud

0:10:21.280 --> 0:10:23.800
<v Speaker 1>based applications and things like that, but could you maybe

0:10:24.120 --> 0:10:28.000
<v Speaker 1>define those that basic term very quickly. And then secondly,

0:10:28.640 --> 0:10:33.320
<v Speaker 1>my understanding of the Southwest debacle was that they had

0:10:33.480 --> 0:10:37.600
<v Speaker 1>this in house software. I think it was called sky Solver,

0:10:38.320 --> 0:10:41.679
<v Speaker 1>but it was based on an application that g E

0:10:42.040 --> 0:10:45.480
<v Speaker 1>had been selling, and then Southwest kind of customized it.

0:10:45.880 --> 0:10:48.839
<v Speaker 1>And I guess my question is how endemic is that

0:10:48.880 --> 0:10:51.719
<v Speaker 1>type of software where you get something off the shelf,

0:10:51.760 --> 0:10:53.760
<v Speaker 1>but then you customize it in such a way that

0:10:53.800 --> 0:10:57.680
<v Speaker 1>it becomes um, I guess special to you and therefore

0:10:57.920 --> 0:11:01.680
<v Speaker 1>your problem when it goes awry. So let's talk about

0:11:01.720 --> 0:11:04.080
<v Speaker 1>the the main frame first, and then we'll talk about

0:11:04.080 --> 0:11:07.120
<v Speaker 1>the problem of like who owns the problem, whether it's

0:11:07.120 --> 0:11:09.280
<v Speaker 1>your problem or some of the vendor's problem, and the

0:11:09.840 --> 0:11:12.439
<v Speaker 1>way that balls tend to end uh in the middle

0:11:12.480 --> 0:11:16.320
<v Speaker 1>of people and things get dropped. So mainframes back in

0:11:16.360 --> 0:11:19.880
<v Speaker 1>the day, many many decades ago, computers were approximately the

0:11:19.920 --> 0:11:22.160
<v Speaker 1>size of a room. This is the before the personal

0:11:22.160 --> 0:11:25.360
<v Speaker 1>computer revolution and banks, which were some of the earliest

0:11:25.360 --> 0:11:28.840
<v Speaker 1>adopters of computers for sort of scaled usage in industry.

0:11:29.040 --> 0:11:32.360
<v Speaker 1>And it's funny like the earliest users and computers tended

0:11:32.400 --> 0:11:35.400
<v Speaker 1>to be either the financial industry or the military, either

0:11:35.520 --> 0:11:38.880
<v Speaker 1>attempting to like move numbers which represented money, or numbers

0:11:38.880 --> 0:11:42.120
<v Speaker 1>which represented like literally artillery shells flying through the air,

0:11:42.440 --> 0:11:45.760
<v Speaker 1>and both were a very important society for better or worse,

0:11:45.920 --> 0:11:49.520
<v Speaker 1>Like banks because they standardized on what was the best

0:11:49.520 --> 0:11:51.600
<v Speaker 1>available technology at the time, ended up with a lot

0:11:51.640 --> 0:11:53.880
<v Speaker 1>of main frames, and they have kept those main frames

0:11:53.960 --> 0:11:56.120
<v Speaker 1>running for a good portion of seventy years now. In

0:11:56.160 --> 0:11:59.720
<v Speaker 1>some cases, as you mentioned earlier, the alternative to main frames.

0:12:00.040 --> 0:12:02.480
<v Speaker 1>Cloud is a bit of a buzzword. So there's the

0:12:02.480 --> 0:12:05.480
<v Speaker 1>personal computer form factor that you're familiar with, where something

0:12:05.480 --> 0:12:08.600
<v Speaker 1>sits on your desk. There are servers which would typically

0:12:08.640 --> 0:12:11.200
<v Speaker 1>sit in a server X somewhere, uh. And the difference

0:12:11.240 --> 0:12:14.120
<v Speaker 1>between like servers and quote unquote the cloud is like

0:12:14.440 --> 0:12:16.800
<v Speaker 1>the traditional way to manage servers would be you would

0:12:16.840 --> 0:12:19.320
<v Speaker 1>have a data center that would be owned or at

0:12:19.360 --> 0:12:21.440
<v Speaker 1>least by yourself, and you would put hardware that you

0:12:21.559 --> 0:12:24.360
<v Speaker 1>owned in that data center and in the cloud. The

0:12:24.400 --> 0:12:27.280
<v Speaker 1>cloud case, the data center is owned by Amazon or

0:12:27.320 --> 0:12:30.760
<v Speaker 1>Google or Microsoft. You have rented access to a machine

0:12:30.800 --> 0:12:34.280
<v Speaker 1>there which sits on their balance sheet and it's probably

0:12:34.280 --> 0:12:37.400
<v Speaker 1>not one machine, and it's probably like an awful lot

0:12:37.440 --> 0:12:41.480
<v Speaker 1>of machines potentially with some virtualization layer, and your engineers

0:12:41.520 --> 0:12:44.920
<v Speaker 1>can cause systems to scale up or scale down based

0:12:44.960 --> 0:12:47.280
<v Speaker 1>on how many machines you need on a you know,

0:12:47.360 --> 0:12:49.880
<v Speaker 1>minute by minute or second by second basis. Is sort

0:12:49.880 --> 0:12:51.880
<v Speaker 1>of like the high level version of the sales pitch

0:12:51.920 --> 0:12:55.199
<v Speaker 1>that cloud vendors will give you. So that is a

0:12:55.280 --> 0:12:58.240
<v Speaker 1>hey quick run through between like four generations of the

0:12:58.240 --> 0:13:01.160
<v Speaker 1>main stay of how technology gets done at scale the

0:13:01.240 --> 0:13:04.839
<v Speaker 1>question of where software gets written. So it is quite

0:13:04.880 --> 0:13:07.800
<v Speaker 1>common for businesses in the traditional economy to not have

0:13:08.000 --> 0:13:12.360
<v Speaker 1>an internal software engineering competence, and as a result, they'll

0:13:12.400 --> 0:13:15.560
<v Speaker 1>go to vendors. Like in this case, you probably know

0:13:15.600 --> 0:13:18.599
<v Speaker 1>this better than me. But for example g and the

0:13:19.200 --> 0:13:22.240
<v Speaker 1>vendor will sell quote unquote package software which might not

0:13:22.280 --> 0:13:24.320
<v Speaker 1>be fully responsive to the needs of the business, and

0:13:24.360 --> 0:13:27.800
<v Speaker 1>then some customization happens. Um what could happen is the

0:13:27.800 --> 0:13:30.680
<v Speaker 1>customization might happen within the business if they have some

0:13:30.880 --> 0:13:34.160
<v Speaker 1>level of software engineers internally. What happens more frequently in

0:13:34.200 --> 0:13:36.400
<v Speaker 1>a lot of places, particular in depend where I live,

0:13:36.800 --> 0:13:39.520
<v Speaker 1>is that the business will contract with we call them

0:13:39.520 --> 0:13:42.280
<v Speaker 1>system integrators here that may be called consultancies in America,

0:13:42.720 --> 0:13:47.880
<v Speaker 1>you know a Deloitte or a another large consulting firm

0:13:47.960 --> 0:13:52.280
<v Speaker 1>like that Accenture and say, okay, we have this package system,

0:13:52.360 --> 0:13:55.760
<v Speaker 1>we have these business requirements. Clearly some software engineers have

0:13:55.800 --> 0:13:57.800
<v Speaker 1>to be involved. We don't have enough on our staff.

0:13:57.800 --> 0:14:00.000
<v Speaker 1>Can you like figure out the missing link for us?

0:14:00.400 --> 0:14:03.600
<v Speaker 1>And so there is an ex sense of contract negotiation.

0:14:04.000 --> 0:14:07.480
<v Speaker 1>Consultancy goes off and does the customizations, and they delivered

0:14:07.480 --> 0:14:10.720
<v Speaker 1>the work to the organization. And then there are various

0:14:10.720 --> 0:14:13.120
<v Speaker 1>different ways to do maintenance, but often that will involve

0:14:13.160 --> 0:14:16.720
<v Speaker 1>the original team standing down for a while, which that

0:14:16.760 --> 0:14:19.160
<v Speaker 1>always sounds like a great idea when it's pitched, because

0:14:19.200 --> 0:14:21.320
<v Speaker 1>it's like, oh great, I don't have to pay expensive

0:14:21.320 --> 0:14:24.080
<v Speaker 1>engineers every week to just sit around waiting for something

0:14:24.120 --> 0:14:27.840
<v Speaker 1>to happen. And then when something actually happens, you sort

0:14:27.880 --> 0:14:31.080
<v Speaker 1>of like realize that the other end of the option

0:14:31.160 --> 0:14:34.600
<v Speaker 1>value there where oh not so great. I don't have

0:14:34.680 --> 0:14:37.400
<v Speaker 1>a team of like experts who understand the system, ready

0:14:37.400 --> 0:14:39.440
<v Speaker 1>to call up at a moment's notice and bring in

0:14:39.480 --> 0:14:43.040
<v Speaker 1>to debug the problems that we're seeing right now. And

0:14:43.080 --> 0:14:45.360
<v Speaker 1>so I have no specific knowledge about went in this

0:14:45.600 --> 0:14:48.600
<v Speaker 1>individual instance. But a thing that happens during a lot

0:14:48.640 --> 0:14:52.240
<v Speaker 1>of outages is uh a, you know, quick look into

0:14:52.280 --> 0:14:55.480
<v Speaker 1>the history of the system to say, hey, wait, who

0:14:55.600 --> 0:14:57.920
<v Speaker 1>actually built this for us? Are they still in business?

0:14:58.120 --> 0:15:00.720
<v Speaker 1>Can we get on their calendar immediately? Is there an

0:15:00.720 --> 0:15:03.200
<v Speaker 1>engineering team there that is ready to hop in and

0:15:03.200 --> 0:15:06.480
<v Speaker 1>work at this? Like goodness, they're going to charge us

0:15:06.600 --> 0:15:09.320
<v Speaker 1>I bleeding rates to to do it, but we're going

0:15:09.360 --> 0:15:11.320
<v Speaker 1>to have to pay that. That's a you know, tertiary

0:15:11.320 --> 0:15:14.280
<v Speaker 1>consideration at this point. The bigger consideration is like, how

0:15:14.360 --> 0:15:17.720
<v Speaker 1>quickly can we get our you know, organization to organization

0:15:17.960 --> 0:15:21.280
<v Speaker 1>like legal paperwork, etcetera, spun up? And then how quickly

0:15:21.320 --> 0:15:23.320
<v Speaker 1>can you get they get the engineering team spun up

0:15:23.320 --> 0:15:26.720
<v Speaker 1>to address the system in real time? And this sort

0:15:26.760 --> 0:15:30.120
<v Speaker 1>of thing is why the sort of like major scaled

0:15:30.560 --> 0:15:34.440
<v Speaker 1>software companies and the economy that Google, Microsoft, etcetera, etcetera,

0:15:34.480 --> 0:15:37.400
<v Speaker 1>you all know the names, largely treat engineering as an

0:15:37.400 --> 0:15:40.520
<v Speaker 1>internal competence rather than you know, the software for the

0:15:40.560 --> 0:15:43.240
<v Speaker 1>iPhone isn't built by Debloid, It's built by Apple, and

0:15:43.520 --> 0:15:46.000
<v Speaker 1>almost everything in the critical path will either be open

0:15:46.000 --> 0:15:48.480
<v Speaker 1>source or something that there is a team on Apple

0:15:48.560 --> 0:15:50.720
<v Speaker 1>that owns the sort of totality of the experience for

0:15:50.800 --> 0:16:10.720
<v Speaker 1>a goal. So something that I sort of hinted at

0:16:10.800 --> 0:16:13.320
<v Speaker 1>in the beginning, and we talked about this a little bit.

0:16:13.400 --> 0:16:16.320
<v Speaker 1>We did an episode on petroleum engineering. But I'm really

0:16:16.360 --> 0:16:20.600
<v Speaker 1>curious about like the distribution of engineering talent. Like in

0:16:20.800 --> 0:16:23.160
<v Speaker 1>my mind, I would have to imagine that a talented

0:16:23.200 --> 0:16:27.120
<v Speaker 1>engineer would be more excited to work for Stripe than Google,

0:16:27.560 --> 0:16:30.840
<v Speaker 1>and we're excited to work for Google than Deloitte, and

0:16:30.840 --> 0:16:35.160
<v Speaker 1>we're excited to work for Deloitte than Southwest. And I'm

0:16:35.240 --> 0:16:37.640
<v Speaker 1>just sort of and I'm curious, like a if that's

0:16:38.040 --> 0:16:41.920
<v Speaker 1>the case, and whether like this is a problem, and

0:16:42.000 --> 0:16:44.160
<v Speaker 1>whether like it would be better, whether it be better

0:16:44.320 --> 0:16:49.360
<v Speaker 1>if like there were just more high tech experts, software

0:16:49.400 --> 0:16:52.680
<v Speaker 1>experts who would want to work for a Southwest directly

0:16:53.120 --> 0:16:56.200
<v Speaker 1>or work for a bank directly, whether this sort of

0:16:56.240 --> 0:17:00.400
<v Speaker 1>like distribution of engineering talent contributes to software body all act.

0:17:00.920 --> 0:17:03.960
<v Speaker 1>So I have nuanced thoughts that engineering talent, on one hand,

0:17:04.080 --> 0:17:06.520
<v Speaker 1>like that is certainly thing that exists in the world,

0:17:06.600 --> 0:17:12.040
<v Speaker 1>and like talent is not necessarily distributed equally among different industries, individuals, etcetera.

0:17:12.440 --> 0:17:14.439
<v Speaker 1>On the other hand, I think that Silicon Valley and

0:17:14.520 --> 0:17:18.440
<v Speaker 1>ecosystem to which I owe a lot occasionally has an

0:17:18.480 --> 0:17:21.119
<v Speaker 1>overly enamored view of itself, thinking that, oh, yes, we

0:17:21.240 --> 0:17:23.639
<v Speaker 1>have the best engineers in the world, and all the

0:17:23.680 --> 0:17:26.040
<v Speaker 1>engineers who made every other system that we rely on

0:17:26.119 --> 0:17:28.760
<v Speaker 1>in our lives are sort of second rate, And clearly

0:17:28.800 --> 0:17:32.960
<v Speaker 1>that's not true. Like the phone system works, airplanes like

0:17:33.080 --> 0:17:35.240
<v Speaker 1>what's the old Lui kiss came on a love like

0:17:35.480 --> 0:17:38.280
<v Speaker 1>it flies through the sky and then teleports beams up

0:17:38.280 --> 0:17:41.320
<v Speaker 1>to space like none of that happened by accident, And

0:17:41.400 --> 0:17:47.399
<v Speaker 1>so it's important to not focus on like the You know,

0:17:47.520 --> 0:17:50.840
<v Speaker 1>engineers working traditional industry are worse engineers that engineers their

0:17:50.880 --> 0:17:54.679
<v Speaker 1>work in software companies. The larger problement they have is

0:17:54.880 --> 0:17:57.879
<v Speaker 1>one they don't drive the bus. They have less ability

0:17:58.000 --> 0:18:01.840
<v Speaker 1>to control the situations within their organizations and control like

0:18:02.000 --> 0:18:06.000
<v Speaker 1>larger decisions made such that they have influence over decisions

0:18:06.040 --> 0:18:08.320
<v Speaker 1>on like what the main and schedule would look like,

0:18:08.520 --> 0:18:11.240
<v Speaker 1>or who gets to make decisions with respect to whether

0:18:11.280 --> 0:18:13.960
<v Speaker 1>something ships or not. And there is a little bit

0:18:14.000 --> 0:18:16.560
<v Speaker 1>of a sort of like the life cycle of engineers

0:18:16.960 --> 0:18:19.959
<v Speaker 1>thing that happens where the original architects of the system

0:18:20.080 --> 0:18:22.760
<v Speaker 1>did it forty years ago. A careers are about as

0:18:22.800 --> 0:18:24.800
<v Speaker 1>long as they are. Many of the original architects of

0:18:24.840 --> 0:18:27.360
<v Speaker 1>the system will sort of be aging into the retirement

0:18:27.440 --> 0:18:29.480
<v Speaker 1>years at this point, and so there is a question

0:18:29.520 --> 0:18:32.040
<v Speaker 1>of did the organization put in the work over the

0:18:32.119 --> 0:18:35.400
<v Speaker 1>years to recruit newer engineers to inculcate them into how

0:18:35.400 --> 0:18:38.600
<v Speaker 1>the system is made, etcetera, etcetera, Or do they just

0:18:38.720 --> 0:18:40.720
<v Speaker 1>allow all of the knowledge to walk out the door

0:18:41.119 --> 0:18:43.480
<v Speaker 1>and did they Like I think that comes up a

0:18:43.480 --> 0:18:46.480
<v Speaker 1>lot is do they put enough work on a day

0:18:46.480 --> 0:18:49.080
<v Speaker 1>to day basis to maintain an engineering brand so that

0:18:49.119 --> 0:18:51.600
<v Speaker 1>they can get new talent engineers to join them in

0:18:52.400 --> 0:18:55.840
<v Speaker 1>three such that those engineers are the word used as

0:18:55.840 --> 0:18:59.040
<v Speaker 1>often gray beard, but you know that the wise and

0:18:59.160 --> 0:19:01.280
<v Speaker 1>veteran thirty year is from now, so that when something

0:19:01.280 --> 0:19:04.280
<v Speaker 1>happens in there are people who have been around the

0:19:04.280 --> 0:19:08.000
<v Speaker 1>black that know where the skeletons are buried in the system. Interestingly,

0:19:08.119 --> 0:19:11.320
<v Speaker 1>traditional industry is getting better over the years at having

0:19:11.320 --> 0:19:14.919
<v Speaker 1>an engineering brand, sort of moving away from this this

0:19:15.000 --> 0:19:17.639
<v Speaker 1>world where engineering was largely seen as a cost center,

0:19:18.040 --> 0:19:20.200
<v Speaker 1>where like the goal is just too cram down the

0:19:20.200 --> 0:19:22.680
<v Speaker 1>amount of money you spend on it and improve your margins.

0:19:23.080 --> 0:19:25.600
<v Speaker 1>I think there's a few things that played into that.

0:19:25.680 --> 0:19:29.040
<v Speaker 1>One of them was, particularly in the Internet age, it

0:19:29.280 --> 0:19:32.000
<v Speaker 1>became obvious that you know, in finance, you talk about

0:19:32.080 --> 0:19:34.680
<v Speaker 1>like the front office and the back office. Engineering used

0:19:34.680 --> 0:19:36.160
<v Speaker 1>to be in the back office, and the front office,

0:19:36.160 --> 0:19:38.959
<v Speaker 1>where the sales people live, is the one that generates

0:19:39.000 --> 0:19:42.240
<v Speaker 1>all the money for the bank. And increasingly, because like

0:19:42.800 --> 0:19:45.199
<v Speaker 1>experiences that were in the palm of the users hands

0:19:45.240 --> 0:19:47.520
<v Speaker 1>were the thing that we're actually generating in the sales,

0:19:48.040 --> 0:19:53.320
<v Speaker 1>those experiences became sort of institutionally important within banks and

0:19:53.359 --> 0:19:57.160
<v Speaker 1>airlines and other firms. And then when those experiences became

0:19:57.200 --> 0:20:00.800
<v Speaker 1>important took a while, but gradually the people and teams

0:20:00.840 --> 0:20:03.840
<v Speaker 1>that build those experiences became more institutionally important than they

0:20:03.840 --> 0:20:06.479
<v Speaker 1>had previously been. And so like, if you look at

0:20:06.480 --> 0:20:08.840
<v Speaker 1>the large money center banks in the US, they certainly

0:20:08.880 --> 0:20:12.440
<v Speaker 1>have no small number of technical challenges. But the thing

0:20:12.480 --> 0:20:16.560
<v Speaker 1>that is like largely true which was not true, is

0:20:16.600 --> 0:20:19.200
<v Speaker 1>that their mobile apps are actually kind of good these days.

0:20:19.359 --> 0:20:22.399
<v Speaker 1>Like if you download, you know, not to endorse anybody

0:20:22.400 --> 0:20:25.119
<v Speaker 1>in particular, but like Chase or Capital One, when you

0:20:25.119 --> 0:20:26.919
<v Speaker 1>play with their mobile apps, like, oh, this kind of

0:20:26.920 --> 0:20:29.879
<v Speaker 1>feels like a mobile app made in Silicon Valley. And

0:20:29.920 --> 0:20:31.840
<v Speaker 1>the reason is, well, yeah, they hired a lot of

0:20:31.840 --> 0:20:34.720
<v Speaker 1>people who made the apps from Silicon Valley, and those

0:20:34.760 --> 0:20:37.720
<v Speaker 1>folks brought their skills and sort of like level of

0:20:37.720 --> 0:20:40.720
<v Speaker 1>competence with this and their taste and now exercise and

0:20:40.760 --> 0:20:43.760
<v Speaker 1>on behalf of old world companies. One hopes, knock on wood,

0:20:44.000 --> 0:20:46.720
<v Speaker 1>that that seeps into the back end of these systems

0:20:46.760 --> 0:20:50.119
<v Speaker 1>to where Apple, Google, Microsoft, they have very talented teams

0:20:50.119 --> 0:20:51.680
<v Speaker 1>on the front end of their systems, but they also

0:20:51.720 --> 0:20:54.240
<v Speaker 1>have very talented teams on the back end of the systems.

0:20:54.240 --> 0:20:57.280
<v Speaker 1>And that's bluntly why you don't see like core systems

0:20:57.280 --> 0:20:58.920
<v Speaker 1>that Google going down for a week at a time

0:20:59.760 --> 0:21:02.720
<v Speaker 1>that is almost unimaginable. You know how much of capitalism

0:21:02.800 --> 0:21:05.280
<v Speaker 1>would break if Google Docs was just down for a week.

0:21:05.800 --> 0:21:07.960
<v Speaker 1>Given that there are many parts of the world where

0:21:09.320 --> 0:21:12.600
<v Speaker 1>there is a liveness constraint, we would like all else

0:21:12.680 --> 0:21:15.159
<v Speaker 1>being equal. If it is safe to fly airplanes, we

0:21:15.160 --> 0:21:17.600
<v Speaker 1>would prefer that there be airplanes flying versus all the

0:21:17.640 --> 0:21:20.879
<v Speaker 1>airplanes being on the ground, because airplanes generated valley for

0:21:20.960 --> 0:21:23.840
<v Speaker 1>human society. If that is true, then it must be

0:21:23.880 --> 0:21:27.399
<v Speaker 1>the case that the back end systems of airlines that

0:21:27.720 --> 0:21:30.680
<v Speaker 1>control whether airplanes are allowed to fly at a given time.

0:21:31.160 --> 0:21:33.440
<v Speaker 1>That has to be at least as important as you know,

0:21:33.640 --> 0:21:36.280
<v Speaker 1>Google docs is, which implies that the airlines need to

0:21:36.320 --> 0:21:39.040
<v Speaker 1>put at least as much work as Google does, roughly

0:21:39.480 --> 0:21:42.239
<v Speaker 1>into like having true mastery of their own back end

0:21:42.280 --> 0:21:45.440
<v Speaker 1>systems and the various problems that could happen there. So

0:21:45.760 --> 0:21:48.960
<v Speaker 1>just on this note, you know, there's another travel disruption

0:21:49.000 --> 0:21:51.159
<v Speaker 1>that happened recently and we haven't even mentioned it, but

0:21:51.200 --> 0:21:53.919
<v Speaker 1>that was the f a A experiencing some sort of

0:21:53.960 --> 0:21:58.760
<v Speaker 1>computer event and grounding I think all the domestic departures

0:21:58.840 --> 0:22:02.160
<v Speaker 1>for for one morning. And it was recently reported that

0:22:02.680 --> 0:22:06.240
<v Speaker 1>the approximate cause of that was because there were some

0:22:06.480 --> 0:22:10.520
<v Speaker 1>software engineers who were trying to upgrade the system and

0:22:10.560 --> 0:22:13.879
<v Speaker 1>they accidentally deleted a bunch of critical files as they

0:22:13.880 --> 0:22:15.920
<v Speaker 1>were trying to do this. Can you talk a little

0:22:15.920 --> 0:22:19.919
<v Speaker 1>bit more about the technical challenges when it comes to

0:22:20.640 --> 0:22:23.760
<v Speaker 1>trying to fix some of these legacy systems, Like why

0:22:23.920 --> 0:22:26.840
<v Speaker 1>exactly is it so difficult? You sort of talked about

0:22:26.880 --> 0:22:31.040
<v Speaker 1>it from a organizational perspective, but from a technical perspective,

0:22:31.359 --> 0:22:34.280
<v Speaker 1>why does this seem to be such a big challenge? Sure,

0:22:34.720 --> 0:22:38.240
<v Speaker 1>so that one thing is that that that symptom, the

0:22:38.240 --> 0:22:41.119
<v Speaker 1>the underlying cause is that a problem happened during an

0:22:41.200 --> 0:22:46.159
<v Speaker 1>upgrade is extremely well understood in the software engineering field.

0:22:46.520 --> 0:22:49.320
<v Speaker 1>It's called out in, among other places, Google's book about

0:22:49.480 --> 0:22:53.200
<v Speaker 1>Site Reliability Engineers, which is essentially the subcategory of engineers

0:22:53.200 --> 0:22:56.159
<v Speaker 1>that Google relies on keeping the world running. And it

0:22:56.320 --> 0:22:58.120
<v Speaker 1>is often the case that the people who are attempting

0:22:58.160 --> 0:23:01.680
<v Speaker 1>to make an incremental change do not have full context

0:23:01.720 --> 0:23:03.440
<v Speaker 1>of how the system came to be in the state

0:23:03.480 --> 0:23:06.440
<v Speaker 1>that is currently in, and a change that they thought

0:23:06.480 --> 0:23:09.400
<v Speaker 1>will have a limited sort of area of impact ends

0:23:09.440 --> 0:23:11.800
<v Speaker 1>up having a larger area of impact. The term of

0:23:11.920 --> 0:23:14.399
<v Speaker 1>art we use in the industry is blast radius. Like

0:23:14.560 --> 0:23:16.919
<v Speaker 1>you you hope to quantify the amount of blast radius

0:23:16.960 --> 0:23:19.080
<v Speaker 1>of something that goes wrong, such that you know, if

0:23:19.080 --> 0:23:21.640
<v Speaker 1>I'm make a mistake, am I going to like bring

0:23:21.680 --> 0:23:23.680
<v Speaker 1>down our blog? Or am I going to bring down

0:23:23.720 --> 0:23:26.600
<v Speaker 1>like credit card processing worldwide? And you know, be much

0:23:26.600 --> 0:23:29.320
<v Speaker 1>more careful if the blast radius includes like worldwide credit

0:23:29.320 --> 0:23:32.320
<v Speaker 1>card processing plausibly, like you should engineer systems such that

0:23:32.359 --> 0:23:34.520
<v Speaker 1>there's no way to take down worldwide credit card process

0:23:34.640 --> 0:23:37.520
<v Speaker 1>but that's actually harder to do, then then it just sounds.

0:23:37.600 --> 0:23:40.600
<v Speaker 1>So anyhow, how do you does one get to the

0:23:40.600 --> 0:23:44.199
<v Speaker 1>point where it is difficult to understand, like what the

0:23:44.240 --> 0:23:47.080
<v Speaker 1>implications of the changes who make and truly are These

0:23:47.119 --> 0:23:49.600
<v Speaker 1>are like meat and potatoes questions, and then the meat

0:23:49.600 --> 0:23:52.080
<v Speaker 1>and potato's answers are often things like was the system

0:23:52.119 --> 0:23:55.280
<v Speaker 1>adequately documented when it was made? Frequently the answer is no,

0:23:55.880 --> 0:23:59.520
<v Speaker 1>and a lot of information about like how systems are

0:23:59.520 --> 0:24:03.280
<v Speaker 1>put together survives this oral lore within the engineering teamate

0:24:03.320 --> 0:24:08.160
<v Speaker 1>various companies, which, yeah, that's an uncomfortable bit of information

0:24:08.200 --> 0:24:10.240
<v Speaker 1>to holding your head when you start talking about like

0:24:10.359 --> 0:24:13.640
<v Speaker 1>the life cycle engineers and the fact that the original

0:24:13.720 --> 0:24:16.080
<v Speaker 1>architects of many of these systems are like literally no

0:24:16.119 --> 0:24:19.080
<v Speaker 1>longer with us, either because they have retired or they

0:24:19.160 --> 0:24:22.639
<v Speaker 1>might be like um, beyond our ability to call up

0:24:22.680 --> 0:24:26.199
<v Speaker 1>out of retirement at this point, and so you have

0:24:26.280 --> 0:24:29.320
<v Speaker 1>to write down what you do. And that concept was

0:24:29.359 --> 0:24:33.240
<v Speaker 1>not like new to governments and bureaucracies as a result

0:24:33.280 --> 0:24:37.000
<v Speaker 1>of software engineering happening in the last seventy years, sort

0:24:37.000 --> 0:24:40.080
<v Speaker 1>of fundamental to the operation of large organizations. Software is

0:24:40.119 --> 0:24:42.760
<v Speaker 1>just how people choose to do work with each other,

0:24:43.040 --> 0:24:46.760
<v Speaker 1>but is a lesson that we keep relearning there is

0:24:46.840 --> 0:24:49.919
<v Speaker 1>often that issue where because software is how people an

0:24:50.040 --> 0:24:53.280
<v Speaker 1>organization choose to work with each other, often software will

0:24:53.359 --> 0:24:56.520
<v Speaker 1>interface various systems together and problems will happen at the

0:24:56.520 --> 0:25:00.600
<v Speaker 1>boundaries between systems, either between literal computer systems or between

0:25:00.960 --> 0:25:04.879
<v Speaker 1>other breakages between organizations. So the thing that you will

0:25:04.920 --> 0:25:09.640
<v Speaker 1>see frequently is my software didn't fail. Your software didn't fail.

0:25:09.800 --> 0:25:14.120
<v Speaker 1>We mutually failed together at that point where where we are,

0:25:14.440 --> 0:25:17.200
<v Speaker 1>you know, supposed to transfer information and then both sides

0:25:17.240 --> 0:25:20.960
<v Speaker 1>end up pointing their their at their counterparty. And so

0:25:21.400 --> 0:25:24.560
<v Speaker 1>part of the discipline of software engineering is one like

0:25:24.800 --> 0:25:27.040
<v Speaker 1>creating a culture where you don't want to point fingers

0:25:27.040 --> 0:25:30.359
<v Speaker 1>of the counterparty into creating structures and incentives such that,

0:25:30.920 --> 0:25:33.600
<v Speaker 1>you know, like complex systems that involved multiple different parties

0:25:33.640 --> 0:25:35.840
<v Speaker 1>with multiple different engineering teams who might not report to

0:25:35.880 --> 0:25:39.760
<v Speaker 1>the same payerial department will like converge on correct outcomes.

0:25:40.200 --> 0:25:42.359
<v Speaker 1>And there are a variety of ways to do that

0:25:42.400 --> 0:25:44.960
<v Speaker 1>in the industry. Some of them are better than others.

0:25:45.160 --> 0:25:50.680
<v Speaker 1>So without like naming the particular company, there exists to

0:25:50.760 --> 0:25:56.040
<v Speaker 1>credit card system which is extremely so credit card systems

0:25:56.160 --> 0:25:59.080
<v Speaker 1>as a baseline are extremely reliable. You probably don't remember

0:25:59.119 --> 0:26:00.639
<v Speaker 1>the last time that you were unable to use a

0:26:00.640 --> 0:26:03.280
<v Speaker 1>credit card for a week, because like literally that does

0:26:03.320 --> 0:26:07.120
<v Speaker 1>not happen. So like a plus plus for achieving that outcome.

0:26:07.480 --> 0:26:10.040
<v Speaker 1>What one credit card company does to achieve that is

0:26:10.200 --> 0:26:13.040
<v Speaker 1>they are willing to make changes for their system precisely

0:26:13.119 --> 0:26:16.320
<v Speaker 1>twice a year, after six months of testing every change

0:26:16.560 --> 0:26:20.960
<v Speaker 1>that they make. That's an incredible amount of upfront work

0:26:21.040 --> 0:26:24.800
<v Speaker 1>to do, like relatively small amounts of engineering, and so

0:26:25.119 --> 0:26:29.080
<v Speaker 1>the pace at which that ecosystem evolves is much much

0:26:29.080 --> 0:26:33.200
<v Speaker 1>slower than more software forward company is like Google, App, Apple,

0:26:33.280 --> 0:26:36.399
<v Speaker 1>ms on, etcetera, etcetera, where they're shipping thousands of changes

0:26:36.440 --> 0:26:39.120
<v Speaker 1>to their systems every day. So one of the interesting

0:26:39.160 --> 0:26:42.680
<v Speaker 1>bits about the remixing the skills and techniques of Silicon

0:26:42.760 --> 0:26:45.919
<v Speaker 1>Valley is attempting to get people who are comfortable with

0:26:45.960 --> 0:26:48.600
<v Speaker 1>the engineering practices that allow you to ship software thousands

0:26:48.600 --> 0:26:52.040
<v Speaker 1>of times a day into positions of authority at old

0:26:52.080 --> 0:26:55.359
<v Speaker 1>line companies such that they can gradually transition from you know,

0:26:55.400 --> 0:26:57.560
<v Speaker 1>the point that they're at where they might be able

0:26:57.600 --> 0:27:00.560
<v Speaker 1>to ship software once or twice a year, maybe quarterly,

0:27:00.600 --> 0:27:02.960
<v Speaker 1>to the point where they will be shipping software like

0:27:03.600 --> 0:27:23.520
<v Speaker 1>let's start with by week move up from there. So

0:27:23.680 --> 0:27:26.760
<v Speaker 1>we've been talking a lot about like failures or sort

0:27:26.800 --> 0:27:28.879
<v Speaker 1>of like collapses. But the other thing that I like

0:27:28.960 --> 0:27:32.679
<v Speaker 1>sort of associate with large business software is just like

0:27:33.080 --> 0:27:36.640
<v Speaker 1>the user the user experience is just not as good.

0:27:36.760 --> 0:27:38.679
<v Speaker 1>And I think that was, you know, the sort of

0:27:38.680 --> 0:27:41.679
<v Speaker 1>like the u X I believe was part of the

0:27:41.760 --> 0:27:45.320
<v Speaker 1>story with like the infamous like city error where they

0:27:45.400 --> 0:27:49.919
<v Speaker 1>transmitted nine million dollars they shouldn't have to some counterparties,

0:27:49.920 --> 0:27:52.400
<v Speaker 1>and I think some of the users were confused by

0:27:52.400 --> 0:27:55.520
<v Speaker 1>the internal software, whether they were actually sending that or not.

0:27:56.119 --> 0:27:59.200
<v Speaker 1>I heard story from someone who worked at the VCR

0:27:59.359 --> 0:28:02.720
<v Speaker 1>once of a major bank about like the hoops that

0:28:02.800 --> 0:28:05.159
<v Speaker 1>they have to go through just to share documents with

0:28:05.200 --> 0:28:08.720
<v Speaker 1>each other like power points, because they get flagged off.

0:28:08.760 --> 0:28:11.320
<v Speaker 1>And internally I assume that there's some sort of like

0:28:11.560 --> 0:28:16.439
<v Speaker 1>regulatory issues or booking travel, like you know, going to

0:28:16.520 --> 0:28:20.239
<v Speaker 1>like booking dot com is really easy when Tracy and

0:28:20.280 --> 0:28:23.120
<v Speaker 1>I book travel for work here, it's not that bad.

0:28:23.200 --> 0:28:27.000
<v Speaker 1>But like the usability of the software, internally, it's not

0:28:27.119 --> 0:28:32.640
<v Speaker 1>as smooth and snappy as consumer travel sides. Why is that?

0:28:32.880 --> 0:28:35.280
<v Speaker 1>Like what is why is this sort of like business

0:28:35.320 --> 0:28:38.840
<v Speaker 1>software internally just like is not as uh, you know, yeah,

0:28:38.920 --> 0:28:41.960
<v Speaker 1>easy to use and sort of visually appealing as the

0:28:42.000 --> 0:28:45.880
<v Speaker 1>consumer internet. So this is getting better over time, and

0:28:45.920 --> 0:28:48.040
<v Speaker 1>we'll talk about that in a moment, but broadly, like

0:28:48.160 --> 0:28:51.720
<v Speaker 1>your your observation is entirely accurate. If you were the

0:28:51.760 --> 0:28:56.920
<v Speaker 1>softwares are for the entire world, you might like rank

0:28:57.000 --> 0:28:59.960
<v Speaker 1>applications by their importance to the world and say, okay,

0:29:00.160 --> 0:29:02.840
<v Speaker 1>if you were an online application on someone's phone that

0:29:02.880 --> 0:29:05.960
<v Speaker 1>allows someone to share cat photos, it's like important in

0:29:06.000 --> 0:29:08.400
<v Speaker 1>some sense, but probably not as important as sending a

0:29:08.400 --> 0:29:10.880
<v Speaker 1>billion dollars outside of a bank, And so we would

0:29:10.880 --> 0:29:13.400
<v Speaker 1>have a lot more talent and time spent on the

0:29:13.480 --> 0:29:16.080
<v Speaker 1>question of can you send a billion dollars out of

0:29:16.080 --> 0:29:18.680
<v Speaker 1>a bank? Versus does a thirteen year old have an

0:29:18.680 --> 0:29:22.600
<v Speaker 1>awesome experience when sending a cat photo? In actual fact,

0:29:22.640 --> 0:29:25.800
<v Speaker 1>though much much more time and talent is spent the

0:29:25.840 --> 0:29:28.080
<v Speaker 1>cat photo question, that is spent on the like wiring

0:29:28.080 --> 0:29:31.200
<v Speaker 1>billions of dollars out of banks question, that was a choice.

0:29:31.680 --> 0:29:34.400
<v Speaker 1>It sounds silly to say maybe we should stop choosing

0:29:34.440 --> 0:29:38.520
<v Speaker 1>stupid things, but the the like true answer is business

0:29:38.560 --> 0:29:42.880
<v Speaker 1>software gets better when the you know, people and organizations

0:29:42.920 --> 0:29:45.920
<v Speaker 1>that cause that software to be built, choose that the

0:29:46.000 --> 0:29:48.160
<v Speaker 1>quality of that software is something that is very relevant

0:29:48.160 --> 0:29:51.040
<v Speaker 1>to their interests. And so one way to like come

0:29:51.040 --> 0:29:53.240
<v Speaker 1>to the realization is to lose a billion dollars and

0:29:53.280 --> 0:29:57.080
<v Speaker 1>then you know, hopefully the next time you're level engineering

0:29:57.120 --> 0:29:59.160
<v Speaker 1>management says we should spend a little more on maintenance,

0:29:59.560 --> 0:30:01.800
<v Speaker 1>you will say, yes, I agree with you, we should

0:30:01.800 --> 0:30:04.320
<v Speaker 1>spend a little more on maintenance versus taking another billion

0:30:04.320 --> 0:30:07.360
<v Speaker 1>dollar charge at a time, not of our choosing. Part

0:30:07.360 --> 0:30:10.080
<v Speaker 1>of it is just the culture of quality coming back

0:30:10.120 --> 0:30:12.640
<v Speaker 1>to these things. Part of it is also through sort

0:30:12.680 --> 0:30:16.240
<v Speaker 1>of teaching the user inside of organizations that software doesn't

0:30:16.280 --> 0:30:19.800
<v Speaker 1>have to be terrible because most software in the world

0:30:20.040 --> 0:30:24.680
<v Speaker 1>exists inside of companies and runs business processes. There's something

0:30:24.720 --> 0:30:27.240
<v Speaker 1>that is not broadly known, but like, of all the

0:30:27.280 --> 0:30:30.280
<v Speaker 1>lines of software in the world, most exist inside of companies,

0:30:30.600 --> 0:30:33.520
<v Speaker 1>and for a very long time, because most software people

0:30:33.560 --> 0:30:36.480
<v Speaker 1>interacted with was after employer and it was generally kind

0:30:36.480 --> 0:30:39.400
<v Speaker 1>of terrible. They just had an image like software is

0:30:39.440 --> 0:30:42.960
<v Speaker 1>like generally kind of terrible. And then the iPhone came around.

0:30:43.040 --> 0:30:45.920
<v Speaker 1>Everyone has a powerful computer in their hand. For x

0:30:46.000 --> 0:30:49.120
<v Speaker 1>number of hours a day, you've used applications you've tapped

0:30:49.160 --> 0:30:52.000
<v Speaker 1>three times, and you know, interesting things happened in the world.

0:30:52.000 --> 0:30:53.640
<v Speaker 1>There's a result of you tapping three times and you

0:30:53.720 --> 0:30:56.120
<v Speaker 1>broadly like the experience, and then you go back to

0:30:56.120 --> 0:30:59.520
<v Speaker 1>work and say, wait, I've used software that doesn't suck.

0:31:00.080 --> 0:31:02.080
<v Speaker 1>All the stuff I use at work sucks. Hey, I

0:31:02.160 --> 0:31:05.880
<v Speaker 1>t department, Hey senior management, can you please make like

0:31:06.080 --> 0:31:09.720
<v Speaker 1>our expense tracking software not be terrible? And that is

0:31:09.720 --> 0:31:12.200
<v Speaker 1>starting to happen built as a result of like internal

0:31:12.240 --> 0:31:15.200
<v Speaker 1>software producers advocating for change, the result of that user

0:31:15.200 --> 0:31:18.200
<v Speaker 1>feedback within companies, and also as a result of various

0:31:18.200 --> 0:31:22.200
<v Speaker 1>startups happening to say, like, not to throw a particular

0:31:22.320 --> 0:31:24.800
<v Speaker 1>expense solution under the bus, but the thing that most

0:31:24.840 --> 0:31:28.000
<v Speaker 1>like oldline economy companies probably use is not a thing

0:31:28.040 --> 0:31:30.360
<v Speaker 1>that people love using to book their travel. And if

0:31:30.360 --> 0:31:32.680
<v Speaker 1>you you know, use trip actions or something that is

0:31:32.680 --> 0:31:37.280
<v Speaker 1>designed by a modern team with modern sort of ux offordances,

0:31:37.600 --> 0:31:40.280
<v Speaker 1>it's a much nicer solution for the end user. And

0:31:40.960 --> 0:31:43.480
<v Speaker 1>in some companies, end users are starting to have some

0:31:43.600 --> 0:31:47.040
<v Speaker 1>level of ability to advocate for what software gets adopted,

0:31:47.080 --> 0:31:50.200
<v Speaker 1>whereas previously that was made by processes that were not

0:31:50.320 --> 0:31:54.360
<v Speaker 1>user centric, where which team was better at doing whining

0:31:54.400 --> 0:31:56.720
<v Speaker 1>and dining the person in charge of the purchase and

0:31:56.760 --> 0:31:59.400
<v Speaker 1>decision and not winning on the basis of product quality.

0:31:59.680 --> 0:32:02.880
<v Speaker 1>And the couple of years, even like some enterprise software

0:32:02.880 --> 0:32:04.920
<v Speaker 1>is starting to win largely end the basis of product

0:32:05.000 --> 0:32:07.880
<v Speaker 1>quality versus on sort of the more traditional sales motion,

0:32:07.880 --> 0:32:10.520
<v Speaker 1>although goodness knows that the traditional sales motion is still

0:32:10.600 --> 0:32:14.840
<v Speaker 1>very important to enterprise software companies. So I have a

0:32:14.920 --> 0:32:17.920
<v Speaker 1>slightly weird question, but I'm thinking a lot about it

0:32:18.000 --> 0:32:20.880
<v Speaker 1>as as we have this conversation. But it feels to me,

0:32:21.440 --> 0:32:25.920
<v Speaker 1>like software engineering and computer programming, it always seems to

0:32:26.040 --> 0:32:29.480
<v Speaker 1>be in flux. Like if your job is a software engineer,

0:32:29.640 --> 0:32:32.320
<v Speaker 1>it feels like there's always something to do. You're always

0:32:32.320 --> 0:32:36.600
<v Speaker 1>trying to fix a problem or adapt a system. And

0:32:36.680 --> 0:32:39.160
<v Speaker 1>I guess, I guess my question is why you know?

0:32:39.200 --> 0:32:42.200
<v Speaker 1>I fully admit my own programming experience is confined to

0:32:42.360 --> 0:32:46.320
<v Speaker 1>like HTML, which I learned from that website HTML goodies

0:32:46.480 --> 0:32:51.880
<v Speaker 1>in like But back then, you know, you program your website,

0:32:52.040 --> 0:32:55.160
<v Speaker 1>you design it in HTML, you release it into the wild,

0:32:55.320 --> 0:32:58.320
<v Speaker 1>and you're kind of done. And yet it seems with

0:32:58.360 --> 0:33:02.160
<v Speaker 1>these large scale systems that there's always change, something is

0:33:02.200 --> 0:33:06.680
<v Speaker 1>always in motion. Something is always influx. Why is that? So,

0:33:06.880 --> 0:33:08.880
<v Speaker 1>let me push back a tiny bit on this year,

0:33:09.280 --> 0:33:12.080
<v Speaker 1>Like how many years have we had lawyers available? And

0:33:12.320 --> 0:33:14.320
<v Speaker 1>does anyone ever go up to the lawyers and say, like,

0:33:14.600 --> 0:33:17.320
<v Speaker 1>come on, guys, it's three haven't you like figured out

0:33:17.480 --> 0:33:23.320
<v Speaker 1>all the laws? Yeah? And so why does the law

0:33:23.400 --> 0:33:25.200
<v Speaker 1>change on a week to week basis? Well, it doesn't

0:33:25.280 --> 0:33:28.160
<v Speaker 1>change per se. It's just the world is complicated. The

0:33:28.240 --> 0:33:32.000
<v Speaker 1>number of commercial relationships between organizations is increasing all the time.

0:33:32.080 --> 0:33:35.120
<v Speaker 1>We have increasing demands on what those relationships will do.

0:33:35.240 --> 0:33:37.280
<v Speaker 1>And the job of lawyers is to adapt to that

0:33:37.760 --> 0:33:41.560
<v Speaker 1>increasingly complex world every weekend, continue delivering like the law

0:33:41.680 --> 0:33:44.160
<v Speaker 1>that society needs and the outcomes that come as a

0:33:44.200 --> 0:33:48.280
<v Speaker 1>result of like competently executing on the ability of organizations

0:33:48.320 --> 0:33:51.800
<v Speaker 1>to collaborate internally with their employees and with other organizations.

0:33:52.000 --> 0:33:55.280
<v Speaker 1>What's my answer for software engineering, Well, software engineers, they

0:33:55.320 --> 0:33:58.720
<v Speaker 1>are you know, working this week on increasingly complex world

0:33:58.760 --> 0:34:01.560
<v Speaker 1>where software is more leverage than it had even last week,

0:34:01.560 --> 0:34:04.760
<v Speaker 1>where they're increasing demands on the world, etcetera, etcetera, etcetera.

0:34:05.400 --> 0:34:06.800
<v Speaker 1>Is there going to be a time where the last

0:34:06.800 --> 0:34:09.120
<v Speaker 1>line of software is written? Probably not. There will never

0:34:09.200 --> 0:34:11.279
<v Speaker 1>be a last a bit of software written. There will

0:34:11.280 --> 0:34:12.960
<v Speaker 1>never be a less contract written, there will never be

0:34:13.040 --> 0:34:16.359
<v Speaker 1>a last book written. Because humans want more things out

0:34:16.360 --> 0:34:18.800
<v Speaker 1>of the world than we have, kind of like infinite

0:34:18.880 --> 0:34:22.520
<v Speaker 1>capacity for want. At the margin, there was a compelling answer,

0:34:22.920 --> 0:34:24.520
<v Speaker 1>can you talk a little bit about you know, we've

0:34:24.520 --> 0:34:28.520
<v Speaker 1>been talking about banks, airlines for startups. Can you tell

0:34:28.640 --> 0:34:32.160
<v Speaker 1>us like, how are the challenges for the public sector?

0:34:32.400 --> 0:34:34.719
<v Speaker 1>And I remember like Obamba had a thing about like

0:34:34.760 --> 0:34:37.520
<v Speaker 1>I want to like bring government websites or government tech

0:34:37.560 --> 0:34:40.360
<v Speaker 1>and the modern age. It just seems like whatever problems

0:34:40.400 --> 0:34:43.600
<v Speaker 1>exist for big companies seemed to be even worse or

0:34:43.719 --> 0:34:46.439
<v Speaker 1>more tricky when you're dealing with the public sector. Could

0:34:46.480 --> 0:34:50.000
<v Speaker 1>I think at one point, at one point, New Jersey

0:34:50.160 --> 0:34:54.279
<v Speaker 1>was explicitly like begging the Internet for cobal programmers, wasn't it.

0:34:54.280 --> 0:34:58.040
<v Speaker 1>In I think that was a thing that happened. Yeah,

0:34:58.200 --> 0:35:01.839
<v Speaker 1>so full disclosure here at today UH nonprofit organization. Last

0:35:01.880 --> 0:35:03.560
<v Speaker 1>year where a few of us in the tech industry

0:35:03.560 --> 0:35:08.160
<v Speaker 1>abandoned together to work on the vaccine location information infrastructure

0:35:08.200 --> 0:35:11.520
<v Speaker 1>for the United States because the public sector was having

0:35:11.560 --> 0:35:14.840
<v Speaker 1>a great deal of difficulty creating websites that would track

0:35:14.880 --> 0:35:17.520
<v Speaker 1>where the vaccine was and route vaccine sekers to it.

0:35:17.840 --> 0:35:21.040
<v Speaker 1>So have lots of thoughts here, so many issues. Again,

0:35:21.320 --> 0:35:24.800
<v Speaker 1>we did not wake up in three with these issues magically.

0:35:24.840 --> 0:35:27.160
<v Speaker 1>It's a result of like decisions that we've collectively made

0:35:27.200 --> 0:35:30.520
<v Speaker 1>as a society go for many years. One decision that

0:35:30.560 --> 0:35:33.720
<v Speaker 1>we've made in the United States in particulars that government

0:35:33.760 --> 0:35:36.080
<v Speaker 1>pay of scales are what they are. If you compare

0:35:36.080 --> 0:35:39.200
<v Speaker 1>those government pay scales to what private industry pays for technologists,

0:35:39.520 --> 0:35:43.400
<v Speaker 1>they are sharply out of whack. And so then you know,

0:35:43.440 --> 0:35:46.360
<v Speaker 1>if you look at GS whatever, the highest paid public

0:35:46.360 --> 0:35:49.480
<v Speaker 1>sector employees in the United States make less than Google

0:35:49.560 --> 0:35:52.799
<v Speaker 1>uh interns. To help for the equilibrium, if you can

0:35:52.840 --> 0:35:55.640
<v Speaker 1>get hired by Google, you know, it would require you

0:35:55.719 --> 0:36:01.200
<v Speaker 1>to really does matter in this realm, right. And one

0:36:01.239 --> 0:36:02.840
<v Speaker 1>of the things that the government has been attempting to

0:36:02.880 --> 0:36:05.319
<v Speaker 1>do over the years to create things where there are

0:36:05.360 --> 0:36:11.359
<v Speaker 1>groups of people who are like officially their government employees. Unofficially,

0:36:12.040 --> 0:36:14.520
<v Speaker 1>I think they're sort of doing an active service to

0:36:14.560 --> 0:36:18.319
<v Speaker 1>the nation in places like the Digital Services Agency, etcetera, etcetera,

0:36:18.360 --> 0:36:20.759
<v Speaker 1>where they already made their money in tech there now

0:36:20.800 --> 0:36:23.560
<v Speaker 1>on the GS whatever and making a fraction of what

0:36:23.600 --> 0:36:27.040
<v Speaker 1>they previously made, but are contributing software expertise to these

0:36:27.120 --> 0:36:30.000
<v Speaker 1>various problems, where like what the government needs is like

0:36:30.040 --> 0:36:32.880
<v Speaker 1>some competent software written, and that requires having competent software

0:36:32.880 --> 0:36:36.480
<v Speaker 1>people available in quantity. Another issue that governments have is

0:36:36.520 --> 0:36:39.560
<v Speaker 1>like what is the true goal you are solving for?

0:36:40.239 --> 0:36:42.840
<v Speaker 1>Without getting too political about it, In some parts of

0:36:42.880 --> 0:36:47.520
<v Speaker 1>the government, like, you know, an organization might exist as

0:36:47.600 --> 0:36:53.520
<v Speaker 1>largely a job's program, and i T modernization might sharply

0:36:54.520 --> 0:36:57.719
<v Speaker 1>decrease the effectiveness of that organization at employing a large

0:36:57.800 --> 0:37:01.160
<v Speaker 1>number of people to like repeatedly to a process that

0:37:01.400 --> 0:37:04.200
<v Speaker 1>a machine could do in a faster fashion. And so

0:37:04.320 --> 0:37:07.400
<v Speaker 1>sometimes like the the powers that be with an organization

0:37:07.480 --> 0:37:10.719
<v Speaker 1>so like, well, you know, I don't necessarily consider i

0:37:10.800 --> 0:37:13.240
<v Speaker 1>T modernization one of my top priorities at the moment,

0:37:13.560 --> 0:37:16.160
<v Speaker 1>because that would cause me to need to break faith

0:37:16.200 --> 0:37:18.400
<v Speaker 1>with a number of people that that I employees slash.

0:37:18.719 --> 0:37:22.040
<v Speaker 1>You know, sometimes my own career trajectory as a bureaucrat

0:37:22.120 --> 0:37:24.399
<v Speaker 1>is and this is true within private industry as well.

0:37:24.719 --> 0:37:27.239
<v Speaker 1>You know, there's a bit of empire building involved where

0:37:27.320 --> 0:37:30.360
<v Speaker 1>you want your number of people that you manage and

0:37:30.360 --> 0:37:32.040
<v Speaker 1>your budgets to go up every year, and you don't

0:37:32.080 --> 0:37:34.960
<v Speaker 1>want to say, okay, like I've solved my problems, so

0:37:35.120 --> 0:37:37.200
<v Speaker 1>I can deal with five percent as much budget next year,

0:37:37.239 --> 0:37:40.879
<v Speaker 1>thank you. That is incentive incompatible. That's not great from

0:37:40.880 --> 0:37:43.440
<v Speaker 1>the perspective of the parts of society which aren't employed

0:37:43.440 --> 0:37:46.480
<v Speaker 1>by government, but which nonetheless dependent on government for you know,

0:37:46.560 --> 0:37:49.000
<v Speaker 1>providing goods and services. And so this is ultimately a

0:37:49.080 --> 0:37:51.360
<v Speaker 1>thing that we have to resolve through the political system

0:37:51.400 --> 0:37:54.839
<v Speaker 1>on pushing back a little bit on saying like, hey,

0:37:55.200 --> 0:37:57.040
<v Speaker 1>you kind of have to be good at what you do,

0:37:57.320 --> 0:37:59.960
<v Speaker 1>and these days that involves making software that is also

0:38:00.080 --> 0:38:02.040
<v Speaker 1>good at what you do. I have no magic bullet

0:38:02.080 --> 0:38:05.040
<v Speaker 1>for how to cause that to be a you know,

0:38:05.200 --> 0:38:08.200
<v Speaker 1>a stunning rallying cry for political parties, but probably something

0:38:08.239 --> 0:38:10.320
<v Speaker 1>that needs to get said in a lot of places

0:38:10.719 --> 0:38:14.719
<v Speaker 1>for enough decades until the message thinks in Patrick, this

0:38:14.800 --> 0:38:17.160
<v Speaker 1>has been an amazing conversation, and I feel like a

0:38:17.560 --> 0:38:19.359
<v Speaker 1>I already want to have you back and be like

0:38:19.440 --> 0:38:21.799
<v Speaker 1>almost each one of your answers could be like it's

0:38:22.000 --> 0:38:25.520
<v Speaker 1>or like have a full conversation. I have one last question,

0:38:25.600 --> 0:38:28.719
<v Speaker 1>how does bit rot happen? And I mean, like you know,

0:38:28.800 --> 0:38:31.320
<v Speaker 1>even I like you know, you like, go away on

0:38:31.440 --> 0:38:33.240
<v Speaker 1>vacation for two weeks, you come back to your office

0:38:33.280 --> 0:38:36.320
<v Speaker 1>computer and like, face are weird and sort of jaki,

0:38:36.520 --> 0:38:39.000
<v Speaker 1>they don't quite work the same, Like what is that process?

0:38:39.000 --> 0:38:41.920
<v Speaker 1>Because you would think that just like words on a database,

0:38:42.040 --> 0:38:44.399
<v Speaker 1>like what did rot? So what's actually going on there?

0:38:45.120 --> 0:38:47.799
<v Speaker 1>So the sardonic but true answer that you have to

0:38:47.800 --> 0:38:49.720
<v Speaker 1>think of its scale is like bits in a computer

0:38:49.760 --> 0:38:53.040
<v Speaker 1>can literally flipped by gamma rays coming from outer space

0:38:53.080 --> 0:38:56.200
<v Speaker 1>that interact with like the physical manifestation of your your

0:38:56.239 --> 0:38:58.080
<v Speaker 1>memory in the computer. And that's one cause of this

0:38:58.480 --> 0:39:01.120
<v Speaker 1>that's true. That does happen, and that isn't like the

0:39:01.160 --> 0:39:04.520
<v Speaker 1>dominant thing that happens. The dominant thing that happens is

0:39:04.800 --> 0:39:08.919
<v Speaker 1>like there exists change in the broader system that must

0:39:08.920 --> 0:39:11.879
<v Speaker 1>happen on any given basis. Change is a sort of risk.

0:39:12.200 --> 0:39:14.600
<v Speaker 1>It is not always managed well. Um. This gets back

0:39:14.640 --> 0:39:17.960
<v Speaker 1>to that's like a commanding majority of systemic downtime at

0:39:17.960 --> 0:39:21.240
<v Speaker 1>well managed software companies is caused by attempts to upgrade

0:39:21.239 --> 0:39:23.880
<v Speaker 1>the system that go less than optimally. Is the thing

0:39:23.920 --> 0:39:26.839
<v Speaker 1>that is amenable to study, Like a bit happens in

0:39:26.880 --> 0:39:32.560
<v Speaker 1>some cases because you know you had a constellation of software, etcetera.

0:39:32.640 --> 0:39:35.880
<v Speaker 1>Installed on your machine and installed on other machines that

0:39:35.920 --> 0:39:39.120
<v Speaker 1>your machine connected to, which was working. You might say

0:39:39.160 --> 0:39:42.600
<v Speaker 1>exactly perfectly, exactly perfect because unknown as software, but like

0:39:42.719 --> 0:39:46.720
<v Speaker 1>it was working right now. Something about the constellation changed

0:39:46.800 --> 0:39:49.120
<v Speaker 1>as a result of a decision made about a machine

0:39:49.160 --> 0:39:51.800
<v Speaker 1>that is not directly under your control, and that decision

0:39:52.000 --> 0:39:54.680
<v Speaker 1>must be made at scale in the economy because software

0:39:54.719 --> 0:39:59.000
<v Speaker 1>can't be software can't allow to be static to deliver

0:39:59.120 --> 0:40:01.640
<v Speaker 1>the things that we want from software. Is a society,

0:40:02.000 --> 0:40:04.480
<v Speaker 1>and then that change caused some other part of the

0:40:04.520 --> 0:40:07.800
<v Speaker 1>system to behave in a less great manner, and then eventually,

0:40:07.960 --> 0:40:09.600
<v Speaker 1>you know, you see the ripple effects of it in

0:40:09.680 --> 0:40:12.680
<v Speaker 1>your daily life. That's the dominant way bit rot happens.

0:40:12.920 --> 0:40:15.279
<v Speaker 1>It is not the bits actually getting corrupted over time,

0:40:15.440 --> 0:40:17.640
<v Speaker 1>but again a thing that does happen, and we have

0:40:17.680 --> 0:40:20.920
<v Speaker 1>things in engineering to control against that. Well, Patrick, you

0:40:20.920 --> 0:40:24.279
<v Speaker 1>are the perfect guest for this topic. Really appreciate you

0:40:24.360 --> 0:40:26.600
<v Speaker 1>coming out on odd locks. I really appreciate you having

0:40:26.600 --> 0:40:29.360
<v Speaker 1>me and would be glad to be back sometimes. Definitely,

0:40:29.440 --> 0:40:31.560
<v Speaker 1>Thanks so much, Patrick, that was great. I learned so

0:40:31.600 --> 0:40:36.319
<v Speaker 1>many excellent new terms like bit rot, blast, radius, heroics.

0:40:36.719 --> 0:40:39.279
<v Speaker 1>We mutually failed together. That one will come in hand

0:40:39.280 --> 0:40:44.520
<v Speaker 1>Ea Joe, every everything we do wrong mutual. No. I

0:40:44.560 --> 0:40:47.000
<v Speaker 1>love that, Patrick, Thank you so much, Thanks very much,

0:40:47.040 --> 0:41:03.040
<v Speaker 1>happing Tracy. I think really Patrick was like the perfect

0:41:03.040 --> 0:41:04.840
<v Speaker 1>guest for that topic, Like we needed to do this

0:41:04.920 --> 0:41:08.200
<v Speaker 1>for a while. I'm glad we like did it with Patrick. Yeah. Well,

0:41:08.239 --> 0:41:10.120
<v Speaker 1>I also feel like this is something that's going to

0:41:10.280 --> 0:41:12.840
<v Speaker 1>keep coming up, and so we might have more opportunities

0:41:12.920 --> 0:41:16.840
<v Speaker 1>from Patrick to do uh interesting post mortems on various

0:41:16.880 --> 0:41:20.120
<v Speaker 1>tech failures. Yeah. Absolutely, I mean there's so many interesting things.

0:41:20.200 --> 0:41:23.200
<v Speaker 1>I really like some of the questions that you asked about,

0:41:23.239 --> 0:41:27.239
<v Speaker 1>like ownership of software, and I think like it's sort

0:41:27.239 --> 0:41:29.960
<v Speaker 1>of like that really click to me because like if

0:41:29.960 --> 0:41:34.200
<v Speaker 1>you're a software company and software is the main product,

0:41:34.880 --> 0:41:37.920
<v Speaker 1>and you know, I'm thinking about like in the manufacturing analogy,

0:41:37.960 --> 0:41:40.360
<v Speaker 1>you know, it's like a Taiwan semiconductor, this sort of

0:41:40.400 --> 0:41:45.320
<v Speaker 1>like institutional knowledge to build something exists within the firm

0:41:45.400 --> 0:41:47.759
<v Speaker 1>and it just you know gets handed down, handed down

0:41:48.160 --> 0:41:51.880
<v Speaker 1>when software isn't your main product, Like if you're a

0:41:51.880 --> 0:41:56.239
<v Speaker 1>Southwest like if you're a city group, etcetera. Then you

0:41:56.280 --> 0:41:59.440
<v Speaker 1>can sort of see why that process of like internal

0:41:59.480 --> 0:42:02.719
<v Speaker 1>knowledge that works in manufacturing, you don't get that sort

0:42:02.760 --> 0:42:06.560
<v Speaker 1>of ongoing feedback, you know, sort of distribution of knowledge

0:42:06.880 --> 0:42:11.080
<v Speaker 1>in some of these large organizations. Yeah. Absolutely, And it

0:42:11.120 --> 0:42:13.759
<v Speaker 1>feels like, I mean Patrick kind of I think he

0:42:13.840 --> 0:42:16.360
<v Speaker 1>used the expression like dropping the ball in the middle

0:42:16.440 --> 0:42:18.600
<v Speaker 1>of both of us. But it does seem like that

0:42:18.800 --> 0:42:24.600
<v Speaker 1>system kind of produces opportunities for I guess I'm trying

0:42:24.640 --> 0:42:26.439
<v Speaker 1>to think how to phrase this for people to sort

0:42:26.480 --> 0:42:30.280
<v Speaker 1>of like, no one takes total responsibility for a systems

0:42:30.280 --> 0:42:32.839
<v Speaker 1>failure like that, right, because on the one hand, someone

0:42:32.880 --> 0:42:34.880
<v Speaker 1>designed the software, but on the other hand, maybe it

0:42:34.920 --> 0:42:37.840
<v Speaker 1>was customized by someone else. Maybe you have two different

0:42:37.840 --> 0:42:40.600
<v Speaker 1>systems talking to each other and both of them mess

0:42:40.640 --> 0:42:43.720
<v Speaker 1>up in some way, or there's some sort of misunderstanding.

0:42:43.960 --> 0:42:47.280
<v Speaker 1>It just seems like there's such a like gray area,

0:42:48.160 --> 0:42:51.560
<v Speaker 1>and maybe this is one of the reasons why it's

0:42:51.600 --> 0:42:55.440
<v Speaker 1>so difficult to fix, because you have all these different

0:42:55.480 --> 0:42:59.000
<v Speaker 1>things that are sort of operating together. Well, even like

0:42:59.120 --> 0:43:02.759
<v Speaker 1>you know, like his last answer about how bit rot happens, right,

0:43:02.760 --> 0:43:07.880
<v Speaker 1>like somewhere somewhere, like all these interconnected computers, somewhere someone

0:43:07.960 --> 0:43:10.160
<v Speaker 1>has to make a change. Because he pointed out in

0:43:10.360 --> 0:43:13.279
<v Speaker 1>his answer to your question about why software is never

0:43:13.320 --> 0:43:16.120
<v Speaker 1>like done nor why it's never solved problem. It's like

0:43:16.280 --> 0:43:18.560
<v Speaker 1>we're always demanding more so there will never be a

0:43:18.560 --> 0:43:21.760
<v Speaker 1>time where someone like has the luxury of not making

0:43:21.760 --> 0:43:25.400
<v Speaker 1>a change and then everyone else has to. Intercomputer we

0:43:25.480 --> 0:43:29.359
<v Speaker 1>figured out technology is solved. Well, maybe that's what the AI, like,

0:43:29.760 --> 0:43:35.120
<v Speaker 1>what's it, you know, the singularity, GPT it could be,

0:43:36.040 --> 0:43:39.000
<v Speaker 1>but like, you know, that seems like it makes a

0:43:39.000 --> 0:43:41.359
<v Speaker 1>lot of sense. Someone has to make a change because

0:43:41.440 --> 0:43:43.719
<v Speaker 1>that's just how the world works. And then all these

0:43:43.719 --> 0:43:47.120
<v Speaker 1>other interconnected systems like maybe they're fine with the change,

0:43:47.160 --> 0:43:49.839
<v Speaker 1>but something happens and then eventually they have to change too,

0:43:50.239 --> 0:43:52.360
<v Speaker 1>and so it's just like this constant state of flux.

0:43:52.440 --> 0:43:57.839
<v Speaker 1>Can I tell you my one internalized programming lesson? So, um,

0:43:57.880 --> 0:43:59.840
<v Speaker 1>you know I mentioned HTML and then when I was

0:43:59.880 --> 0:44:02.680
<v Speaker 1>in high school, part of our computer science class we

0:44:02.760 --> 0:44:06.200
<v Speaker 1>had to learn JavaScript and we had to create a program.

0:44:06.400 --> 0:44:09.000
<v Speaker 1>And so I wrote this program. Again, like keep in

0:44:09.040 --> 0:44:11.680
<v Speaker 1>mind that this was the year two thousand or something

0:44:11.719 --> 0:44:13.400
<v Speaker 1>like that. I wrote a program. It was like a

0:44:13.440 --> 0:44:15.840
<v Speaker 1>digital fortune cookie, and you know, you could click on

0:44:15.840 --> 0:44:18.080
<v Speaker 1>it and it would give you a fortune. And then

0:44:18.120 --> 0:44:20.320
<v Speaker 1>at the end of it, at the end of this module,

0:44:20.400 --> 0:44:24.600
<v Speaker 1>we had to sign a contract signing over our program

0:44:24.760 --> 0:44:29.080
<v Speaker 1>to our computer teacher took ownership. No, it was an

0:44:29.080 --> 0:44:33.319
<v Speaker 1>extremely valuable lesson, which is all the coding that you're

0:44:33.320 --> 0:44:36.960
<v Speaker 1>doing will ultimately belong to someone else and they'll be

0:44:37.000 --> 0:44:40.440
<v Speaker 1>able to monetize it. That's the downside, as they'll monetize

0:44:40.440 --> 0:44:42.399
<v Speaker 1>it for you and maybe you won't get as much.

0:44:42.680 --> 0:44:44.360
<v Speaker 1>But the upside, I guess, is that you don't have

0:44:44.440 --> 0:44:47.120
<v Speaker 1>to take responsibility for it. Once you write it, it

0:44:47.239 --> 0:44:49.759
<v Speaker 1>goes out into the world. The computer professor owns it

0:44:49.800 --> 0:44:52.160
<v Speaker 1>and he can do with it. I love that that

0:44:52.280 --> 0:44:55.440
<v Speaker 1>was actually the lesson. Also, I feel like in another universe,

0:44:55.480 --> 0:44:57.520
<v Speaker 1>like you could have sold that startup for a hundred

0:44:57.520 --> 0:45:01.640
<v Speaker 1>million dollars to face book and it went like super viral.

0:45:02.120 --> 0:45:05.160
<v Speaker 1>It seems like, how did this person make their fortune?

0:45:05.320 --> 0:45:08.360
<v Speaker 1>They made like a digital fortune cookie, but they also

0:45:08.480 --> 0:45:11.680
<v Speaker 1>like I loved his answer about like the public sector

0:45:11.760 --> 0:45:13.879
<v Speaker 1>because it's like, there, you really do have this problem

0:45:13.920 --> 0:45:18.000
<v Speaker 1>with like salary disparities, and it is pretty crazy that

0:45:18.320 --> 0:45:20.960
<v Speaker 1>we sort of treat like the way we're sort of

0:45:20.960 --> 0:45:24.320
<v Speaker 1>solving this problem in this country is kind of getting

0:45:24.320 --> 0:45:27.080
<v Speaker 1>people to volunteer, like going to work for the government

0:45:27.640 --> 0:45:29.919
<v Speaker 1>in I T and tech. It's like what you do

0:45:30.080 --> 0:45:32.680
<v Speaker 1>after you're like rich and you want to give something

0:45:32.760 --> 0:45:35.239
<v Speaker 1>back is like, Okay, I'm gonna like go work for

0:45:35.320 --> 0:45:37.400
<v Speaker 1>the federal government and like try to help them like

0:45:37.520 --> 0:45:40.319
<v Speaker 1>update their systems. Which is great that people want to

0:45:40.320 --> 0:45:42.640
<v Speaker 1>do that, and like I love that, but like that

0:45:42.760 --> 0:45:46.319
<v Speaker 1>does not seem like a great sustainable solution to having

0:45:46.360 --> 0:45:50.280
<v Speaker 1>like a modern government that can like communicate with people

0:45:50.320 --> 0:45:54.120
<v Speaker 1>and provide services for people in the way that they expect. No, Absolutely,

0:45:54.239 --> 0:45:57.120
<v Speaker 1>and it's something that we see again and again in

0:45:57.239 --> 0:45:59.960
<v Speaker 1>various ways. Shall we leave it there, Let's leave at

0:45:59.960 --> 0:46:03.000
<v Speaker 1>the Okay, this has been another episode of the All

0:46:03.040 --> 0:46:05.719
<v Speaker 1>Thoughts podcast. I'm Tracy Alloway. You can follow me on

0:46:05.760 --> 0:46:08.440
<v Speaker 1>Twitter at Tracy Alloway and I'm Joe Why Isn't Though.

0:46:08.480 --> 0:46:11.440
<v Speaker 1>You can follow me on Twitter at the Stalwart. Follow

0:46:11.480 --> 0:46:15.480
<v Speaker 1>our guest Patrick McKenzie. He's on Twitter at Patio eleven

0:46:15.600 --> 0:46:19.600
<v Speaker 1>and check out his Bits about Money newsletter. Follow our

0:46:19.640 --> 0:46:24.600
<v Speaker 1>producers Carmen Rodriguez at kerman Ermine and Dash Bennett at Dashbot.

0:46:24.960 --> 0:46:27.360
<v Speaker 1>And check out all of the podcasts here at Bloomberg

0:46:27.520 --> 0:46:31.720
<v Speaker 1>under the handle at podcasts and For more odd Lots content,

0:46:31.800 --> 0:46:34.360
<v Speaker 1>go to Bloomberg dot com slash odd Lots, where we

0:46:34.400 --> 0:46:37.440
<v Speaker 1>push the transcripts of the episodes. Tracy and I blog,

0:46:37.680 --> 0:46:40.080
<v Speaker 1>and we have a weekly newsletter that comes out every Friday.

0:46:40.160 --> 0:46:43.360
<v Speaker 1>Go there, sign up and get into your inboxes. Thanks

0:46:43.400 --> 0:47:09.520
<v Speaker 1>for listening to ye to