WEBVTT

00:00:00.020 --> 00:00:00.980
<v Michael Kennedy>Every company has one.

00:00:01.330 --> 00:00:03.980
<v Michael Kennedy>The little internal tool that Jane built back in 2021,

00:00:04.970 --> 00:00:05.820
<v Michael Kennedy>and then Jane left.

00:00:06.220 --> 00:00:07.120
<v Michael Kennedy>Nobody understands it.

00:00:07.480 --> 00:00:08.220
<v Michael Kennedy>Nobody touches it.

00:00:08.620 --> 00:00:11.960
<v Michael Kennedy>There are two unwritten rules around this internal software.

00:00:12.640 --> 00:00:15.740
<v Michael Kennedy>First, if it's working, don't change it.

00:00:16.440 --> 00:00:19.280
<v Michael Kennedy>Second, if you break it, you bought it.

00:00:19.740 --> 00:00:21.560
<v Michael Kennedy>That's Dark Matter Enterprise software.

00:00:21.760 --> 00:00:23.680
<v Michael Kennedy>For every app that you can actually see,

00:00:23.920 --> 00:00:26.680
<v Michael Kennedy>there are tens of these sitting in the shadows, frozen.

00:00:27.300 --> 00:00:29.140
<v Michael Kennedy>Michael Booth thinks that just changed.

00:00:29.400 --> 00:00:34.620
<v Michael Kennedy>He read my article on hyper-personal software and ran with it, writing about hyper-team software.

00:00:34.940 --> 00:00:39.500
<v Michael Kennedy>Small teams inside big companies finally building the tools that were never going to get built,

00:00:39.880 --> 00:00:42.380
<v Michael Kennedy>or modernizing the ones trapped in the 90s.

00:00:42.760 --> 00:00:47.940
<v Michael Kennedy>We cover where this works, where it quietly goes wrong, and the guardrails that keep it from turning into a mess.

00:00:48.120 --> 00:00:53.540
<v Michael Kennedy>Let's get into it. This is Talk Python To Me, episode 558, recorded July 15, 2026.

00:01:11.600 --> 00:01:15.920
<v Michael Kennedy>Welcome to Talk Python To Me, the number one Python podcast for developers and data scientists.

00:01:16.440 --> 00:01:21.760
<v Michael Kennedy>This is your host, Michael Kennedy. I'm a PSF fellow who's been coding for over 25 years.

00:01:22.400 --> 00:01:23.460
<v Michael Kennedy>Let's connect on social media.

00:01:23.580 --> 00:01:27.000
<v Michael Kennedy>You'll find me and Talk Python on Mastodon, BlueSky, and X.

00:01:27.180 --> 00:01:29.100
<v Michael Kennedy>The social links are all in your show notes.

00:01:29.880 --> 00:01:33.400
<v Michael Kennedy>You can find over 10 years of past episodes at talkpython.fm.

00:01:33.660 --> 00:01:36.760
<v Michael Kennedy>And if you want to be part of the show, you can join our recording live streams.

00:01:37.100 --> 00:01:37.600
<v Michael Kennedy>That's right.

00:01:37.800 --> 00:01:41.060
<v Michael Kennedy>We live stream the raw uncut version of each episode on YouTube.

00:01:41.640 --> 00:01:46.060
<v Michael Kennedy>Just visit talkpython.fm/youtube to see the schedule of upcoming events.

00:01:46.240 --> 00:01:49.940
<v Michael Kennedy>Be sure to subscribe there and press the bell so you'll get notified anytime we're recording.

00:01:50.740 --> 00:01:53.280
<v Michael Kennedy>This episode is sponsored by Sentry's Seer.

00:01:53.580 --> 00:01:55.920
<v Michael Kennedy>If you're tired of debugging in the dark, give Seer a try.

00:01:56.580 --> 00:01:58.620
<v Michael Kennedy>There are plenty of AI tools that help you write code,

00:01:58.880 --> 00:02:01.780
<v Michael Kennedy>but Sentry's Seer is built to help you fix it when it breaks.

00:02:02.380 --> 00:02:06.640
<v Michael Kennedy>Visit talkpython.fm/sentry and use the code talkpython26,

00:02:07.100 --> 00:02:10.240
<v Michael Kennedy>all one word, no spaces, for $100 in Sentry credits.

00:02:11.000 --> 00:02:14.280
<v Michael Kennedy>Talk Python and Python Bytes both now have MCP servers.

00:02:14.820 --> 00:02:19.200
<v Michael Kennedy>Point your AI at 10 plus years of Python episodes, transcripts, and show notes.

00:02:19.640 --> 00:02:19.780
<v Michael Kennedy>Free.

00:02:20.340 --> 00:02:24.400
<v Michael Kennedy>click mcp in the nav at talkpython.fm and at pythonbytes.fm

00:02:25.320 --> 00:02:29.580
<v Michael Kennedy>Michael welcome to Talk Python To Me great to have you here it's a great name I think this is the

00:02:29.600 --> 00:02:34.320
<v Michael Kennedy>the Michael square there's a lot of things we can do with this is going to be really fun I think

00:02:34.540 --> 00:02:38.200
<v Michael Kennedy>Michael squared is the most I don't think I've ever had a Michael cubed on the show with three

00:02:38.400 --> 00:02:42.780
<v Michael Kennedy>Michaels but yeah it's Michaels across the board or it could be Michaels all the way down like

00:02:42.920 --> 00:02:46.700
<v Michael Kennedy>turtles yeah it's going to be fun whatever it is and thanks for having me you know what I saw your

00:02:46.720 --> 00:02:52.960
<v Michael Kennedy>article. And I thought, oh, we got to talk. So you wrote an article called Hyper Team Software.

00:02:53.460 --> 00:02:58.080
<v Michael Kennedy>And right before that, I wrote a blog post, an article called Hyper Personal Software.

00:02:58.660 --> 00:03:02.340
<v Michael Kennedy>And we were both, I could tell we were both thinking kind of in the same ways and

00:03:02.580 --> 00:03:07.240
<v Michael Kennedy>your article riffed off of mine. And so I thought, well, let me try to do a little bit of like

00:03:07.480 --> 00:03:13.000
<v Michael Kennedy>technical jujitsu here. You wrote an article off of mine and I'm going to have you on the show to

00:03:12.980 --> 00:03:17.940
<v Michael Booth>talk about your article and like I said Michael's all the way down. Your article really resonated

00:03:18.340 --> 00:03:23.180
<v Michael Booth>when I had a look at it the first time. Yeah well thanks. We're going to talk about we've got a

00:03:23.310 --> 00:03:28.120
<v Michael Kennedy>couple of names here so mine was hyper personal software because I wrote this for me. Yours is

00:03:28.200 --> 00:03:33.860
<v Michael Kennedy>hyper team software because the same concept applied to the enterprise honestly is way more

00:03:34.080 --> 00:03:37.200
<v Michael Kennedy>powerful than anything that I'm doing although I'll talk about some of the things I'm doing and people

00:03:37.320 --> 00:03:42.940
<v Michael Kennedy>can decide that but the potential for what you can do to make companies better and teams work

00:03:42.960 --> 00:03:49.200
<v Michael Kennedy>better is tremendous. And I honestly feel like it's an opportunity squandered for a lot of folks. So

00:03:49.620 --> 00:03:54.280
<v Michael Kennedy>hopefully you can inspire them to, you know, crack the door open a little bit and see what they can

00:03:54.290 --> 00:03:59.040
<v Michael Booth>do. Coding assistants are changing the world pretty quickly, right? So in good ways and bad.

00:03:59.180 --> 00:04:05.860
<v Michael Kennedy>In good ways and bad and over and over again, right? For example, six months ago to today could

00:04:06.000 --> 00:04:10.100
<v Michael Kennedy>be a totally different experience of what's, how things work or how well they work or what's

00:04:10.120 --> 00:04:15.060
<v Michael Kennedy>possible and so on. So yeah, it's just, I don't know. It's a weird time, Michael. It's a weird

00:04:15.220 --> 00:04:18.739
<v Michael Booth>time. It is a weird time, especially when you've been doing it for a while. It's very weird.

00:04:19.120 --> 00:04:24.000
<v Michael Kennedy>Exactly. I mean, I've been programmed for over 25 years in tech and I feel like you must be in a

00:04:24.240 --> 00:04:30.860
<v Michael Kennedy>similar time journey there. And I don't know, weird. Just so many times I've seen technology

00:04:31.080 --> 00:04:35.440
<v Michael Kennedy>come up that, oh, this is the thing that's going to kill programming. This is going to be the end

00:04:35.460 --> 00:04:42.940
<v Michael Kennedy>of programmers, UML, drag and drop, visual basic, low code, no code, et cetera. And all those things

00:04:42.960 --> 00:04:47.700
<v Michael Kennedy>are fine, but they're absolutely not the end of software. I don't think coding agents are either,

00:04:48.060 --> 00:04:52.760
<v Michael Kennedy>but they're certainly the biggest dent that they can put into software is anything that's come along

00:04:52.960 --> 00:04:57.480
<v Michael Booth>before it. Yeah. The speed and scale is sort of interesting, but sometimes you can just do a lot

00:04:57.480 --> 00:05:02.120
<v Michael Kennedy>of bad things much faster. Yeah. I mean, that's a big debate, right? Is it, is, is our agentic

00:05:02.140 --> 00:05:07.640
<v Michael Kennedy>coding tools. Are these amplifiers or are they skilled little separate things that do their own

00:05:07.840 --> 00:05:11.840
<v Michael Kennedy>work? I think there's a case to be made for amplification to a large degree. Before we get

00:05:11.900 --> 00:05:15.320
<v Michael Kennedy>into all that, let's just hear a little bit of background about you. Tell us about yourself.

00:05:15.760 --> 00:05:23.080
<v Michael Booth>I started off sort of academic life as doing a PhD in computational chemistry. I've worked in

00:05:23.280 --> 00:05:28.940
<v Michael Booth>quantitative finance for a long, long time. More recently, I started the data booth consultancy

00:05:28.960 --> 00:05:34.380
<v Michael Booth>things. So just the brand for me working as a single consultant and I've been doing that sort

00:05:34.420 --> 00:05:39.020
<v Michael Booth>of coming out of COVID, I decided to do something different. So yeah, about the last five years,

00:05:39.140 --> 00:05:43.380
<v Michael Kennedy>I've been doing that. Computational chemistry, huh? Are you familiar with a program called

00:05:43.620 --> 00:05:49.000
<v Michael Booth>HyperChem? I think I am actually, that's pretty old. We're talking 90s. I mean, I think we're

00:05:49.100 --> 00:05:54.860
<v Michael Booth>talking 90s. Yes, definitely 90s. So I finished my PhD in late 90s. I vaguely remember the tool,

00:05:55.140 --> 00:05:57.600
<v Michael Booth>But I vaguely remember chemistry now as well.

00:05:57.780 --> 00:06:00.840
<v Michael Kennedy>I studied a lot of chemistry and I loved organic chemistry.

00:06:00.960 --> 00:06:05.560
<v Michael Kennedy>And I found this program called HyperChem and it was just so incredible.

00:06:05.620 --> 00:06:09.100
<v Michael Kennedy>It was like the Google Earth equivalent of complex chemistry.

00:06:09.440 --> 00:06:11.660
<v Michael Kennedy>And wow, was it a neat thing to play with.

00:06:11.660 --> 00:06:14.300
<v Michael Kennedy>And I figured maybe it's like right around a similar time frame.

00:06:14.540 --> 00:06:16.840
<v Michael Booth>Yeah, I do remember it now that you mentioned it.

00:06:17.060 --> 00:06:20.680
<v Michael Booth>Organic chemistry was my most unfavorite element of chemistry.

00:06:21.100 --> 00:06:25.920
<v Michael Booth>That's why I did theoretical because experiments are much easier to control on a computer than real life.

00:06:26.260 --> 00:06:28.380
<v Michael Booth>And organic chemistry smells bad.

00:06:28.460 --> 00:06:28.960
<v Michael Kennedy>It does.

00:06:29.520 --> 00:06:36.940
<v Michael Kennedy>Honestly, I would tell you that probably is the reason that I didn't work in chemistry is like I'd get headaches all the time from like the super volatile chemicals and stuff.

00:06:37.120 --> 00:06:40.300
<v Michael Kennedy>I'm like, if I did this every day, I don't know what this would do to me, but it wouldn't be good.

00:06:40.460 --> 00:06:41.320
<v Michael Kennedy>So let's go do math.

00:06:42.160 --> 00:06:43.460
<v Michael Kennedy>Math doesn't hurt physically.

00:06:44.820 --> 00:06:47.100
<v Michael Booth>Yeah, I did math and computing in a chemistry school.

00:06:47.320 --> 00:06:50.100
<v Michael Kennedy>Give us a bit of information about Data Booth.

00:06:50.160 --> 00:06:55.420
<v Michael Kennedy>You've got some nice articles there. You've got some consulting. Yeah, just tell us about DataBooth before we move on.

00:06:55.620 --> 00:07:00.860
<v Michael Booth>As I said, coming out of COVID, I decided to do something different. I've been working for others for a long time.

00:07:01.060 --> 00:07:08.480
<v Michael Booth>So I thought, and I'd also directly before this been reviewing a lot of models and things that are used in finance.

00:07:08.860 --> 00:07:14.360
<v Michael Booth>So I thought it'd be nice to actually build some things again. I sort of identified data science as a place to hang out.

00:07:14.580 --> 00:07:21.320
<v Michael Booth>I did a boot camp in Oakland, actually, in 2017, and just decided this was sort of a growth area.

00:07:21.530 --> 00:07:24.500
<v Michael Booth>I think that conclusion was correct, as it turns out.

00:07:24.870 --> 00:07:27.460
<v Michael Booth>Working as a single consultant can not always be easy.

00:07:27.690 --> 00:07:29.160
<v Michael Booth>Being seen are tricky at times.

00:07:29.580 --> 00:07:31.360
<v Michael Booth>I still wanted to just have a go.

00:07:31.590 --> 00:07:33.740
<v Michael Booth>It's the first time I've done something on my own.

00:07:34.010 --> 00:07:36.160
<v Michael Booth>And I've had a chance to do some interesting things.

00:07:36.380 --> 00:07:40.200
<v Michael Booth>So I worked with a lady who does experiments with horses, for example.

00:07:40.700 --> 00:07:45.760
<v Michael Booth>And she trying to understand when a horse is stressed, for example.

00:07:46.260 --> 00:07:48.840
<v Michael Booth>So she had a Raspberry Pi based experiment.

00:07:49.260 --> 00:07:53.560
<v Michael Booth>I wrote code to control the experiment and then I wrote the code to analyze the results.

00:07:53.860 --> 00:07:57.940
<v Michael Booth>So I guess being small, you can make choices to do small projects.

00:07:58.360 --> 00:08:02.020
<v Michael Booth>And for me, that was helping out somebody doing fundamental research.

00:08:02.520 --> 00:08:04.680
<v Michael Booth>And I guess it got me back to my roots a bit.

00:08:05.020 --> 00:08:06.460
<v Michael Booth>So I've been able to do something like that.

00:08:06.940 --> 00:08:09.580
<v Michael Booth>And then I've been able to do stuff in finance.

00:08:09.980 --> 00:08:15.400
<v Michael Booth>Again, I worked for a small media company at one point as well, helping them do some analysis.

00:08:15.700 --> 00:08:20.140
<v Michael Booth>So it's been fun, but it's also, as I say, it can be hard to be seen when you're small.

00:08:20.700 --> 00:08:26.260
<v Michael Booth>I'm fortunate I have a wife who is happy to give me some flexibility around those things.

00:08:26.680 --> 00:08:29.580
<v Michael Booth>So yeah, shout out to her as being a great support.

00:08:29.980 --> 00:08:32.400
<v Michael Booth>I think the connection's a little bit up and down.

00:08:32.440 --> 00:08:37.360
<v Michael Kennedy>I think it's super important to have a spouse who is understanding of those kinds of things,

00:08:37.479 --> 00:08:39.140
<v Michael Kennedy>because it lets you do really, really interesting things.

00:08:39.280 --> 00:08:42.460
<v Michael Kennedy>Like I can say the same thing for my family as well in a slightly different way.

00:08:42.880 --> 00:08:44.460
<v Michael Kennedy>What a cool story about the horse.

00:08:45.000 --> 00:08:49.240
<v Michael Kennedy>You know, it's mixing biology and IoT and tech.

00:08:49.460 --> 00:08:53.640
<v Michael Kennedy>And that's the kind of stuff that you learn a whole bunch in a real short period of time.

00:08:53.920 --> 00:08:55.660
<v Michael Kennedy>But also you can make a big difference, you know.

00:08:55.740 --> 00:08:56.300
<v Michael Booth>I learned a heap.

00:08:56.460 --> 00:08:59.360
<v Michael Booth>I'd never worked with a Raspberry Pi, for example.

00:08:59.620 --> 00:09:04.120
<v Michael Booth>So it's quite interesting when you don't play in a space, you don't realize just how

00:09:04.640 --> 00:09:05.840
<v Michael Booth>far certain things have advanced.

00:09:06.120 --> 00:09:09.320
<v Michael Booth>So it's pretty cool what you can do on very small devices these days.

00:09:09.520 --> 00:09:10.180
<v Michael Kennedy>That's Data Booth.

00:09:10.250 --> 00:09:10.500
<v Michael Kennedy>Very cool.

00:09:10.660 --> 00:09:11.400
<v Michael Kennedy>People can check that out.

00:09:11.740 --> 00:09:16.420
<v Michael Kennedy>Let's take it out a bit and talk about sort of internal company software.

00:09:16.920 --> 00:09:23.120
<v Michael Kennedy>There's a lot of people listen to this show who are not what you would call enterprise developers, right?

00:09:23.260 --> 00:09:24.240
<v Michael Kennedy>They are students.

00:09:24.960 --> 00:09:31.420
<v Michael Kennedy>They're maybe data scientists kind of on their own or they work at a research or they work at a startup.

00:09:32.000 --> 00:09:36.660
<v Michael Kennedy>So give us a sense of what internal software, like these bigger companies, looks like today

00:09:36.900 --> 00:09:39.880
<v Michael Kennedy>and like maybe before the AI world and so on.

00:09:39.940 --> 00:09:41.360
<v Michael Booth>Every company is different.

00:09:41.560 --> 00:09:43.740
<v Michael Booth>And I'm sure you've experienced that as well.

00:09:44.140 --> 00:09:46.120
<v Michael Booth>Lots of different operating models.

00:09:46.640 --> 00:09:51.580
<v Michael Booth>But I guess enterprises always need to make sure that things are orderly to some degree.

00:09:52.100 --> 00:09:58.600
<v Michael Booth>So when I work on my MacBook as a solo practitioner, I can make decisions about what software I

00:09:58.660 --> 00:10:00.540
<v Michael Booth>want to use, how I want to use it.

00:10:00.860 --> 00:10:05.040
<v Michael Booth>Ideally, when I'm working with data, you've got to make sure that you've got certain controls in place.

00:10:05.210 --> 00:10:07.400
<v Michael Booth>But within companies, those things really matter, right?

00:10:07.660 --> 00:10:14.980
<v Michael Booth>So you do need to make sure that things are secured appropriately, that people only have access to the things that you want them to.

00:10:15.340 --> 00:10:21.680
<v Michael Booth>So I think in that context, there's always going to be sort of overheads and friction on developing any sort of software.

00:10:22.390 --> 00:10:25.900
<v Michael Booth>So you've just got to be aware that you need to allow for those things.

00:10:26.320 --> 00:10:39.280
<v Michael Booth>So I think the idea that we'll talk about coming up is the sense that when you're actually working within a team, within an enterprise, maybe there's certain things that you can do that don't need to impact too many other people.

00:10:39.720 --> 00:10:43.240
<v Michael Booth>And therefore, you can achieve a greater degree of autonomy.

00:10:43.660 --> 00:10:47.160
<v Michael Booth>There's certainly the things that you need to be thinking about within the enterprise.

00:10:47.380 --> 00:10:48.760
<v Michael Booth>So it's not choose your own adventure.

00:10:49.080 --> 00:10:52.180
<v Michael Booth>It's a work within the constraints which are appropriately there.

00:10:52.580 --> 00:10:57.900
<v Michael Booth>And particularly between industries, you can have some industries which have little regulation.

00:10:58.230 --> 00:11:02.340
<v Michael Booth>And then in other industries, they're highly regulated for very good reasons.

00:11:02.860 --> 00:11:10.240
<v Michael Booth>But again, that can provide an additional layer of complexity as you start to think about how you develop and what you develop.

00:11:10.340 --> 00:11:12.740
<v Michael Kennedy>I've not spent a ton of time working at large companies.

00:11:12.890 --> 00:11:16.980
<v Michael Kennedy>I worked at a company for maybe six months that had 1,200 people.

00:11:17.520 --> 00:11:21.900
<v Michael Kennedy>And I got there by being acquired from a company that had 10 full-time employees.

00:11:21.940 --> 00:11:27.260
<v Michael Kennedy>So it was a little bit of a shift, but I did do professional software training for a long

00:11:27.440 --> 00:11:27.580
<v Michael Kennedy>time.

00:11:28.050 --> 00:11:31.360
<v Michael Kennedy>So I taught week-long courses over a hundred different companies.

00:11:31.660 --> 00:11:34.660
<v Michael Kennedy>And, you know, you just, you get a look inside these places.

00:11:34.780 --> 00:11:36.920
<v Michael Kennedy>You're like, wow, this is, this one is really different.

00:11:37.160 --> 00:11:40.060
<v Michael Kennedy>This is like really unique in this way or that.

00:11:40.140 --> 00:11:45.100
<v Michael Kennedy>But the, one of the, I mean, maybe not with the tech companies, but maybe even so, but

00:11:45.160 --> 00:11:49.680
<v Michael Kennedy>like for many of the companies, I would say there's, there's two golden rules of a lot

00:11:49.680 --> 00:11:50.400
<v Michael Kennedy>of this kind of stuff.

00:11:50.800 --> 00:11:52.700
<v Michael Kennedy>One of them is don't change it.

00:11:53.120 --> 00:11:53.480
<v Michael Kennedy>It's working.

00:11:53.960 --> 00:11:54.640
<v Michael Kennedy>Just don't change it.

00:11:54.940 --> 00:11:55.520
<v Michael Kennedy>You know what I mean?

00:11:55.780 --> 00:11:56.840
<v Michael Booth>And there's something to that, right?

00:11:57.140 --> 00:11:59.080
<v Michael Booth>If it is working, why would you fix it?

00:11:59.460 --> 00:12:01.640
<v Michael Booth>It can be very expensive to change things, right?

00:12:01.720 --> 00:12:01.840
<v Michael Kennedy>Yeah.

00:12:01.940 --> 00:12:04.060
<v Michael Kennedy>So maybe we'll call that the principle of least touching.

00:12:04.300 --> 00:12:05.080
<v Michael Kennedy>Like, just don't touch it.

00:12:05.400 --> 00:12:06.260
<v Michael Kennedy>It's just leave it.

00:12:06.460 --> 00:12:06.940
<v Michael Kennedy>It's over there.

00:12:07.060 --> 00:12:07.720
<v Michael Kennedy>Just don't touch it.

00:12:08.020 --> 00:12:09.820
<v Michael Kennedy>And that leads to like you're talking about on your MacBook.

00:12:10.120 --> 00:12:14.200
<v Michael Kennedy>Like, oh, I could use like Python 3.14 and we could pick, oh, let's try FastAPI.

00:12:14.300 --> 00:12:15.140
<v Michael Kennedy>And they're like, that's cute.

00:12:15.240 --> 00:12:15.960
<v Michael Kennedy>We use Python 2.

00:12:16.380 --> 00:12:17.320
<v Michael Kennedy>You're like, huh, really?

00:12:17.720 --> 00:12:17.860
<v Michael Kennedy>Okay.

00:12:18.080 --> 00:12:18.680
<v Michael Kennedy>You don't want to change it.

00:12:18.760 --> 00:12:18.820
<v Michael Kennedy>No.

00:12:19.339 --> 00:12:20.080
<v Michael Kennedy>Principle of least touching.

00:12:20.240 --> 00:12:20.860
<v Michael Kennedy>We don't touch this.

00:12:21.070 --> 00:12:21.380
<v Michael Kennedy>It works.

00:12:21.620 --> 00:12:25.860
<v Michael Booth>When I was in a previous company, they were using 3.7, for example.

00:12:26.060 --> 00:12:27.840
<v Michael Booth>I'm like, yeah, but it's out of support.

00:12:28.860 --> 00:12:29.880
<v Michael Booth>It's end of life.

00:12:30.420 --> 00:12:31.360
<v Michael Booth>Aren't you going to upgrade things?

00:12:31.560 --> 00:12:33.440
<v Michael Booth>And people just stared at me.

00:12:33.440 --> 00:12:34.660
<v Michael Booth>It was like, why would we?

00:12:35.140 --> 00:12:39.400
<v Michael Booth>So, yeah, I guess it's the what you should do on paper versus what you do in reality.

00:12:39.520 --> 00:12:41.180
<v Michael Kennedy>Both of those ways are right, I think.

00:12:41.300 --> 00:12:43.780
<v Michael Kennedy>Like, you maybe don't want to mess it up because it is working.

00:12:44.460 --> 00:12:49.520
<v Michael Kennedy>But at the same time, we had things like Log4J and other stuff where, like, there are really big problems.

00:12:49.820 --> 00:12:51.940
<v Michael Kennedy>And it's just because people didn't want to update their software.

00:12:52.420 --> 00:12:57.460
<v Michael Kennedy>So the other core principle, I think, is you break it, you bought it.

00:12:57.710 --> 00:13:02.680
<v Michael Kennedy>And that's like, if you do touch it and it was working and now it's not working, this

00:13:02.710 --> 00:13:03.520
<v Michael Kennedy>is now your problem.

00:13:03.630 --> 00:13:06.740
<v Michael Kennedy>And maybe the person who knows how it works doesn't even work here anymore.

00:13:07.100 --> 00:13:11.020
<v Michael Booth>The person that did it almost certainly does not work there anymore, right?

00:13:11.160 --> 00:13:15.900
<v Michael Booth>If you look at the stats, I think sort of typical tenure, at least these days, is less

00:13:15.950 --> 00:13:16.540
<v Michael Booth>than two years.

00:13:16.640 --> 00:13:24.060
<v Michael Booth>So the likelihood that you're going to find anybody in the team that knows anything is, can be just very, very small, right?

00:13:24.160 --> 00:13:24.820
<v Michael Kennedy>It could be very small.

00:13:24.940 --> 00:13:31.600
<v Michael Kennedy>And so that leads to just some interesting gaps or in a more half glass, half full way, like opportunities.

00:13:31.940 --> 00:13:39.720
<v Michael Kennedy>There's so much of these little tools and these little connectors and these things or just software that was never built because you don't want to take it on if you build it.

00:13:39.820 --> 00:13:45.320
<v Michael Kennedy>and they're just sitting there inside these huge companies that have so much internal software,

00:13:45.490 --> 00:13:50.560
<v Michael Kennedy>but they just, they're either really outdated or they're just really ugly and they work clunky,

00:13:50.740 --> 00:13:54.460
<v Michael Kennedy>but people just like the person who built it left and no one else can even build it.

00:13:54.470 --> 00:13:57.620
<v Michael Kennedy>So like, be thankful it works, not that it's hard to use, you know?

00:13:57.940 --> 00:14:02.100
<v Michael Kennedy>So there's just so much opportunity for this concept of hyper team software, I think.

00:14:02.280 --> 00:14:06.420
<v Michael Booth>Yeah, no, I think there's lots of opportunities out there, but I think like any problem,

00:14:06.760 --> 00:14:10.320
<v Michael Booth>you want to think through a solution maybe before you start changing anything.

00:14:10.530 --> 00:14:12.480
<v Michael Booth>I think it's very tempting just to jump in.

00:14:12.980 --> 00:14:15.240
<v Michael Booth>And I think, yeah, taking a few steps back.

00:14:15.530 --> 00:14:19.240
<v Michael Booth>And again, just understanding the scope of the problem that you're trying to solve.

00:14:19.620 --> 00:14:23.860
<v Michael Booth>So like most of life, if you choose a smaller problem to start with,

00:14:24.440 --> 00:14:28.020
<v Michael Booth>maybe you learn something from it and it helps you as you start to tackle bigger problems.

00:14:28.220 --> 00:14:33.140
<v Michael Kennedy>I think it's also just, you know, as an aside for people who are looking to advance their career,

00:14:33.760 --> 00:14:38.000
<v Michael Kennedy>If you can improve these tools and make life better for everybody at the company, that's

00:14:38.000 --> 00:14:39.720
<v Michael Kennedy>a really high visibility thing to do.

00:14:39.870 --> 00:14:44.600
<v Michael Kennedy>It used to be all the data scientists had this super annoying thing that they had to

00:14:44.700 --> 00:14:44.840
<v Michael Kennedy>do.

00:14:45.270 --> 00:14:46.880
<v Michael Kennedy>And then you spent two weeks on it.

00:14:46.960 --> 00:14:49.220
<v Michael Kennedy>And all of a sudden, everybody's happier at work.

00:14:49.400 --> 00:14:50.660
<v Michael Kennedy>And they know that it was because of you.

00:14:50.760 --> 00:14:53.360
<v Michael Kennedy>Like that shines a pretty good halo on you.

00:14:53.500 --> 00:14:57.840
<v Michael Booth>No, like there's great opportunities to like make a real impact, I think.

00:14:58.180 --> 00:15:03.760
<v Michael Booth>And for me, coming out of a sort of science background, and I try and see everything as

00:15:03.760 --> 00:15:04.760
<v Michael Booth>an experiment in life.

00:15:05.240 --> 00:15:09.200
<v Michael Booth>And I try and put all of my experiments orderly in GitHub, for example.

00:15:09.800 --> 00:15:15.800
<v Michael Booth>You can move quickly and you can experiment and you can identify the paths not to go down

00:15:16.540 --> 00:15:19.340
<v Michael Booth>so that you can actually work out the paths that are worth pursuing.

00:15:19.840 --> 00:15:23.160
<v Michael Booth>And to your point, yeah, there are opportunities to be seen.

00:15:23.580 --> 00:15:24.520
<v Michael Booth>And you can move from that.

00:15:24.720 --> 00:15:33.080
<v Michael Booth>I just wanted to draw a diagram on a piece of paper and convince you that this was a good idea to, well, here's the working prototype or proof of concept.

00:15:33.460 --> 00:15:38.280
<v Michael Booth>And we actually now can talk about, have a real discussion rather than a hypothetical one.

00:15:38.380 --> 00:15:39.760
<v Michael Kennedy>That's so interesting that you bring that up.

00:15:39.910 --> 00:15:51.300
<v Michael Kennedy>Because one of the things that I found really challenging working at bigger companies, even not huge companies, so just in general, is you can describe something and people go, oh, maybe that's nice.

00:15:51.920 --> 00:15:53.100
<v Michael Kennedy>You can tell them you can do it.

00:15:53.100 --> 00:15:54.540
<v Michael Kennedy>And they're like, yeah, probably you can.

00:15:54.860 --> 00:16:00.460
<v Michael Kennedy>But then you just take a little bit of time and you show them like, no, look, it's not I could do this.

00:16:00.630 --> 00:16:02.340
<v Michael Kennedy>It took me two hours to do this.

00:16:02.760 --> 00:16:04.500
<v Michael Kennedy>If we keep going on it, it'll be really nice.

00:16:04.610 --> 00:16:07.940
<v Michael Kennedy>Look, wait, you already kind of did this?

00:16:08.120 --> 00:16:09.740
<v Michael Kennedy>Like, this is actually really amazing.

00:16:09.980 --> 00:16:16.020
<v Michael Kennedy>I really think that makes a huge difference in how much trust and sort of adoption you get for like your ideas.

00:16:16.300 --> 00:16:16.740
<v Michael Booth>Absolutely.

00:16:17.060 --> 00:16:24.460
<v Michael Booth>Like in a previous employer, you sort of had the business analysts go, okay, let's draw up wireframes and whatnot.

00:16:24.860 --> 00:16:27.140
<v Michael Booth>And then we can prove out this and do that.

00:16:27.700 --> 00:16:29.340
<v Michael Booth>Like, no, we're not using wireframes.

00:16:29.560 --> 00:16:31.520
<v Michael Booth>We're just building it because it doesn't take very long.

00:16:31.880 --> 00:16:34.340
<v Michael Booth>And then people can see it, see the real thing.

00:16:34.640 --> 00:16:37.360
<v Michael Booth>That's not a critique of the sort of BAs at all.

00:16:37.540 --> 00:16:41.100
<v Michael Booth>It's just the world's changed, I think, from when you used to work like that.

00:16:42.620 --> 00:16:46.200
<v Michael Kennedy>This portion of Talk Python To Me is brought to you by Sentry and Sear AI.

00:16:46.860 --> 00:16:49.320
<v Michael Kennedy>There are plenty of AI tools that help you write code,

00:16:49.530 --> 00:16:52.560
<v Michael Kennedy>but Sentry Seer is built to help you fix it when it breaks.

00:16:53.100 --> 00:16:54.160
<v Michael Kennedy>The difference is context.

00:16:54.860 --> 00:16:57.040
<v Michael Kennedy>Seer isn't just guessing based on syntax.

00:16:57.360 --> 00:16:59.400
<v Michael Kennedy>It's analyzing your actual Sentry data,

00:16:59.760 --> 00:17:01.720
<v Michael Kennedy>your stack traces, logs, and failure patterns.

00:17:02.280 --> 00:17:03.740
<v Michael Kennedy>Because it has the full context,

00:17:03.830 --> 00:17:06.860
<v Michael Kennedy>it can A, spot buggy code in review

00:17:06.930 --> 00:17:08.520
<v Michael Kennedy>and help prevent issues before they happen,

00:17:09.140 --> 00:17:11.939
<v Michael Kennedy>and B, identify the root cause of production errors.

00:17:12.880 --> 00:17:15.079
<v Michael Kennedy>It can even draft a fix and hand the work off

00:17:15.020 --> 00:17:17.439
<v Michael Kennedy>to an agent-like cursor to open a PR for you.

00:17:18.140 --> 00:17:20.040
<v Michael Kennedy>Seer turns Sentry into a complete loop.

00:17:20.560 --> 00:17:22.720
<v Michael Kennedy>You have your traces, errors, logs, and replays

00:17:22.720 --> 00:17:25.180
<v Michael Kennedy>to see the problem, and now AI to help solve it.

00:17:25.459 --> 00:17:27.920
<v Michael Kennedy>Join millions of devs at companies like Claude,

00:17:28.380 --> 00:17:29.800
<v Michael Kennedy>Disney+, and even Talk Python,

00:17:30.220 --> 00:17:31.460
<v Michael Kennedy>who use Sentry to move faster.

00:17:31.960 --> 00:17:34.700
<v Michael Kennedy>Check them out at talkpython.fm/sentry

00:17:34.780 --> 00:17:38.160
<v Michael Kennedy>and use code talkpython26, all one word,

00:17:38.620 --> 00:17:40.700
<v Michael Kennedy>for $100 in Sentry credits.

00:17:41.220 --> 00:17:43.060
<v Michael Kennedy>Thank you to Sentry for supporting Talk Python.

00:17:44.140 --> 00:17:49.520
<v Michael Kennedy>This like, I think leads into where we're going. There's, we're going to build software in a manner

00:17:49.680 --> 00:17:56.200
<v Michael Kennedy>that a bank could run on it because that's our company philosophy and our culture way of working.

00:17:56.380 --> 00:18:02.520
<v Michael Kennedy>We build solid software. That's no frills that works versus, yeah, but do you need to do that

00:18:02.620 --> 00:18:06.280
<v Michael Kennedy>for the log parsing thing? That's just going to help us see if the server's up. Like, no,

00:18:06.320 --> 00:18:09.799
<v Michael Kennedy>you probably don't, but don't, you know what I mean? Like it's, it's, I think it's hard for some

00:18:09.820 --> 00:18:14.220
<v Michael Kennedy>of these groups to kind of break away from treating everything as like mission critical

00:18:14.650 --> 00:18:18.240
<v Michael Kennedy>and i think that's pretty germane to this conversation you know yeah like i think you

00:18:18.380 --> 00:18:23.680
<v Michael Booth>need to work out what mission critical actually means right and whether certain things particularly

00:18:23.850 --> 00:18:29.540
<v Michael Booth>within teams actually are mission critical because that will sort of help guide maybe how you develop

00:18:29.700 --> 00:18:35.140
<v Michael Booth>things and who should be developing them maybe just picking up on the logging comment there if i

00:18:35.100 --> 00:18:39.880
<v Michael Booth>understood it correctly the argument used to be that putting in sort of baseline good practices

00:18:40.180 --> 00:18:45.540
<v Michael Booth>was expensive and i think that's also changed so the effort to put logging into a piece of software

00:18:45.760 --> 00:18:50.420
<v Michael Booth>is like almost trivial these days right so i think there's a whole bunch of things where people go oh

00:18:50.700 --> 00:18:56.200
<v Michael Booth>we couldn't possibly do that or maybe that isn't warranted but if it doesn't really cost you

00:18:56.340 --> 00:19:00.659
<v Michael Booth>anything why wouldn't you put it in like if it's a point pointless piece of functionality then fair

00:19:00.680 --> 00:19:06.420
<v Michael Booth>enough right we don't want we don't want animated gifs in everything but um yeah the there's just

00:19:06.580 --> 00:19:11.140
<v Michael Booth>basics of good software engineering that i think you should put into sort of any tool that you're

00:19:11.360 --> 00:19:16.440
<v Michael Kennedy>developing that's a good point it used to be you'd build software and you might have some kind of

00:19:16.860 --> 00:19:21.920
<v Michael Kennedy>team lead review it for security or run bandit against it or something like that and hope that

00:19:21.960 --> 00:19:27.539
<v Michael Kennedy>it's kind of okay i mean you don't call this function wrong like um print s print f or something

00:19:27.540 --> 00:19:32.220
<v Michael Kennedy>or, you know, the unsafe version of YAML load, whatever, right?

00:19:32.580 --> 00:19:34.060
<v Michael Kennedy>Those are the kinds of things that you should get checked.

00:19:34.120 --> 00:19:38.680
<v Michael Kennedy>But now, I mean, we basically have Mythos as a co-worker.

00:19:39.320 --> 00:19:43.260
<v Michael Kennedy>You know, if we subscribe to Claude Code or the new ChatGPT stuff or Codex,

00:19:43.640 --> 00:19:45.880
<v Michael Kennedy>and you can just say, look, do a security review on this.

00:19:46.340 --> 00:19:50.640
<v Michael Kennedy>And what used to take like two weeks and a $20,000 pen testing engagement

00:19:50.700 --> 00:19:52.540
<v Michael Kennedy>is now like an hour or less.

00:19:52.680 --> 00:19:53.340
<v Michael Booth>It's pretty crazy.

00:19:53.400 --> 00:19:57.800
<v Michael Booth>I think you, of course, still need qualified experts to review the results, right?

00:19:58.220 --> 00:20:05.980
<v Michael Booth>So you don't want to outsource your thinking, I would say, to a machine that's very good at multiplying and adding matrices together very quickly.

00:20:06.460 --> 00:20:09.020
<v Michael Booth>The machines bring a lot to the table, right?

00:20:09.180 --> 00:20:16.240
<v Michael Booth>But yeah, even if you're doing those sort of reviews, you want to leverage the machine's capability and not just completely rely on it.

00:20:16.250 --> 00:20:19.800
<v Michael Booth>And I think that's one of the things that we talked about good and bad at the start.

00:20:19.920 --> 00:20:24.100
<v Michael Booth>I think that's one of the things where I get slightly concerned when people seem to be

00:20:24.440 --> 00:20:28.420
<v Michael Kennedy>outsourcing their thinking that's not across the board. Turn off their critical thinking.

00:20:29.040 --> 00:20:33.400
<v Michael Booth>Yeah, 100%. It is interesting. I noticed the University of Washington teaches a course now

00:20:33.520 --> 00:20:37.620
<v Michael Booth>on critical thinking, which is somewhat interesting, right? Why would you need to

00:20:37.860 --> 00:20:42.540
<v Michael Booth>teach people critical thought? Like clearly, clearly you get taught critical thought through

00:20:42.540 --> 00:20:47.460
<v Michael Booth>a whole bunch of experiences and courses in life. But I think it speaks somewhat to the age that

00:20:47.480 --> 00:20:51.860
<v Michael Booth>you'd actually have an official course on that. I guess that's what experience brings.

00:20:52.200 --> 00:20:58.140
<v Michael Kennedy>Right, right. And the more you can sort of shortcut your way through literature and philosophy and

00:20:58.420 --> 00:21:01.620
<v Michael Kennedy>math and so on, then you kind of, I guess, need to make it up somewhere else.

00:21:01.790 --> 00:21:06.480
<v Michael Booth>I think experience plays into this a lot, right? So the longer you've been around,

00:21:06.880 --> 00:21:11.340
<v Michael Booth>just the more things that you've seen them gone wrong, right? And that's not unexpected in life,

00:21:11.350 --> 00:21:16.240
<v Michael Booth>I don't think, because we all like to take shortcuts. But I think, as I often say to people,

00:21:16.520 --> 00:21:17.580
<v Michael Booth>Just choose the right shortcuts.

00:21:17.880 --> 00:21:20.560
<v Michael Kennedy>This one, I had to come in the middle of the night because the server went down.

00:21:20.920 --> 00:21:21.920
<v Michael Kennedy>We don't want to do this anymore.

00:21:22.460 --> 00:21:24.400
<v Michael Kennedy>Or the car broke down on the side of the road because of this.

00:21:24.600 --> 00:21:25.360
<v Michael Kennedy>We're not doing that anymore.

00:21:26.120 --> 00:21:28.040
<v Michael Kennedy>You learn the lessons over time, I suppose.

00:21:28.360 --> 00:21:30.140
<v Michael Booth>Hopefully you learn the lessons over time.

00:21:31.020 --> 00:21:31.900
<v Michael Booth>That's the goal, I think.

00:21:32.200 --> 00:21:33.540
<v Michael Booth>As I say, everything's an experiment.

00:21:34.040 --> 00:21:35.740
<v Michael Booth>The question is, will you learn from the experiment?

00:21:36.020 --> 00:21:36.480
<v Michael Booth>Maybe you'll learn.

00:21:36.680 --> 00:21:37.140
<v Michael Kennedy>Not 100%.

00:21:37.220 --> 00:21:37.720
<v Michael Kennedy>There's no guarantees.

00:21:38.160 --> 00:21:43.159
<v Michael Kennedy>Before we jump into the details of your article, I do want to put one more concept out there

00:21:43.180 --> 00:21:48.260
<v Michael Kennedy>for people that I think can sometimes get lost in the fray as well. And that's the concept of

00:21:48.580 --> 00:21:54.100
<v Michael Kennedy>competing against non-consumption. So for, put it in context for my example of like, oh, we have a

00:21:54.200 --> 00:21:59.280
<v Michael Kennedy>pen tester now that can work on this thing. You would hire a pen tester for the most important

00:21:59.480 --> 00:22:07.120
<v Michael Kennedy>part of your software, but your little tiny, like expense tracking tool that Jane from 2021 wrote

00:22:07.200 --> 00:22:11.479
<v Michael Kennedy>and left the company, you're probably not going to hire a pen tester for that. But now these days

00:22:11.500 --> 00:22:17.280
<v Michael Kennedy>with these tools, you can, quote, hire a pen tester for it, and it takes half an hour.

00:22:17.840 --> 00:22:21.320
<v Michael Kennedy>And it's not that, ah, you probably should have hired, you probably should really use

00:22:21.360 --> 00:22:22.120
<v Michael Kennedy>like a real person.

00:22:22.180 --> 00:22:25.160
<v Michael Kennedy>Like there was never going to be a pen test of that at all.

00:22:25.580 --> 00:22:26.420
<v Michael Kennedy>And now there can.

00:22:26.540 --> 00:22:30.500
<v Michael Kennedy>Like there will be for the real software, maybe, but not for like these little internal tool

00:22:30.680 --> 00:22:32.260
<v Michael Kennedy>things that like, I think we're going to talk about.

00:22:32.520 --> 00:22:36.760
<v Michael Kennedy>So I think this concept of competing against non-consumption is worth keeping in mind.

00:22:36.960 --> 00:22:37.320
<v Michael Booth>Good point.

00:22:37.400 --> 00:22:42.300
<v Michael Booth>I guess the question still is, would you, is there a case to actually use the machine for that? If

00:22:42.380 --> 00:22:46.700
<v Michael Booth>it's sort of free, then I guess, why not? But there's still lots of other things that you might

00:22:47.080 --> 00:22:51.640
<v Michael Booth>investigate, right? So do you actually want to spend some of your token budget on that even?

00:22:52.120 --> 00:22:56.540
<v Michael Booth>So I think, again, it's thinking well about problems and going, what are the actual pros

00:22:56.540 --> 00:23:01.839
<v Michael Booth>and cons here? Or what are the risks that we're trying to mitigate? Okay, let's jump into Hyper

00:23:01.860 --> 00:23:09.360
<v Michael Kennedy>team software and we're going to talk through your excellent essay from hyper personal software to

00:23:09.460 --> 00:23:14.020
<v Michael Kennedy>hyper team software small team built ai assisted tools inside the enterprise because i like i said

00:23:14.020 --> 00:23:20.700
<v Michael Kennedy>i think there's just a gold mine of opportunity here to solve some of these principle of least

00:23:20.840 --> 00:23:25.780
<v Michael Kennedy>touching and you break it as yours sort of type like things that are a hassle for everyone and

00:23:25.780 --> 00:23:29.219
<v Michael Kennedy>just no one's going to go near it and no one understands it i think there's a huge possibility

00:23:29.240 --> 00:23:34.260
<v Michael Kennedy>there. So, but since you said, you know, this is, this is based on my concept of hyper-personal,

00:23:34.300 --> 00:23:38.360
<v Michael Kennedy>let me just give people a really quick, definite, like a starting point from there. So I said like,

00:23:38.440 --> 00:23:43.720
<v Michael Kennedy>look, I think there's a lot of people that say, if this AI stuff is so good, why don't we see an

00:23:43.800 --> 00:23:48.880
<v Michael Kennedy>explosion of software? And my article said, I think there is an explosion of the software,

00:23:49.000 --> 00:23:53.800
<v Michael Kennedy>but so much of it is like dark matter in a sense. Like you can't see it because it's not worth

00:23:54.340 --> 00:23:58.639
<v Michael Kennedy>bringing out into a great big flash. It's just a bunch of these little things that solve or polish

00:23:58.780 --> 00:24:04.280
<v Michael Kennedy>a bunch of stuff. So for my example was I was using the start page search engine and they'd

00:24:04.440 --> 00:24:08.880
<v Michael Kennedy>started putting ads that would fill like two pages before you even got to the first search result.

00:24:09.010 --> 00:24:13.300
<v Michael Kennedy>Like I don't mind having an ad. I want to support you, but two pages, this is ridiculous, right?

00:24:13.680 --> 00:24:16.960
<v Michael Kennedy>Yeah. So I said, I just had Claude build me an extension that would just remove,

00:24:17.840 --> 00:24:22.460
<v Michael Kennedy>remove the ads just for me. I have no intention of ever shipping it. I just thought, here's a

00:24:22.530 --> 00:24:27.900
<v Michael Kennedy>problem I have. I bet in 20 minutes I can make it go away, you know? So that sets the stage.

00:24:28.020 --> 00:24:33.280
<v Michael Booth>tell us about this concept here like tell us about your idea apologies for the name first of all

00:24:33.430 --> 00:24:38.300
<v Michael Booth>because i don't think it's particularly the right name but i just wanted to riff off your name so

00:24:38.440 --> 00:24:45.600
<v Michael Booth>that was the initial thinking behind it and also apology for the length of my articles i try not

00:24:45.650 --> 00:24:50.940
<v Michael Booth>to write so much but sometimes that's just what happens so yeah i guess as i reflected on your

00:24:51.180 --> 00:24:56.679
<v Michael Booth>article and thought well if michael can build stuff that solves his problem surely people in

00:24:56.920 --> 00:25:03.080
<v Michael Booth>smaller teams within companies actually have plenty of problems to solve and you don't want to be

00:25:03.440 --> 00:25:09.640
<v Michael Booth>necessarily starting up a capital p project and having lots and lots of people involved which is

00:25:09.760 --> 00:25:15.460
<v Michael Booth>sort of a typical model because of the way companies are structured but if you can just yeah solve a

00:25:15.640 --> 00:25:21.800
<v Michael Booth>small problem and it doesn't involve any sort of other people outside your team or any great

00:25:21.820 --> 00:25:26.860
<v Michael Booth>infrastructure so you're not trying to set up a client server database necessarily to solve it

00:25:27.200 --> 00:25:31.920
<v Michael Booth>you're not trying to include sort of authentication because the security of it doesn't really really

00:25:32.080 --> 00:25:37.460
<v Michael Booth>matter in this case you're just solving a small problem within your team then why not take a

00:25:37.500 --> 00:25:41.020
<v Michael Kennedy>similar approach like i've already beat to death i think there's tons of opportunity here but you

00:25:41.040 --> 00:25:46.440
<v Michael Kennedy>know give me your sense of this at my limited experience i would say for everything that you

00:25:46.620 --> 00:25:50.400
<v Michael Kennedy>look at a company and you see oh here is their product here's their software or at least the

00:25:50.380 --> 00:25:54.200
<v Michael Kennedy>software that powers their product like if they were a car company maybe it's like their website

00:25:54.460 --> 00:26:01.000
<v Michael Kennedy>ordering i don't know there's 10 times as many hidden little small somewhat unpolished things

00:26:01.220 --> 00:26:05.420
<v Michael Kennedy>that would fall into this category that that are critical to making everything work as we've

00:26:05.620 --> 00:26:10.220
<v Michael Booth>discussed offline like there's nothing new here people have always been building little widgets

00:26:10.740 --> 00:26:16.759
<v Michael Booth>to solve problems i guess the game changer here is that you can do this incredibly quickly so you

00:26:16.780 --> 00:26:21.280
<v Michael Booth>can build a lot of good things quickly or you can potentially build a lot of bad things quickly

00:26:21.560 --> 00:26:26.560
<v Michael Booth>so having some sort of vision around how to do it with some degree of discipline I think matters

00:26:27.060 --> 00:26:31.920
<v Michael Booth>but there's always been those solutions out there and I think again with this theme of make

00:26:32.100 --> 00:26:36.900
<v Michael Booth>everything an experiment if you can do experiments quickly then you can work out well is this does

00:26:36.980 --> 00:26:42.200
<v Michael Booth>this actually fly is it actually solving a real problem and well maybe in the past I could do it

00:26:42.180 --> 00:26:48.320
<v Michael Booth>at the 90% level, but nowadays I can build the 99%, still do it 10 times faster than the 90%

00:26:48.640 --> 00:26:53.320
<v Michael Kennedy>solution. Yeah. It really takes away some of the limitations. You know, you're like, yeah,

00:26:53.600 --> 00:26:58.580
<v Michael Kennedy>everyone hates this. It's a hassle or it could be smoother, could automate more, but it's going to

00:26:58.720 --> 00:27:03.600
<v Michael Kennedy>take four weeks and it just doesn't justify someone working on it for four weeks. But if it's going to

00:27:03.720 --> 00:27:08.419
<v Michael Kennedy>take four hours, you know what? It might be worth four hours, right? There's that unproductive

00:27:08.440 --> 00:27:12.460
<v Michael Kennedy>afternoon anyway that you had the big meeting in the morning and you can't focus it's just you

00:27:12.460 --> 00:27:17.960
<v Michael Booth>could build it then you know yes and the implication here is that you have requisite skills to build it

00:27:18.100 --> 00:27:22.480
<v Michael Booth>so of course everybody can build software these days and I think that's a great piece of

00:27:22.600 --> 00:27:27.380
<v Michael Booth>democratization that has occurred I would argue that not everybody can build good software or

00:27:27.700 --> 00:27:33.100
<v Michael Booth>sufficient software and that's not a critique of anything other than I think experience matters and

00:27:33.500 --> 00:27:38.400
<v Michael Booth>some degree of training matters still so that you can actually shape things that work together or

00:27:38.620 --> 00:27:44.220
<v Michael Booth>have thought through some of the problems that are coming next. So it's not just about building

00:27:44.230 --> 00:27:48.700
<v Michael Booth>a solution that works for today, although in some cases that may be warranted, but it's also

00:27:48.940 --> 00:27:53.220
<v Michael Booth>thinking about, well, how might this fit in a broader ecosystem? I think we should put the

00:27:53.340 --> 00:27:58.520
<v Michael Kennedy>whole sort of vibe coding stuff as like, all right, not that. I could use AI to try to do

00:27:58.820 --> 00:28:04.480
<v Michael Kennedy>computational chemistry, but I'm highly unqualified to do so, like highly unqualified, even though I

00:28:04.420 --> 00:28:09.180
<v Michael Kennedy>studied it long ago so it's not a knock on me that i'm dumb it's just i don't know chemistry that

00:28:09.300 --> 00:28:13.780
<v Michael Kennedy>well right i don't i don't already do that so i think it's fair to say like look you have these

00:28:13.900 --> 00:28:17.500
<v Michael Kennedy>companies full of people who are already programmers and they have i think a really

00:28:17.640 --> 00:28:22.720
<v Michael Kennedy>important part is the domain name domain knowledge to like understand and solve these problems like

00:28:22.980 --> 00:28:27.340
<v Michael Kennedy>not just from like writing code but this is actually what we want to accomplish here not just

00:28:27.620 --> 00:28:31.700
<v Michael Kennedy>this is how the code works make the code better yeah it's always just about making the code better

00:28:31.740 --> 00:28:44.800
<v Michael Booth>But I think, and this hope comes out in the article, is that if you actually have skills and you're embedded more so within a business, then you can understand the business problems by definition much better.

00:28:45.280 --> 00:28:53.280
<v Michael Booth>And I think combining that domain knowledge with if you're bringing the software engineering skills, I think that then becomes a really potent force.

00:28:53.760 --> 00:29:05.480
<v Michael Booth>I'm not saying that like within sort of more technology focused parts of businesses that you don't have people who can now build things much faster and probably better and pen testing and other things.

00:29:05.880 --> 00:29:33.580
<v Michael Booth>But I think my focus here is really just if I'm, if I have the requisite skill, if I can do my computational chemistry in my small team, as it were, what can I, how can I then sort of leverage those skills to really build software that matters for my team and solves, solve those sort of problems, which probably never would have got off the ground before. Or if they did, as I say, they're only getting sort of maybe 90% of the way there and not really nailing the problem.

00:29:33.700 --> 00:29:38.700
<v Michael Kennedy>Let's talk through some of the main points of your article. So top one here is what this looks

00:29:38.820 --> 00:29:42.560
<v Michael Kennedy>like in practice. And you give a bunch of good examples. So maybe you could talk through each

00:29:42.680 --> 00:29:47.940
<v Michael Kennedy>one of these. So the first one is onboarding accelerators. Tell us about that. In most teams,

00:29:48.400 --> 00:29:53.040
<v Michael Booth>onboarding can be a little bit painful. How much of your budget as it were, do you want to spend on

00:29:53.200 --> 00:29:58.900
<v Michael Booth>fixing that problem? So some of it can just be fixed by you have a buddy system and people talk

00:29:58.920 --> 00:30:04.000
<v Michael Booth>to each other better, right? In other ways, it may be technical setup. And if you can actually

00:30:04.520 --> 00:30:09.560
<v Michael Booth>develop a script, which runs for more than one person on one day, so you can build in that

00:30:09.840 --> 00:30:14.640
<v Michael Booth>robustness where a script might have used to have failed, you can now sort of, yeah, just accelerate

00:30:14.840 --> 00:30:20.180
<v Michael Booth>that onboarding. And everybody then is on hopefully a very similar footing, which helps as well. So

00:30:20.180 --> 00:30:24.760
<v Michael Booth>you don't have the, it works on my machine only problem. This is great. And it's such low hanging

00:30:24.780 --> 00:30:29.420
<v Michael Kennedy>fruit. And I'm sure people can tell that I'm excited about this idea. But as you describe

00:30:29.700 --> 00:30:34.800
<v Michael Kennedy>that, I'm like, okay, and we could do this and this and this. So for example, I imagine a typical

00:30:35.080 --> 00:30:41.620
<v Michael Kennedy>onboarding is here is a wiki, go read the setting up your machine, select Mac or Linux or Windows

00:30:41.740 --> 00:30:45.900
<v Michael Kennedy>or whatever you're doing. I think go down the script, right? You're like, okay, well do that.

00:30:45.960 --> 00:30:50.040
<v Michael Kennedy>And then we'll see you at lunch. That's one way. But with some of these AI tools, you could build

00:30:50.060 --> 00:30:53.560
<v Michael Kennedy>like cool little scripts that will go along and do a lot of it,

00:30:53.560 --> 00:30:56.880
<v Michael Kennedy>but also do things like check and make sure that you have the right service pack

00:30:57.010 --> 00:30:59.000
<v Michael Kennedy>because we're not going to allow you to run this old version of Windows

00:30:59.640 --> 00:31:02.080
<v Michael Kennedy>and then install this connection to our database,

00:31:02.480 --> 00:31:04.120
<v Michael Kennedy>potentially even if it is Q&A or whatever.

00:31:04.840 --> 00:31:06.580
<v Michael Kennedy>And beyond just the setting up,

00:31:06.890 --> 00:31:08.740
<v Michael Kennedy>maybe something about the way things are set up changes.

00:31:09.120 --> 00:31:10.700
<v Michael Kennedy>So you could write a little program that says,

00:31:11.080 --> 00:31:12.800
<v Michael Kennedy>here's the things we want set up.

00:31:13.840 --> 00:31:17.040
<v Michael Kennedy>When it changes, I want you to go look at the machine again

00:31:17.060 --> 00:31:20.180
<v Michael Kennedy>and tell me if it's still good or if we need to evolve it right.

00:31:20.310 --> 00:31:21.520
<v Michael Kennedy>Like that's really hard to do.

00:31:21.640 --> 00:31:24.160
<v Michael Kennedy>Say like you set it up two years ago, is it still good?

00:31:24.260 --> 00:31:26.760
<v Michael Booth>And I think the other thing is you can actually document it, right?

00:31:27.020 --> 00:31:30.420
<v Michael Booth>So you can easily point the machine at the script that you've just written

00:31:30.610 --> 00:31:32.760
<v Michael Booth>and make sure that the documentation is in sync

00:31:33.060 --> 00:31:36.920
<v Michael Booth>because some users are not going to be able to like read shell, for example,

00:31:37.320 --> 00:31:38.540
<v Michael Booth>if it's that sort of thing.

00:31:38.940 --> 00:31:41.640
<v Michael Booth>But if you have the documentation which is tightly synced with it,

00:31:41.940 --> 00:31:44.380
<v Michael Booth>then you've, I think, hopefully got the best of both worlds.

00:31:45.540 --> 00:31:49.020
<v Michael Kennedy>This portion of Talk Python To Me is brought to you by our AI tools.

00:31:49.760 --> 00:31:56.760
<v Michael Kennedy>You know that thing where you ask an AI something about Python and it confidently tells you about the library version from 18 months ago?

00:31:57.480 --> 00:31:59.480
<v Michael Kennedy>Well, we fixed that, at least for our shows.

00:32:00.320 --> 00:32:03.680
<v Michael Kennedy>Talk Python and Python Bytes both have MCP servers now.

00:32:04.140 --> 00:32:12.940
<v Michael Kennedy>Connect Talk Python and your AI can search over 550 episodes, full transcripts, every guest, and the entire course catalog of Talk Python courses.

00:32:13.720 --> 00:32:19.140
<v Michael Kennedy>Connect Python Bytes, and it gets almost 500 episodes of Python news going back to 2016,

00:32:19.900 --> 00:32:22.180
<v Michael Kennedy>including every link we've ever put in the show notes.

00:32:22.540 --> 00:32:24.220
<v Michael Kennedy>This means you can say things like,

00:32:24.680 --> 00:32:28.440
<v Michael Kennedy>ask Talk Python what astral joining OpenAI means for uv,

00:32:29.300 --> 00:32:32.240
<v Michael Kennedy>or what has Python Bytes said about Locust,

00:32:32.440 --> 00:32:36.060
<v Michael Kennedy>and get a real answer with real links, not a hallucination.

00:32:36.720 --> 00:32:40.420
<v Michael Kennedy>Name one of our shows in your prompt, and your AI knows exactly where to look.

00:32:40.840 --> 00:32:43.700
<v Michael Kennedy>And if you live in the terminal, Talk Python now has a CLI too.

00:32:44.180 --> 00:32:48.540
<v Michael Kennedy>One line, uvtoolinstalltalk-python-cli.

00:32:49.140 --> 00:32:54.140
<v Michael Kennedy>Then search the episodes, transcripts, guests, and courses without ever even opening a browser.

00:32:54.520 --> 00:32:57.620
<v Michael Kennedy>It's open source and it outputs text, JSON, or Markdown.

00:32:58.120 --> 00:33:01.380
<v Michael Kennedy>So it also feeds AI tools that don't speak MCP.

00:33:01.940 --> 00:33:03.340
<v Michael Kennedy>And here's the real reason I built it.

00:33:03.660 --> 00:33:06.180
<v Michael Kennedy>Both shows cover around 10 years of Python history.

00:33:06.460 --> 00:33:09.040
<v Michael Kennedy>The people, the decisions, the packages that took over,

00:33:09.500 --> 00:33:11.040
<v Michael Kennedy>and the ones that quietly didn't.

00:33:11.780 --> 00:33:14.960
<v Michael Kennedy>This enhanced access to all of our information is free.

00:33:15.540 --> 00:33:18.080
<v Michael Kennedy>No account, no API keys, nothing to buy.

00:33:18.660 --> 00:33:22.120
<v Michael Kennedy>That history contained in these shows should be there for all of us.

00:33:22.760 --> 00:33:27.160
<v Michael Kennedy>So visit talkpython.fm and PythonByte.fm and click the MCP link in the nav bar.

00:33:27.660 --> 00:33:30.540
<v Michael Kennedy>Connect them right now to your agents so that they will be accessible

00:33:30.920 --> 00:33:32.060
<v Michael Kennedy>anytime they're needed in the future.

00:33:32.620 --> 00:33:33.740
<v Michael Kennedy>Hope you all enjoy the access.

00:33:34.960 --> 00:33:36.940
<v Michael Kennedy>Okay, the next one I'm also super excited about,

00:33:37.200 --> 00:33:39.480
<v Michael Kennedy>Internal tool, user experience, polish.

00:33:39.830 --> 00:33:43.000
<v Michael Kennedy>For somebody like me, I tend to write Python and SQL, right?

00:33:43.180 --> 00:33:47.620
<v Michael Booth>I'll spin up Streamlit if I want a UI for something as an example.

00:33:47.970 --> 00:33:52.320
<v Michael Booth>But I typically think that CSS and similar are sort of dark arts, right?

00:33:52.760 --> 00:33:57.520
<v Michael Booth>However, this sort of opens up possibilities with dashboards and whatnot where they were

00:33:57.640 --> 00:34:01.580
<v Michael Booth>sort of okay, but actually with a little bit of polish, they'll become much more usable.

00:34:02.080 --> 00:34:06.460
<v Michael Booth>And for somebody like me, yeah, I don't want to have that specific set of skills,

00:34:06.980 --> 00:34:10.000
<v Michael Booth>But with a little bit of work with the machine, I can probably get it.

00:34:10.270 --> 00:34:15.080
<v Michael Booth>Not to the point of a graphic designer's sort of capability, but maybe a bit better than it was.

00:34:15.379 --> 00:34:18.220
<v Michael Booth>And people respond to interfaces, right?

00:34:18.520 --> 00:34:23.960
<v Michael Booth>If you have an interface which is perfectly functional but looks rubbish, people don't trust it.

00:34:24.020 --> 00:34:28.159
<v Michael Kennedy>Back in the day when it was more desktop apps, a lot of Visual Basic type of stuff,

00:34:28.280 --> 00:34:31.899
<v Michael Kennedy>people would describe these kind of tools as battleship gray.

00:34:32.540 --> 00:34:34.000
<v Michael Kennedy>Like technically they have a color.

00:34:34.659 --> 00:34:37.000
<v Michael Kennedy>They just don't care about how they look.

00:34:37.419 --> 00:34:43.300
<v Michael Kennedy>They're just gray backgrounds with black and white bits, you know, like maybe a green button if you go crazy.

00:34:43.700 --> 00:34:43.940
<v Michael Kennedy>Who knows?

00:34:44.320 --> 00:34:44.740
<v Michael Kennedy>You know what I mean?

00:34:45.399 --> 00:34:46.960
<v Michael Kennedy>And they were just uninspiring.

00:34:47.320 --> 00:34:47.840
<v Michael Booth>No, absolutely.

00:34:48.240 --> 00:34:50.620
<v Michael Booth>I, throughout my career, have done a lot in Excel, right?

00:34:50.879 --> 00:34:52.940
<v Michael Booth>And one can argue the merits of that.

00:34:53.060 --> 00:34:55.780
<v Michael Booth>And I think there's lots of reasons not to like Excel.

00:34:56.020 --> 00:34:57.580
<v Michael Booth>However, lots of people use it.

00:34:57.900 --> 00:35:04.180
<v Michael Booth>So I think if you're working with end users who do have to use it, then even in Excel, you can make a UI,

00:35:04.500 --> 00:35:05.520
<v Michael Booth>which looks not too bad,

00:35:05.650 --> 00:35:08.140
<v Michael Booth>or you can have one which is just completely horrible.

00:35:08.520 --> 00:35:10.580
<v Michael Booth>So I think it doesn't matter

00:35:10.670 --> 00:35:11.900
<v Michael Booth>what you're developing the tool in.

00:35:12.110 --> 00:35:13.060
<v Michael Booth>If you can polish the interface,

00:35:13.420 --> 00:35:14.920
<v Michael Booth>you can get some much better usability.

00:35:15.240 --> 00:35:16.540
<v Michael Kennedy>And it's simple things like

00:35:16.900 --> 00:35:18.380
<v Michael Kennedy>you've got to enter all this stuff in an order,

00:35:18.640 --> 00:35:20.160
<v Michael Kennedy>but if you enter it in the wrong order,

00:35:20.260 --> 00:35:21.640
<v Michael Kennedy>it's really hard to change it.

00:35:21.920 --> 00:35:23.000
<v Michael Kennedy>But hey, Claude,

00:35:23.240 --> 00:35:25.140
<v Michael Kennedy>could you make this drag and drop reorderable?

00:35:25.700 --> 00:35:25.920
<v Michael Kennedy>Sure.

00:35:27.420 --> 00:35:28.440
<v Michael Kennedy>Now a drag and drop reorder.

00:35:28.570 --> 00:35:31.540
<v Michael Kennedy>Like, oh, we have to use to delete it

00:35:31.600 --> 00:35:33.220
<v Michael Kennedy>and start over if we entered it in the wrong order.

00:35:33.320 --> 00:35:34.340
<v Michael Kennedy>Now we just reorder it.

00:35:34.400 --> 00:35:35.200
<v Michael Kennedy>That's incredible, right?

00:35:35.540 --> 00:35:37.340
<v Michael Kennedy>That kind of stuff is just so good.

00:35:37.660 --> 00:35:40.620
<v Michael Booth>Claude, you're an expert UX designer,

00:35:41.060 --> 00:35:44.460
<v Michael Booth>and you need to allow for appropriate accessibility features.

00:35:44.900 --> 00:35:47.100
<v Michael Booth>Can you draw on your best practice knowledge

00:35:47.270 --> 00:35:49.880
<v Michael Booth>to create a beautiful UX, potentially?

00:35:50.220 --> 00:35:53.000
<v Michael Booth>I haven't done that experiment, but I suspect it probably works.

00:35:53.100 --> 00:35:54.060
<v Michael Kennedy>It would work fantastically.

00:35:54.260 --> 00:35:57.320
<v Michael Kennedy>You could say, like, look, I think we wrote this website,

00:35:57.530 --> 00:36:00.600
<v Michael Kennedy>and I don't necessarily think it's accessible to blind people.

00:36:00.860 --> 00:36:04.360
<v Michael Kennedy>Could you go through and just look and see what's not great

00:36:04.380 --> 00:36:05.600
<v Michael Kennedy>and just fix that for me.

00:36:05.690 --> 00:36:06.760
<v Michael Kennedy>Or if you need help, ask me,

00:36:06.880 --> 00:36:08.780
<v Michael Kennedy>but probably you can fix 95% of it.

00:36:09.020 --> 00:36:10.060
<v Michael Kennedy>Like that kind of stuff would be great.

00:36:10.180 --> 00:36:12.660
<v Michael Booth>Yeah, again, I didn't think this is a call

00:36:12.770 --> 00:36:14.640
<v Michael Booth>out to get rid of all UX designers.

00:36:14.850 --> 00:36:17.820
<v Michael Booth>I think it's to say to the existing UX designers,

00:36:18.000 --> 00:36:19.580
<v Michael Booth>how do you work with the machine?

00:36:19.810 --> 00:36:21.940
<v Michael Booth>And rather than you only had time to polish

00:36:22.570 --> 00:36:24.280
<v Michael Booth>one dashboard or whatever it was,

00:36:24.560 --> 00:36:26.580
<v Michael Booth>now you can polish a whole heap of them

00:36:27.260 --> 00:36:29.180
<v Michael Booth>and get consistency where it's appropriate

00:36:29.370 --> 00:36:30.020
<v Michael Booth>and things like that.

00:36:30.220 --> 00:36:31.840
<v Michael Booth>So people are nervous, right,

00:36:32.000 --> 00:36:34.860
<v Michael Booth>around the AI is going to take my job stuff, right?

00:36:34.930 --> 00:36:38.500
<v Michael Booth>And I feel that and I see that as I sort of go around places.

00:36:38.630 --> 00:36:40.400
<v Michael Booth>But I think that's the wrong mindset.

00:36:40.510 --> 00:36:42.100
<v Michael Booth>And I'm trying to get the view out there

00:36:42.260 --> 00:36:44.660
<v Michael Booth>that you can work with the tools to get really good results.

00:36:45.200 --> 00:36:46.400
<v Michael Booth>But you can't not do that.

00:36:46.470 --> 00:36:48.460
<v Michael Booth>You can't say, I want to live five years ago

00:36:48.620 --> 00:36:49.560
<v Michael Booth>because that world's gone.

00:36:49.700 --> 00:36:51.860
<v Michael Kennedy>Again, this is a case of like potentially

00:36:52.660 --> 00:36:54.560
<v Michael Kennedy>competing against non, what did I,

00:36:54.850 --> 00:36:56.900
<v Michael Kennedy>I forgot the term I was using, non-consumption.

00:36:57.080 --> 00:36:59.240
<v Michael Kennedy>It could be this is a tool that was just never

00:36:59.780 --> 00:37:01.960
<v Michael Kennedy>was going to get somebody who knew about accessibility

00:37:01.980 --> 00:37:07.100
<v Michael Kennedy>review it. And now since it's basically free to ask, you might as well ask, like, could you just

00:37:07.260 --> 00:37:10.660
<v Michael Kennedy>make that a little bit better? Because we do have some folks in our company who would really benefit

00:37:10.770 --> 00:37:14.520
<v Michael Kennedy>from that, right? Yeah. Because the people who work on the accessibility, they're working on the

00:37:14.640 --> 00:37:18.560
<v Michael Kennedy>real website and the real tools, you know what I mean? Again, it opens up opportunities for

00:37:18.760 --> 00:37:22.780
<v Michael Booth>inclusion, right? So yeah, I think that's very exciting. Absolutely. There's so many cool things

00:37:22.900 --> 00:37:28.560
<v Michael Booth>like that. All right. Decision pack generators. Typically, you've always got packs going to

00:37:28.580 --> 00:37:34.480
<v Michael Booth>decision makers and governance forums and cut and paste and all those sort of awful things can

00:37:34.960 --> 00:37:40.340
<v Michael Booth>both introduce errors and just be time consuming so i think the ability to pull those sort of

00:37:40.540 --> 00:37:45.340
<v Michael Booth>materials together in a automated way which you probably would never have done because

00:37:45.960 --> 00:37:51.280
<v Michael Booth>the cost of that was just far too high compared to the effort and result you're after so i think

00:37:51.500 --> 00:37:56.100
<v Michael Booth>again whether it's a script which is automating some sort of powerpoint thing again avoid

00:37:56.120 --> 00:38:00.540
<v Michael Booth>PowerPoint at all costs if you can. But yeah, anything to pull together packs, which make it

00:38:00.740 --> 00:38:05.660
<v Michael Booth>accessible to people that have relevant linkages to other documents and stuff. There's just a lot

00:38:05.660 --> 00:38:10.420
<v Michael Booth>of opportunities there. I think that's a huge opportunity, actually. Hyperteam databases. So

00:38:10.530 --> 00:38:16.400
<v Michael Kennedy>before you jump into this, I think one of the big areas that is not solved with AI very well,

00:38:16.860 --> 00:38:23.260
<v Michael Kennedy>maybe almost at all, is operational stuff like DevOps. I need to make sure that this server is

00:38:23.260 --> 00:38:28.260
<v Michael Kennedy>up and running and that we have backups for this and that they run and we can, you know, like just

00:38:28.420 --> 00:38:33.840
<v Michael Kennedy>this managing multiple machines is not, it's just not really where the AI works that well. I know you

00:38:33.940 --> 00:38:39.000
<v Michael Kennedy>can make it do these things, but generally it's on local files and chats and stuff, right? So this

00:38:39.150 --> 00:38:43.600
<v Michael Kennedy>concept of hyper team databases ties into like basically avoiding that, right? Yes and no, I'd say.

00:38:43.740 --> 00:38:49.700
<v Michael Booth>Okay. I'm not a DevOps expert at all. I have very limited expertise, in fact. So that's something I

00:38:49.740 --> 00:38:56.700
<v Michael Booth>I wouldn't talk to. But in terms of, I guess, the thrust of this is really, so databases sort of used

00:38:56.780 --> 00:39:02.260
<v Michael Booth>to be hard, maybe, or harder. I guess, yeah, one of the things I do is use tools like DuckDB or

00:39:02.520 --> 00:39:08.300
<v Michael Booth>SQLite. So I don't have to have the whole client server database thing set up. So if I just want

00:39:08.300 --> 00:39:13.380
<v Michael Booth>to capture data within my team, and it's just my team sharing it, then there's a lot of options here,

00:39:13.480 --> 00:39:19.220
<v Michael Booth>I think. And although DuckDB, that being said, has just released an extension called Quack,

00:39:19.480 --> 00:39:21.900
<v Michael Booth>which opens up sort of client server model.

00:39:22.200 --> 00:39:24.800
<v Michael Booth>But yeah, so I think that's really the idea here.

00:39:24.800 --> 00:39:28.280
<v Michael Booth>How do you allow for just a really lightweight place

00:39:28.400 --> 00:39:30.480
<v Michael Booth>where you can capture data as part of your application

00:39:30.750 --> 00:39:31.480
<v Michael Booth>or something like that?

00:39:31.900 --> 00:39:35.280
<v Michael Booth>Or you can shove your logs in there or whatever it is.

00:39:35.430 --> 00:39:38.080
<v Michael Booth>Because I think as soon as you sort of side point,

00:39:38.280 --> 00:39:41.360
<v Michael Booth>but related is as soon as you have observability data,

00:39:41.700 --> 00:39:43.620
<v Michael Booth>you can start to ask questions about,

00:39:43.620 --> 00:39:45.600
<v Michael Booth>well, how are people actually using this software

00:39:45.820 --> 00:39:47.080
<v Michael Booth>and can we learn from that?

00:39:47.180 --> 00:39:49.260
<v Michael Kennedy>Right, like time series type stuff and so on.

00:39:49.420 --> 00:39:51.920
<v Michael Kennedy>Or user flow, they went here, then here, and then they did this.

00:39:52.080 --> 00:39:55.220
<v Michael Booth>And traditionally, it just would have been expensive to do that.

00:39:55.340 --> 00:39:58.320
<v Michael Booth>And nowadays, I try not to use the trivial word too much

00:39:58.440 --> 00:40:03.360
<v Michael Booth>because it understates the amazing capability of these packages

00:40:03.780 --> 00:40:05.180
<v Michael Booth>to actually deliver functionality.

00:40:05.320 --> 00:40:08.740
<v Michael Kennedy>I think some interesting ways that this recommendation is really powerful

00:40:08.940 --> 00:40:13.100
<v Michael Kennedy>is so many of these internal tools that people have,

00:40:13.560 --> 00:40:15.240
<v Michael Kennedy>even in a company of 1,000 people,

00:40:15.580 --> 00:40:19.520
<v Michael Kennedy>there might be six people that need to use this little internal web app.

00:40:19.940 --> 00:40:22.260
<v Michael Kennedy>They're all the ones who approve expenses.

00:40:22.960 --> 00:40:25.260
<v Michael Kennedy>And it's about scanning and approving expenses.

00:40:25.860 --> 00:40:30.280
<v Michael Kennedy>Do you need replica failover Postgres for that?

00:40:30.560 --> 00:40:30.940
<v Michael Kennedy>Probably not.

00:40:31.420 --> 00:40:31.880
<v Michael Kennedy>I mean, maybe.

00:40:31.980 --> 00:40:35.040
<v Michael Kennedy>But if it's really a small thing, it could just be a SQLite file.

00:40:35.540 --> 00:40:39.200
<v Michael Kennedy>And then the deployment and management of it and backup of it becomes so simple.

00:40:39.500 --> 00:40:41.180
<v Michael Kennedy>I think there's a lot to do with this.

00:40:41.440 --> 00:40:50.300
<v Michael Booth>Yeah, through late 2018, 2019, three or four years there, this whole push was to sell a whole bunch of infrastructure.

00:40:50.960 --> 00:40:54.180
<v Michael Booth>And I think people spent way more than they needed to.

00:40:54.440 --> 00:40:59.020
<v Michael Booth>And I think you'll see that in the DuckDB sort of materials and mother duck and things like that,

00:40:59.260 --> 00:41:02.420
<v Michael Booth>where they've just called out the fact that most people don't have big data.

00:41:02.800 --> 00:41:06.240
<v Michael Booth>And I feel you're probably overpaying for infrastructure.

00:41:06.760 --> 00:41:08.080
<v Michael Booth>Again, depends on your industry, right?

00:41:08.140 --> 00:41:13.860
<v Michael Booth>some industries have mandated requirements how they handle their data but i think again depending

00:41:13.870 --> 00:41:17.740
<v Michael Booth>on the nature of your business and your team if you've just got a backup of the database

00:41:18.600 --> 00:41:23.820
<v Michael Kennedy>that might be good enough it's not just paying for the infrastructure you know like we now have

00:41:23.940 --> 00:41:29.940
<v Michael Kennedy>like a huge spark cluster that does whatever yeah you now need somebody who understands what a spark

00:41:30.180 --> 00:41:35.800
<v Michael Kennedy>cluster is how to run it what happens if it goes down someone's getting called whereas sqlite is

00:41:35.800 --> 00:41:42.400
<v Michael Kennedy>just it's a file if the app is running the sqlite quote database is also running in process you're

00:41:42.400 --> 00:41:47.500
<v Michael Booth>good to go that really like fits a lot of these apps well yeah but i think the marketing arms of

00:41:47.500 --> 00:41:52.240
<v Michael Booth>some of these uh big data infrasers just it's i don't know whether it's they're selling fomo or

00:41:52.320 --> 00:41:57.940
<v Michael Booth>what but um i think you see a lot of suboptimal decisions in that space i 100 agree with you i

00:41:58.240 --> 00:42:05.760
<v Michael Kennedy>think what they're selling is the ability to like dream big like when we get a petabyte of data we're

00:42:05.780 --> 00:42:10.260
<v Michael Kennedy>going to need to be able to ask questions about it. Like, yes, maybe, but you just launched the site

00:42:10.440 --> 00:42:15.820
<v Michael Kennedy>and you don't really have any users yet. So later, when you get there, that'd be a great idea, but

00:42:15.910 --> 00:42:20.480
<v Michael Kennedy>like, don't kill yourself with that kind of stuff early, right? So anyway, that's, I think that's

00:42:20.580 --> 00:42:25.100
<v Michael Kennedy>neat. All right. Template app patterns. This one is, I didn't expect this one. Tell us about this.

00:42:25.340 --> 00:42:30.140
<v Michael Booth>Yeah. So this was just as I played with some things, it occurred to me that maybe it would

00:42:30.140 --> 00:42:36.580
<v Michael Booth>work okay so it doesn't have to be toml yaml whatever your favorite language is there for

00:42:36.760 --> 00:42:42.380
<v Michael Booth>config depending on what you're doing you might find that there's just repeatable patterns and

00:42:43.180 --> 00:42:49.460
<v Michael Booth>so rather than having to build 10 different little applications you may just be able to again extract

00:42:49.880 --> 00:42:54.720
<v Michael Booth>the relevant things out into config and have a whole suite of applications which are pretty much

00:42:54.720 --> 00:43:00.100
<v Michael Booth>the same architecture do very very similar things and you're just tweaking the config you know a lot

00:43:00.120 --> 00:43:05.420
<v Michael Kennedy>big internal companies they're like you have to talk to this single sign-on thing that we have

00:43:05.720 --> 00:43:10.040
<v Michael Kennedy>and you have to log to this thing that every app log you know there's just like this repetitive

00:43:10.260 --> 00:43:14.960
<v Michael Kennedy>stuff and it seems like it's pretty valuable to document that yeah and again depends on your

00:43:15.100 --> 00:43:20.840
<v Michael Booth>industry depends on internal policies and stuff like that and those policies can be well very

00:43:20.880 --> 00:43:25.800
<v Michael Booth>well founded right but if you're not doing that why would you invest the money because it all comes

00:43:25.820 --> 00:43:30.820
<v Michael Booth>down to money, right? There's costs, there's real costs to all this stuff. So if you don't need the

00:43:31.000 --> 00:43:36.680
<v Michael Booth>bulletproof solution, then go with the one that gives you 99% uptime as it were. Absolutely. And

00:43:36.780 --> 00:43:42.740
<v Michael Kennedy>that someone who is not an expert can continue to manage. So let's talk about upside, risk and

00:43:42.920 --> 00:43:47.720
<v Michael Kennedy>unicorns. So what's the upside here, you think? We talked about some already, but give it, give it a

00:43:47.980 --> 00:43:53.060
<v Michael Booth>rundown. I think you can just move faster. Everything's an experiment. You learn quickly,

00:43:53.160 --> 00:44:00.140
<v Michael Booth>you fail quickly you refine and you decide yeah do we do we move forward or is this just an

00:44:00.340 --> 00:44:04.400
<v Michael Booth>experiment which taught us that this is not something that we want to do or as we did it

00:44:04.400 --> 00:44:08.080
<v Michael Booth>we discovered that the team down the road has actually solved this problem and we'll just

00:44:08.180 --> 00:44:13.460
<v Michael Booth>borrow what they've done so but i think sometimes getting away from that piece of paper we drew a

00:44:13.540 --> 00:44:18.960
<v Michael Booth>diagram which nobody can quite decipher to well here's what we're thinking about and the people

00:44:18.980 --> 00:44:24.280
<v Michael Booth>can react to it and go yep we've already done that or no that's a great idea and you guys should

00:44:24.720 --> 00:44:29.800
<v Michael Booth>pursue that the autonomy thing i think matters i think autonomy isn't a bad word i think it can be

00:44:29.920 --> 00:44:35.680
<v Michael Booth>viewed that way at times but i think taking charge of your own team's productivity is not a bad

00:44:35.760 --> 00:44:40.860
<v Michael Kennedy>thing yeah a lot of times it would be well we're not really the developers that mess with the api

00:44:40.940 --> 00:44:44.920
<v Michael Kennedy>or the database we just consume that stuff so if we want any of these features we've got to get them

00:44:44.940 --> 00:44:50.700
<v Michael Kennedy>on board. Whereas here, it's like, actually, we can just build enough of our own stuff. Or maybe

00:44:50.900 --> 00:44:55.340
<v Michael Kennedy>it's, yeah, but that part of the application is written in Swift. No one here knows how to write

00:44:55.540 --> 00:44:59.600
<v Michael Kennedy>Swift. Well, you know what? You could bring Cloud in. Cloud could help you work through that portion,

00:44:59.790 --> 00:45:04.620
<v Michael Kennedy>right? Get that integrated or whatever. So I think there's a lot of power to the autonomy.

00:45:04.880 --> 00:45:10.400
<v Michael Booth>Yeah. And something's that critical within an app, right? So if the UI is sort of good enough,

00:45:10.740 --> 00:45:13.940
<v Michael Booth>maybe it doesn't matter about having that skill. But if you have the skill for the

00:45:13.960 --> 00:45:18.400
<v Michael Booth>sort of internal engine bit, maybe you can work well enough. I think another one to throw in here

00:45:18.480 --> 00:45:24.600
<v Michael Kennedy>on the upside is the getting over the fear of you touch it, you break it, you bought it kind of thing.

00:45:25.000 --> 00:45:28.980
<v Michael Kennedy>Because if you're not the one who wrote it and the person who wrote it left, there's a lot of

00:45:29.280 --> 00:45:35.200
<v Michael Kennedy>unknown. But one thing that Claude and those other Agenic tools are good at is just study this

00:45:35.400 --> 00:45:43.920
<v Michael Kennedy>application, tell me what it does and what parts are involved in trying to add feature X. It's

00:45:43.940 --> 00:45:48.300
<v Michael Kennedy>all are like no one understands it too well no one's worked on it but this looks pretty straightforward

00:45:48.600 --> 00:45:53.400
<v Michael Booth>and here's all we got to do you know yeah no the explain functionality is quite amazing isn't it but

00:45:53.900 --> 00:45:57.880
<v Michael Booth>equally if you're going to explain it why not document it yeah keep your document in sync with

00:45:57.890 --> 00:46:03.060
<v Michael Booth>your code right and again the excuse that oh we don't have time to document it's like well really

00:46:03.580 --> 00:46:09.460
<v Michael Booth>if the machine can sort of get you 95 of the way there and you actually review it and just tweak it

00:46:09.480 --> 00:46:14.780
<v Michael Kennedy>feels like a win-win to me. 100%. It's like, if I can just kick off Clutter Codex and say,

00:46:15.140 --> 00:46:18.040
<v Michael Kennedy>spend all the time you need to document it, and here's the format where it goes,

00:46:18.180 --> 00:46:22.260
<v Michael Kennedy>and then I switch another tab and just go do something else, like, you should have documentation.

00:46:22.520 --> 00:46:27.460
<v Michael Booth>I always, as part of the readme or whatever, do the, what are we doing? Why are we doing it? And

00:46:27.600 --> 00:46:32.640
<v Michael Booth>how are we doing it? Because I think that framing is quite often missing from technical descriptions

00:46:32.780 --> 00:46:37.280
<v Michael Booth>of things. So the why is pretty important, I would say. It absolutely is. All right,

00:46:37.360 --> 00:46:40.320
<v Michael Kennedy>Not all perfect, though. Hidden risk. What are we talking about here?

00:46:40.520 --> 00:46:50.100
<v Michael Booth>Any sort of software developed by end users within organizations is, if not done appropriately well, can just introduce a bunch of risks.

00:46:50.720 --> 00:46:57.120
<v Michael Booth>Unknown dependencies, I guess, is just the idea that, yeah, you don't necessarily, I'm not talking about Python dependencies here.

00:46:57.120 --> 00:47:00.300
<v Michael Booth>I'm talking about you just don't understand how things interact.

00:47:00.720 --> 00:47:07.560
<v Michael Booth>So I think if your tool is, there's dependencies there between tools and stuff, you just want to make sure that they're well understood.

00:47:08.030 --> 00:47:10.400
<v Michael Booth>And that may not be immediately obvious.

00:47:10.860 --> 00:47:15.380
<v Michael Booth>Ownership sort of matters, right, in terms of you do want somebody to own a tool.

00:47:15.800 --> 00:47:17.220
<v Michael Booth>Can you have a team owning a tool?

00:47:17.400 --> 00:47:21.400
<v Michael Booth>Well, maybe you can, but I think you still want that sort of clear ownership.

00:47:21.960 --> 00:47:27.500
<v Michael Booth>So typically teams don't own things, like they might in principle, but you still need a real person.

00:47:27.840 --> 00:47:35.820
<v Michael Booth>And again, depending on what the solution is and depending on your organizational requirements and if you've got regulatory obligations.

00:47:36.440 --> 00:47:38.260
<v Michael Booth>Yeah. Do you have appropriate controls in place?

00:47:38.520 --> 00:47:41.140
<v Michael Booth>And it may be that you just don't really understand that at all.

00:47:41.380 --> 00:47:48.900
<v Michael Booth>If you're an end user, you may not appreciate what data controls you have to have in place or security controls and things like that.

00:47:49.110 --> 00:47:52.380
<v Michael Booth>Although to your point, maybe just get the machine to help some of that stuff.

00:47:52.540 --> 00:47:53.540
<v Michael Kennedy>For sure. But it's not easy.

00:47:53.840 --> 00:47:57.140
<v Michael Kennedy>Like, for example, like, oh, it's so great. We can just use SQLite now and that's our database.

00:47:57.520 --> 00:48:01.300
<v Michael Kennedy>And then somebody's, well, the way we back that up is we just copy the.sqlite file.

00:48:01.800 --> 00:48:06.340
<v Michael Kennedy>And it has all this PII and HIPAA violations by copying that file to the wrong place.

00:48:06.380 --> 00:48:07.880
<v Michael Kennedy>And like, it could be bad.

00:48:07.960 --> 00:48:08.960
<v Michael Booth>Data really matters, right?

00:48:09.140 --> 00:48:14.940
<v Michael Booth>And again, on industry, there are some very, very strict requirements on that stuff, as

00:48:14.940 --> 00:48:15.440
<v Michael Booth>there should be.

00:48:15.660 --> 00:48:19.800
<v Michael Booth>As an end user, you may not have appropriate understanding or visibility of those things.

00:48:20.020 --> 00:48:24.520
<v Michael Booth>So there are certainly applications where you need to have sufficient knowledge, right?

00:48:24.660 --> 00:48:28.640
<v Michael Kennedy>I would add another hidden risk is supply chain badness.

00:48:28.980 --> 00:48:29.040
<v Michael Kennedy>Yep.

00:48:29.140 --> 00:48:31.580
<v Michael Kennedy>That's actually been in the news so much lately, right?

00:48:31.780 --> 00:48:35.540
<v Michael Kennedy>Like with npm and PyPI to a lesser degree, but not to a zero degree.

00:48:36.140 --> 00:48:39.800
<v Michael Kennedy>But I mean, there's light, it was LiteLLM was pretty bad.

00:48:40.160 --> 00:48:44.400
<v Michael Kennedy>I was only out for a couple hours, but, and what these agents love to do is they love

00:48:44.440 --> 00:48:48.200
<v Michael Kennedy>to grab a package off of npm and install it and then, you know, get it.

00:48:48.680 --> 00:48:52.320
<v Michael Kennedy>Then either maybe there's no checks to make sure that they get installed.

00:48:52.480 --> 00:48:52.580
<v Michael Kennedy>Okay.

00:48:53.320 --> 00:48:53.380
<v Michael Kennedy>Right.

00:48:53.540 --> 00:48:56.940
<v Michael Kennedy>that they don't have a CVE in them, or if they do later,

00:48:57.420 --> 00:48:58.320
<v Michael Kennedy>who knows to patch it?

00:48:58.360 --> 00:48:59.880
<v Michael Kennedy>Because who knows even where it was used, right?

00:49:00.020 --> 00:49:01.140
<v Michael Kennedy>There's none of that stuff.

00:49:01.240 --> 00:49:03.880
<v Michael Booth>Yeah, so typically enterprises will have solutions in place

00:49:04.080 --> 00:49:06.780
<v Michael Booth>to sort of have internal mirrors of those sort of things.

00:49:07.000 --> 00:49:09.680
<v Michael Booth>But again, you've got to make sure that you're governing those well,

00:49:09.940 --> 00:49:11.300
<v Michael Booth>otherwise you can easily miss stuff.

00:49:11.380 --> 00:49:13.060
<v Michael Kennedy>Right, but does your AI know to use them?

00:49:13.800 --> 00:49:14.780
<v Michael Kennedy>Because if you're in the far,

00:49:15.240 --> 00:49:16.600
<v Michael Kennedy>the more you go toward the vibe side,

00:49:16.660 --> 00:49:18.080
<v Michael Kennedy>you just say, just make it.

00:49:18.420 --> 00:49:20.640
<v Michael Kennedy>I want it to look like Instagram or whatever, right?

00:49:20.700 --> 00:49:22.780
<v Michael Kennedy>It's like, well, Instagram uses this, so we're going to grab it.

00:49:22.960 --> 00:49:24.340
<v Michael Kennedy>You need some discipline around this stuff.

00:49:24.480 --> 00:49:26.300
<v Michael Kennedy>And then the unicorns.

00:49:26.350 --> 00:49:27.000
<v Michael Kennedy>I like this idea.

00:49:27.320 --> 00:49:28.120
<v Michael Kennedy>I'm on board with you.

00:49:28.460 --> 00:49:28.780
<v Michael Booth>What is this?

00:49:28.940 --> 00:49:29.780
<v Michael Booth>Sorry about the name.

00:49:30.000 --> 00:49:31.220
<v Michael Booth>Can be a bit pretentious, right?

00:49:31.320 --> 00:49:34.080
<v Michael Booth>The unicorn is just somebody with a pole in the head, right?

00:49:34.400 --> 00:49:38.720
<v Michael Booth>I think the idea is though, if you've, as I sort of flagged before, if you've got somebody

00:49:39.120 --> 00:49:46.500
<v Michael Booth>who has capability around software engineering, but also who has deep domain expertise, they

00:49:46.920 --> 00:49:47.960
<v Michael Booth>bring a lot to the table, right?

00:49:48.140 --> 00:49:50.440
<v Michael Booth>So every person in team brings something to the table.

00:49:50.820 --> 00:49:55.260
<v Michael Booth>I'm a great believer that you try and create environments where people can do their best work,

00:49:55.640 --> 00:49:59.780
<v Michael Booth>but you do have people who quite often have done different things in their careers and therefore

00:50:00.560 --> 00:50:07.840
<v Michael Booth>bring a unique set of skills in terms of just that depth in both software engineering and domain.

00:50:08.560 --> 00:50:14.160
<v Michael Booth>And those people can really, I think, bring a lot to the table in a team, which you don't necessarily

00:50:14.380 --> 00:50:19.380
<v Michael Booth>see a lot of. A lot of people like to stick to a particular single domain. So that's not a critique,

00:50:19.380 --> 00:50:20.760
<v Michael Booth>It's just my observation.

00:50:21.000 --> 00:50:29.960
<v Michael Kennedy>Yeah, I think having either somebody who has a lot of domain knowledge and programming skills or data science skills, depending on what you're trying to do, that's really, that would be ideal.

00:50:30.680 --> 00:50:32.520
<v Michael Kennedy>But those people are hard to come by.

00:50:32.800 --> 00:50:39.080
<v Michael Kennedy>So maybe you create a pair, like this person really understands the problem and has a little bit of skill in programming.

00:50:39.220 --> 00:50:42.420
<v Michael Kennedy>And this person is really good at programming and they know a little bit of what's going on.

00:50:42.500 --> 00:50:42.740
<v Michael Kennedy>You know what I mean?

00:50:42.820 --> 00:50:45.200
<v Michael Kennedy>Like that would be a really powerful combination, I think.

00:50:45.340 --> 00:50:50.400
<v Michael Booth>Those sort of buddy-pair type relationships, yeah, can certainly be another model there.

00:50:50.900 --> 00:50:56.240
<v Michael Booth>And having people talk to each other in teams in general is quite powerful, right?

00:50:56.560 --> 00:50:57.780
<v Michael Booth>And you can get some really good results.

00:50:58.060 --> 00:51:03.260
<v Michael Booth>So, yeah, I don't think you necessarily need maybe the unicorn person, but the unicorn team.

00:51:03.500 --> 00:51:06.900
<v Michael Kennedy>I imagine this will be companies and teams who adopt this.

00:51:07.100 --> 00:51:11.780
<v Michael Kennedy>It will probably feel a little bit like if you've never used a linter on your program,

00:51:12.280 --> 00:51:16.520
<v Michael Kennedy>rough black, something like that, that says you're doing all these things wrong. And you run it the

00:51:16.660 --> 00:51:21.740
<v Michael Kennedy>first time you're like, there's a thousand and seven problems. You're like, oh my, we can't hire

00:51:21.960 --> 00:51:25.920
<v Michael Kennedy>somebody for each one of those problems. You know what I mean? Like if those represent sort of these

00:51:26.100 --> 00:51:30.940
<v Michael Kennedy>apps that could really be improved. But I think with the velocity you can get with a couple of

00:51:31.040 --> 00:51:36.620
<v Michael Kennedy>people and Claude or Codex on them, you know, you could do this week, we're going to modernize

00:51:36.940 --> 00:51:40.660
<v Michael Kennedy>these two apps. The next week we're going to modernize those. And after a couple months,

00:51:40.820 --> 00:51:42.620
<v Michael Kennedy>six months, depending on how big your company is,

00:51:42.800 --> 00:51:44.560
<v Michael Kennedy>you'll have a lot of apps that are in good shape

00:51:44.720 --> 00:51:45.940
<v Michael Kennedy>and don't need much attention.

00:51:46.700 --> 00:51:48.320
<v Michael Kennedy>They've been running without being touched forever.

00:51:48.820 --> 00:51:49.800
<v Michael Kennedy>Now they just run better.

00:51:50.040 --> 00:51:52.540
<v Michael Booth>And you would like to think that as you do each of these experiments,

00:51:52.780 --> 00:51:53.680
<v Michael Booth>you learn stuff, right?

00:51:54.100 --> 00:51:57.160
<v Michael Booth>So I'm probably going to use Ruff, for example.

00:51:59.400 --> 00:52:01.580
<v Michael Booth>But you build up best practices, right?

00:52:01.880 --> 00:52:04.700
<v Michael Booth>So there's no way I let a coding assistant run

00:52:05.300 --> 00:52:07.340
<v Michael Booth>without locking it down severely, right?

00:52:08.140 --> 00:52:18.360
<v Michael Booth>And I think using your roughs and your TYs and mypyes and all that sort of stuff allows you to constrain the machine so that you're building a much better product each time.

00:52:18.500 --> 00:52:27.920
<v Michael Booth>And I think as you take those learnings out of the process, I think you can uplift the quality of the software that you're building, having really good tests there.

00:52:28.220 --> 00:52:34.700
<v Michael Booth>So just all those what I would consider very basic software disciplines enables you to move both faster and better.

00:52:34.860 --> 00:52:35.560
<v Michael Kennedy>Yeah, that's really cool.

00:52:35.800 --> 00:52:36.380
<v Michael Kennedy>I totally agree.

00:52:36.540 --> 00:52:42.220
<v Michael Kennedy>think you should tell your agent it can't move on until rough passes it can't move on until ty or

00:52:42.500 --> 00:52:47.620
<v Michael Kennedy>pyrefly or whatever you chose to pick and you set up the config files to like this is how we work in

00:52:47.660 --> 00:52:54.080
<v Michael Kennedy>our organization we format it like this we do this and so on and then it has to write code that

00:52:54.340 --> 00:52:57.480
<v Michael Kennedy>conforms to what you're supposed to be doing right because the tool will tell that no you're not done

00:52:57.600 --> 00:53:03.299
<v Michael Booth>like rough returned code one instead of zero try again with those disciplines which move you away

00:53:03.320 --> 00:53:05.860
<v Michael Booth>from maybe your vibe coding to the view of the world.

00:53:06.160 --> 00:53:09.560
<v Michael Booth>It really does allow for some pretty good software to be built.

00:53:09.660 --> 00:53:12.760
<v Michael Booth>But like most things, if you're not scrutinizing it appropriately,

00:53:13.180 --> 00:53:14.860
<v Michael Booth>you're not applying your critical thinking skills,

00:53:15.180 --> 00:53:18.580
<v Michael Booth>then you sort of are asking for a few problems, I would say.

00:53:18.760 --> 00:53:22.140
<v Michael Kennedy>All right, you put a little decision tree down here.

00:53:22.360 --> 00:53:24.840
<v Michael Kennedy>Talk us through where you think this is a good idea

00:53:24.920 --> 00:53:26.940
<v Michael Kennedy>and where people should maybe not do it or so on.

00:53:26.980 --> 00:53:27.920
<v Michael Kennedy>Like walk us through this.

00:53:28.060 --> 00:53:28.900
<v Michael Booth>Big mermaid fan.

00:53:29.100 --> 00:53:31.000
<v Michael Booth>So the diagram is down below.

00:53:31.380 --> 00:53:38.400
<v Michael Booth>But yeah, like if you're not solving, I used to have a boss who said, if you're going to solve a problem more than twice, then you should automate it.

00:53:38.700 --> 00:53:42.380
<v Michael Booth>We can argue the merits of that, but there's something to it in terms of just thinking about a problem.

00:53:42.780 --> 00:53:47.780
<v Michael Booth>So in this case, yeah, are you solving something that's causing some friction, right?

00:53:48.260 --> 00:53:51.080
<v Michael Booth>So why would you solve a problem that is frictionless?

00:53:51.540 --> 00:53:54.720
<v Michael Booth>Sort of as I flagged before, yeah, do you have an owner?

00:53:55.060 --> 00:54:00.700
<v Michael Booth>Like does somebody, is somebody going to care about this problem to the degree that they will actually take ownership of it?

00:54:00.880 --> 00:54:04.160
<v Michael Booth>Because if you can't find an owner, then maybe nobody cares about it.

00:54:04.360 --> 00:54:06.740
<v Michael Kennedy>AKA, if it stops working, will they make it work again?

00:54:07.020 --> 00:54:08.580
<v Michael Booth>Can we explain what it does in two sentences?

00:54:08.860 --> 00:54:10.560
<v Michael Booth>Well, again, the machine can help you with that.

00:54:10.740 --> 00:54:14.640
<v Michael Booth>But if you can't articulate things to your stakeholders, then why should they care?

00:54:15.080 --> 00:54:22.380
<v Michael Booth>And if you're, I think it's in the Unix world, you sort of have the philosophy of a tool.

00:54:22.780 --> 00:54:24.580
<v Michael Booth>The command line tool sort of does one thing well.

00:54:24.880 --> 00:54:28.520
<v Michael Booth>I think, again, similarly here, you're trying to make sure that whatever tool you're building

00:54:28.920 --> 00:54:30.020
<v Michael Booth>is very, very explainable.

00:54:30.480 --> 00:54:31.740
<v Michael Booth>Do we know how to disable it quickly?

00:54:32.300 --> 00:54:33.180
<v Michael Booth>Yeah, can we turn it off?

00:54:33.630 --> 00:54:37.220
<v Michael Booth>So I guess most of the tools that I'm thinking about here are deterministic.

00:54:37.780 --> 00:54:42.240
<v Michael Booth>So I'm not talking about tools that are necessarily generative AI powered or something like that,

00:54:42.560 --> 00:54:44.380
<v Michael Booth>because you definitely want to kill switch for those.

00:54:44.600 --> 00:54:47.760
<v Michael Booth>But yeah, just if you turn it off, is anybody going to notice?

00:54:48.100 --> 00:54:53.460
<v Michael Booth>And or if people do notice, can you turn it off and quarantine it appropriately?

00:54:53.780 --> 00:54:57.420
<v Michael Kennedy>Yeah, I think sort of along the same lines here as a parallel would be,

00:54:57.760 --> 00:54:59.320
<v Michael Kennedy>could you get it back to the way it was before?

00:54:59.740 --> 00:55:00.060
<v Michael Booth>Absolutely.

00:55:00.560 --> 00:55:04.740
<v Michael Booth>And again, I think documentation can be a good control around some of those things.

00:55:05.160 --> 00:55:09.580
<v Michael Booth>You're just not writing the documentation for, quote unquote, the tool, but maybe making

00:55:09.700 --> 00:55:13.140
<v Michael Booth>sure the process and the problem that you're solving is well articulated.

00:55:13.500 --> 00:55:16.280
<v Michael Booth>And the other one there, maybe the other one's in the article.

00:55:16.630 --> 00:55:20.480
<v Michael Booth>I can't remember exactly where, but just, yeah, does it require that database thing?

00:55:20.840 --> 00:55:23.240
<v Michael Booth>And do you need to do some sort of authentication?

00:55:23.790 --> 00:55:28.499
<v Michael Booth>Because by the time you're doing authentication, it feels to me like in the enterprise that

00:55:28.520 --> 00:55:34.200
<v Michael Booth>somebody probably should be taking a look at things more closely. It's not impossible that you may not

00:55:34.280 --> 00:55:39.040
<v Michael Booth>want an authenticated tool within your team, but you sort of got to talk to people in other teams

00:55:39.200 --> 00:55:44.580
<v Michael Booth>typically if you're doing authentication anyway. So that may be a sign that you're getting outside of,

00:55:45.100 --> 00:55:48.420
<v Michael Booth>not that the tool necessarily is a bad tool, but it's time to talk to others.

00:55:48.580 --> 00:55:52.360
<v Michael Kennedy>It might be a software project, not just an afternoon project.

00:55:52.540 --> 00:55:52.720
<v Michael Kennedy>Absolutely.

00:55:53.060 --> 00:55:57.220
<v Michael Kennedy>Michael, we're pretty short on time at this point. I mean, there's a lot more we could talk about.

00:55:57.380 --> 00:55:58.280
<v Michael Kennedy>You can see I have many tabs.

00:55:58.730 --> 00:55:59.840
<v Michael Kennedy>There are many tabs on my...

00:55:59.840 --> 00:56:00.720
<v Michael Booth>I'll say hi again now.

00:56:01.000 --> 00:56:01.640
<v Michael Kennedy>Yes, exactly.

00:56:01.880 --> 00:56:02.660
<v Michael Kennedy>The internet's stable.

00:56:02.880 --> 00:56:03.220
<v Michael Kennedy>Good, yeah.

00:56:03.260 --> 00:56:04.120
<v Michael Kennedy>It seems like it's been better.

00:56:04.340 --> 00:56:06.180
<v Michael Kennedy>So this has been really interesting.

00:56:06.350 --> 00:56:09.080
<v Michael Kennedy>And I think it's going to give a lot of people a lot to think about.

00:56:09.520 --> 00:56:14.960
<v Michael Kennedy>Give us your thoughts about if there's a company or a decision maker at the company, really

00:56:14.960 --> 00:56:18.300
<v Michael Kennedy>is probably the right way to, like this will envision, like manifest.

00:56:18.800 --> 00:56:21.700
<v Michael Kennedy>If there's somebody who's like, no AI at our company.

00:56:22.080 --> 00:56:25.260
<v Michael Kennedy>I feel like they're missing a big opportunity and it's not a huge risk.

00:56:25.420 --> 00:56:26.900
<v Michael Kennedy>But what would you tell that person?

00:56:27.080 --> 00:56:32.340
<v Michael Booth>Yes, it'd be interesting to put the statistics on how many companies have not embraced AI to some degree.

00:56:32.980 --> 00:56:37.300
<v Michael Booth>So maybe it's a little bit of a straw person hypothetical now.

00:56:37.480 --> 00:56:41.060
<v Michael Booth>But yeah, I have great enough visibility to know the numbers.

00:56:41.300 --> 00:56:43.940
<v Michael Booth>But you've heard me say the experiment word a lot, right?

00:56:44.220 --> 00:56:48.060
<v Michael Booth>So I guess it's experimenting within your risk tolerances.

00:56:48.640 --> 00:56:51.860
<v Michael Booth>Just try some things within the boundaries that you're comfortable with, right?

00:56:52.180 --> 00:56:52.900
<v Michael Booth>Do some experiments.

00:56:53.060 --> 00:56:57.840
<v Michael Booth>I think for a lot of people, if you haven't used an LLM firsthand, you tend not to believe it's true.

00:56:58.320 --> 00:57:03.700
<v Michael Booth>When I first use one, I'm like, oh, wow, I can write a menu plan for a week with the help of a machine.

00:57:04.340 --> 00:57:05.560
<v Michael Booth>Or I can plan a holiday.

00:57:05.820 --> 00:57:11.200
<v Michael Booth>And I think I was talking to a mate actually during the week about this because he literally has not played with them.

00:57:11.580 --> 00:57:13.180
<v Michael Booth>And I'm like, just do an experiment.

00:57:13.600 --> 00:57:17.160
<v Michael Booth>Go and say, what should I do for my kid's school holiday plan?

00:57:17.660 --> 00:57:17.720
<v Michael Booth>Right.

00:57:18.200 --> 00:57:20.940
<v Michael Booth>Because I think, yeah, until you've done it, you don't sort of believe it.

00:57:21.000 --> 00:57:29.740
<v Michael Booth>So I sort of started with the autocomplete and I'd do pd.readcsv and amazingly it would autocomplete and it's like, wow, this is crazy.

00:57:30.070 --> 00:57:34.340
<v Michael Booth>And then I started to use perplexity for the first time a couple of years ago.

00:57:34.450 --> 00:57:36.260
<v Michael Booth>I'm like, you've got to be kidding me.

00:57:36.520 --> 00:57:37.140
<v Michael Booth>This can't be real.

00:57:37.430 --> 00:57:43.400
<v Michael Booth>And I think as you start to work with the machine and get that comfort, you start to go, I think there's a whole bunch of problems that we could solve.

00:57:43.540 --> 00:57:58.060
<v Michael Booth>So I would say, yeah, experiment and then maybe partner with someone that is looking to help you solve your business problems and be a trusted partner, not somebody who's just trying to extract some money out of your company.

00:57:58.240 --> 00:57:59.560
<v Michael Kennedy>Yeah, there's so much of that right now.

00:57:59.700 --> 00:58:03.760
<v Michael Kennedy>It's such a, the whole industry is full of grifters, like selling you like the next best thing.

00:58:03.860 --> 00:58:05.200
<v Michael Kennedy>Like I get probably 10 emails a day.

00:58:05.320 --> 00:58:07.700
<v Michael Kennedy>Like, have you considered using AI to accelerate your company?

00:58:07.860 --> 00:58:08.640
<v Michael Kennedy>Like, yeah, I've considered it.

00:58:08.770 --> 00:58:09.100
<v Michael Kennedy>Go away.

00:58:09.400 --> 00:58:09.840
<v Michael Kennedy>I don't want to talk.

00:58:10.060 --> 00:58:11.940
<v Michael Kennedy>I mean, it's so bad.

00:58:11.980 --> 00:58:13.220
<v Michael Booth>I apologize for those emails.

00:58:13.610 --> 00:58:14.440
<v Michael Booth>I won't send any more.

00:58:15.960 --> 00:58:17.260
<v Michael Kennedy>I'll add a couple of things here.

00:58:17.860 --> 00:58:19.080
<v Michael Kennedy>These little internal apps,

00:58:19.090 --> 00:58:20.820
<v Michael Kennedy>and this is why I was so excited about your article,

00:58:21.080 --> 00:58:24.360
<v Michael Kennedy>is they offer an opportunity to experiment

00:58:24.970 --> 00:58:28.200
<v Michael Kennedy>in the smallest, lowest risk rung

00:58:28.270 --> 00:58:29.640
<v Michael Kennedy>of working with the stuff in your company.

00:58:30.020 --> 00:58:32.560
<v Michael Kennedy>You might have a thousand people and a million customers,

00:58:32.820 --> 00:58:35.180
<v Michael Kennedy>but here's the app that only three people in your company use.

00:58:35.540 --> 00:58:37.180
<v Michael Kennedy>And it could make their life better.

00:58:37.880 --> 00:58:38.700
<v Michael Kennedy>Try it there, right?

00:58:38.730 --> 00:58:39.400
<v Michael Kennedy>That would be amazing.

00:58:39.750 --> 00:58:41.020
<v Michael Kennedy>And the other one is I would say,

00:58:41.520 --> 00:58:46.000
<v Michael Kennedy>this is an engineering skill, like writing code, like object-oriented programming,

00:58:46.440 --> 00:58:47.880
<v Michael Kennedy>like memory management, and so on.

00:58:48.090 --> 00:58:53.240
<v Michael Kennedy>And if you treat it like a casual conversation with a buddy or whatever,

00:58:53.960 --> 00:58:55.280
<v Michael Kennedy>you're not going to get the right results.

00:58:55.610 --> 00:58:57.280
<v Michael Kennedy>So there is engineering around here.

00:58:57.280 --> 00:58:58.680
<v Michael Kennedy>It's very weird and it's very different.

00:58:58.850 --> 00:59:01.480
<v Michael Kennedy>But if you apply it, you get good outcomes.

00:59:01.820 --> 00:59:04.380
<v Michael Booth>I have a close friend who's a lawyer, for example.

00:59:04.680 --> 00:59:07.340
<v Michael Booth>And I say to her, yeah, just experiment, right?

00:59:07.720 --> 00:59:12.540
<v Michael Booth>Because like if you run the same problem through the same machine multiple times, you do get

00:59:12.670 --> 00:59:13.340
<v Michael Booth>different answers, right?

00:59:13.480 --> 00:59:16.280
<v Michael Booth>So you've got to understand what LLMs are good at and things like that.

00:59:16.520 --> 00:59:21.780
<v Michael Booth>But as you develop confidence in what's actually being produced and that trust builds, I think

00:59:21.900 --> 00:59:23.600
<v Michael Booth>you'll actually start to solve some interesting problems.

00:59:23.960 --> 00:59:26.260
<v Michael Booth>But if you don't experiment, you won't know.

00:59:26.360 --> 00:59:26.960
<v Michael Booth>There are many levels.

00:59:27.460 --> 00:59:29.900
<v Michael Kennedy>There are many levels of which this can be employed and are awesome.

00:59:30.200 --> 00:59:32.180
<v Michael Kennedy>And you can just start easy, start low.

00:59:32.290 --> 00:59:35.380
<v Michael Kennedy>And then like I said, experiment, try it out, be careful.

00:59:35.820 --> 00:59:36.740
<v Michael Kennedy>Yeah, it'll be fun.

00:59:37.100 --> 00:59:37.260
<v Michael Kennedy>All right.

00:59:37.340 --> 00:59:39.020
<v Michael Kennedy>So last, here's the final word.

00:59:39.060 --> 00:59:40.020
<v Michael Kennedy>I'll give you the final word.

00:59:40.720 --> 00:59:42.640
<v Michael Kennedy>People getting started, what advice do you have for them?

00:59:42.800 --> 00:59:44.160
<v Michael Booth>Yeah, so there's lots of hype out there.

00:59:44.460 --> 00:59:47.040
<v Michael Booth>Ignore the hype and just try something.

00:59:47.600 --> 00:59:49.960
<v Michael Booth>In enterprises, most people will have access

00:59:50.160 --> 00:59:51.960
<v Michael Booth>to like a Microsoft Copilot,

00:59:52.500 --> 00:59:54.000
<v Michael Booth>or maybe if you're on the more tech side,

00:59:54.240 --> 00:59:56.420
<v Michael Booth>GitHub Copilot or Claude Code.

00:59:56.700 --> 00:59:58.220
<v Michael Booth>I don't think it matters what the tool is.

00:59:58.340 --> 00:59:58.780
<v Michael Booth>Give it a go.

00:59:59.160 --> 01:00:01.340
<v Michael Booth>I use a thing called warp.dev at home,

01:00:01.720 --> 01:00:04.960
<v Michael Booth>and I tend to use Claude quite often as well.

01:00:05.400 --> 01:00:07.680
<v Michael Booth>Again, you learn stuff by using different tools, right?

01:00:08.880 --> 01:00:10.440
<v Michael Booth>And no tool is perfect.

01:00:10.920 --> 01:00:11.620
<v Michael Booth>No human is either.

01:00:11.840 --> 01:00:13.160
<v Michael Booth>So good to try different things.

01:00:13.340 --> 01:00:14.460
<v Michael Kennedy>Yeah, it absolutely is.

01:00:15.040 --> 01:00:16.100
<v Michael Kennedy>So I'm a fan of warp.

01:00:16.550 --> 01:00:17.060
<v Michael Kennedy>Good recommendation.

01:00:17.540 --> 01:00:19.560
<v Michael Kennedy>And yeah, Michael, thanks for being on the show.

01:00:19.680 --> 01:00:20.460
<v Michael Kennedy>It's been great to chat with you.

01:00:20.640 --> 01:00:21.120
<v Michael Kennedy>Thanks for having me.

01:00:21.500 --> 01:00:22.200
<v Michael Booth>I really enjoyed it.

01:00:22.260 --> 01:00:22.620
<v Michael Kennedy>Yeah, you bet.

01:00:22.730 --> 01:00:22.820
<v Michael Kennedy>Bye.

01:00:22.980 --> 01:00:23.140
<v Michael Kennedy>Bye-bye.

01:00:24.060 --> 01:00:26.180
<v Michael Kennedy>This has been another episode of Talk Python To Me.

01:00:26.480 --> 01:00:27.280
<v Michael Kennedy>Thank you to our sponsors.

01:00:27.530 --> 01:00:28.780
<v Michael Kennedy>Be sure to check out what they're offering.

01:00:28.990 --> 01:00:30.340
<v Michael Kennedy>It really helps support the show.

01:00:31.160 --> 01:00:33.700
<v Michael Kennedy>This episode is sponsored by Sentry's Seer.

01:00:34.000 --> 01:00:36.440
<v Michael Kennedy>If you're tired of debugging in the dark, give Seer a try.

01:00:36.980 --> 01:00:39.120
<v Michael Kennedy>There are plenty of AI tools that help you write code,

01:00:39.300 --> 01:00:42.200
<v Michael Kennedy>but Sentry's Seer is built to help you fix it when it breaks.

01:00:42.800 --> 01:00:47.040
<v Michael Kennedy>Visit talkpython.fm/sentry and use the code talkpython26,

01:00:47.500 --> 01:00:50.660
<v Michael Kennedy>all one word, no spaces, for $100 in Sentry credits.

01:00:51.880 --> 01:00:55.140
<v Michael Kennedy>Talk Python and Python Bytes both now have MCP servers.

01:00:55.700 --> 01:01:00.080
<v Michael Kennedy>Point your AI at 10 plus years of Python episodes, transcripts, and show notes.

01:01:00.500 --> 01:01:00.660
<v Michael Kennedy>Free.

01:01:01.220 --> 01:01:05.280
<v Michael Kennedy>Click MCP in the nav at talkpython.fm and at pythonbytes.fm.

01:01:06.160 --> 01:01:08.040
<v Michael Kennedy>If you or your team needs to learn Python,

01:01:08.250 --> 01:01:11.660
<v Michael Kennedy>we have over 270 hours of beginner and advanced courses

01:01:11.940 --> 01:01:15.380
<v Michael Kennedy>on topics ranging from complete beginners to async code,

01:01:15.520 --> 01:01:18.300
<v Michael Kennedy>Flask, Django, HTMX, and even LLMs.

01:01:18.510 --> 01:01:20.900
<v Michael Kennedy>Best of all, there's no subscription in sight.

01:01:21.360 --> 01:01:23.140
<v Michael Kennedy>Browse the catalog at talkpython.fm.

01:01:23.880 --> 01:01:25.820
<v Michael Kennedy>And if you're not already subscribed to the show

01:01:26.040 --> 01:01:28.500
<v Michael Kennedy>on your favorite podcast player, what are you waiting for?

01:01:29.120 --> 01:01:30.920
<v Michael Kennedy>Just search for Python in your podcast player.

01:01:31.140 --> 01:01:31.900
<v Michael Kennedy>We should be right at the top.

01:01:32.360 --> 01:01:33.880
<v Michael Kennedy>If you enjoyed that geeky rap song,

01:01:33.990 --> 01:01:35.100
<v Michael Kennedy>you can download the full track.

01:01:35.330 --> 01:01:36.460
<v Michael Kennedy>The link is actually in your podcast

01:01:36.680 --> 01:01:37.200
<v Michael Kennedy>blog or share notes.

01:01:38.040 --> 01:01:39.380
<v Michael Kennedy>This is your host, Michael Kennedy.

01:01:39.780 --> 01:01:40.840
<v Michael Kennedy>Thank you so much for listening.

01:01:41.050 --> 01:01:41.840
<v Michael Kennedy>I really appreciate it.

01:01:42.280 --> 01:01:42.980
<v Michael Kennedy>I'll see you next time.

01:02:01.020 --> 01:02:02.180
of getting whole.

01:02:03.590 --> 01:02:05.700
We tapped into that modern vibe

01:02:06.120 --> 01:02:07.080
over to each storm.

01:02:07.900 --> 01:02:09.180
Talk Python To Me.

01:02:09.270 --> 01:02:10.580
async is the norm.