Not Quite Finishing Apps - podcast episode cover

Not Quite Finishing Apps

Jan 14, 202522 minSeason 2Ep. 141
--:--
--:--
Listen in podcast apps:

Episode description

Can you actually build an app with AI right now? Fresh off a holiday break where he attempted to do just that (rather than talking to his family), Paul tells Rich what worked and what didn’t work in his experimentation: Where AI failed, where Paul got impatient, and how that mapped onto human programmers’ strengths and weaknesses. Building an entire app with AI might not be quite there yet—but is it close?  

Transcript

Richard. Hey, Paul. 2025. Happy New Year. Gonna be a good year? It's gonna be a great year. I'm an optimist. You wake up every morning, you pick up your newspaper, you say, good news. I don't like failure. I don't like being pessimistic. Everybody loves good failure. This is like big failure fans. This is Reckless. Reckless, the podcast about what AI is doing to everything, including the world of enterprise software. Let's play the theme song. Then let's talk about it. Let's go.

know we often get kind of meta on this podcast we talk yeah we like to talk about industries makes us feel like we know what's up we make predictions i think we know what's up maybe we'll see we'll find out it's gonna be a long year okay okay how was your holiday It was nice. Food, family.

A little relaxation, but it was actually kind of hectic, but in a good way. We should tell people. We recorded the last podcast before the holiday. I don't know if that was totally clear. Now we're actually back, and now we can come back into the swing of things. We can start telling you the truth about when we're recording things.

was too and you know what i started to do i get very i need to actually do and use things if i'm going to talk about them okay i can't just read about them i have to feel them or i don't Sure. Trust myself. So I decided I would build an app using AI coding. In the holiday spirit. Well, you know, the kids, they only want a certain amount.

They don't want to hang. No. Yeah. They want that stocking. They want, you know, they want to get back to their rooms, do a little reading. So a little tiny app or what kind of app? Well, that's the thing. We know it's good at little tiny apps. If you go to Claude right now and you say, make me a webpage where there's a visualization of the bell curve.

It'll just go ahead and do that for you. Sure. And you can move your mouse around. You can tell it to do things and it does a pretty nice job. So like we know that like one page apps, it's got. down little mini apps yeah and then we also know that it's pretty good if you go into like a big code base and you say like hey

This JavaScript has a weird bug. Can you take a look at it? Or can you turn this COBOL code into Java code and then write a test for it? Right. Break it up in the little units. You improve it gradually, kind of legacy style. We know it's pretty good at that. Yeah. But there's a space.

in the middle where you kind of build something top to bottom. And I was curious to see if I could pull that off. Something a little more ambitious. Yeah. I tried a bunch of different stuff and I actually ended up building. You end up sort of doing it a lot. I'll come up with one of the sample projects I was working on. allowance tracker for my son.

And my daughter. And I didn't even get to the part where you log in and so on and so forth. But let's use that as an example. Okay. So what I'm trying to do is figure out the way to talk about a midsize software project with this tool. Partially because I just...

want to understand it and partially because we are a software tool for mid-sized businesses. Mid to large. Yeah, and we want to make them happy and we want to use AI tools to accelerate their world. Okay, but couldn't you have just typed in just to get this out of the way?

I need an app to track allowances for my two kids. And wouldn't you have just gotten the app? No, it's not there yet. Okay. Honestly, what's wild is it will do something. Sometimes it'll throw stuff on screen and blah, blah, blah. It rarely says, sorry, I can't help you.

It always gives it a whirl. That's not its MO. Its MO is like, I took the thing that you asked for, I turned it into a bunch of numbers, compared it to my many layers of vectors, and I spit a whole bunch of stuff out, including code. and language and blah, blah, blah. Okay? Okay. And so if you give it a general case like that, it actually, AI is funny. It can only really think in a couple pages at a time.

Yeah. So you just gave it like a 70 page problem and it's like, absolutely. And it sort of slides a business card across the table. And you're like, well, I was expecting a little bit more. Right. Okay. So you went for it.

You started to decide, okay, this is not a prompt. I'm going to have to work with this thing. Well, I tried what you said, which is like build me an allowance app. And it did that. It just kind of like didn't. It just kind of limped into the light. It was like, all right, well, that's not going to do it.

Okay. And then, you know, so then you take the next step, which is like, all right, let's make a plan. Because it's really good at writing little plans. Sure. It's good at talking. So like, you know, just, okay, write me a plan, bullet point, tell me how you would build this. Okay.

And then once it told me how to build it, I was like, all right, let's take it step by step and let's build it. So you took the plan that it produced and you said, follow this plan. Let's go through it. We're going to work on this together. So you can actually get relatively far by saying two things.

If you use one of these assisted coding tools, you can say, do the next step, and then you can say, fix that. You can get pretty far, but the problem is it doesn't know at all if it's making a good choice or not. And it's very forgetful. It's like a drunken... like programmer like it's just sort of yeah you know it's like oh hey are we debugging oh my god let's keep debugging guys let me let me scrub to the end of the movie that's probably the best for everybody did you get the app

I kept getting, it's really weird. I kept getting really close. And I can't tell if this was my psychology or not. But I would get like a lot on the screen. I'd get most of the stuff I wanted working. And then I would kind of hit a wall and I would call it like the 80% wall. 80%. That's not that close. That's still a lot of problems in software. Well, I've built a lot of software. Most people would look like the 95% wall, but I know it's the 80% wall. I see. So it's worth pointing out.

that you are very technical. Like whatever code it was outputting, you understood it. And so for people listening to this who are not technical, who are not programmers, who don't understand sort of the gymnastics of the syntax around programming, they would have hit a wall much sooner. Well, you know what's funny is because of the chat interaction, I found myself getting...

really kind of demoralized because it just spews code and then it'd be like, sorry, it broke. And I'd paste it back in and be like, go ahead and fix that. I'd be like, eh, kind of fixed it. I lost track of what was happening. Did you bail? I just got dispirited. I got much happier when I booted the whole thing over again and I started to pay attention to what I was doing. A lot of people in this space who are studying these tools...

tell you to start over as much as you can. It's a general piece of advice. It's a good MO because you really, what happens is you get into these corners and it doesn't, because it is an unfeeling statistical database, you think you're... mind is trained to be like oh we got to give it one more chance here let's keep digging no but it actually it gets quite stubborn it has no idea

that it's failing or not. It doesn't think. It's just like, oh, I see that we're doing this, so let's do more of that. That seems to be what the numbers are calling for. And that is actually pretty dangerous because you just kind of, you start to lose context. lose control yeah and so what i started to realize is like first of all

There was an empowering moment in all of it where I was like, wait a minute, I'm very good at debugging. And so I went in there and I started fixing the bugs instead of asking it to. But it was more work. And what that reminded me to do was like, you know what, read this code as a... coming out so that you understand the modular system it's building sounds like you're back to square one if you were the manager of this engineer you would not be a happy man

Yeah, but it's 50x faster. So the portions are- You're getting a lot of stuff. Yeah, yeah. It's like, it is essentially, it's the Olive Garden infinite breadsticks of programming, right? You just can kind of, it's not good. You shouldn't eat more than one or two of them, but-

But instead you eat 175 and then you have that white wine. Yeah. Have you ever seen, by the way, that Olive Garden has like a whole Tuscan village that they like to talk about where they train people to cook Olive Garden style? In Italy? Yeah.

It's in Italy. Oh, yeah. Wait, no, no. It's in Italy. Yeah. So they built a second Tuscany in Italy. No, no. They bought like a beautiful Tuscan inn. Oh, they took the whole thing. Oh, and there's a chef who's, you know. And so then they promote it. It's a village. Or a building? It's sort of like an inn kind of. It's a facility for training Olive Garden people. Are you shitting me?

I mean, you will be if you go there and you eat the Olive Garden food. It's a lot. It's a lot to process. I encourage everyone to look for the Olive Garden. Anyway, that's a real... Tuscan Village. That's a little bit of a digression. So I have... I have one overarching thought I want to share based on everything you're saying. Okay. A lot of people talk about AI's context windows and it's like how much it'll remember and sort of keep in mind as it...

goes after the next step. As you're typing to it, it kind of remembers the last X number of few things or whatever. But it fills up way faster than a human does. It starts to forget. And it can't tell you it's forgetting. It doesn't know. I would even put forward that even if it could remember, it still won't do a great job. And I'll explain why. Okay, why? I want to make a distinction.

I want to categorize programmers in two ways. Okay. And I don't know if I'm using the right words, but I'm going to use them anyway. Oh, it's called a procedural programmer and a substantive programmer. Okay. A procedural programmer... is like looking at a ticket in a spreadsheet or in JIRA. And without bothering to understand why they're doing what they're doing or what the point of it is, they're just going to execute on the plain English logic and...

make it software. They have no context. They have not talking to a business person or a product manager. And what they're doing is they're just essentially literally taking... It's one of the big criticisms of like offshore development is that because...

the communication is so lacking that they're just putting, they're creating software without understanding why they're doing it, okay? And I call that a procedural program, meaning they're just literally following instructions. Well, and the reason isn't because... there's something wrong with them. The reason is that the way that those organizations are structured is it's like...

thousands of relatively low-skilled new programmers who are just told, go get the ticket and do what it says. Exactly. And if they do a good job at it, somebody gives them a thumbs up. And if they don't, they get a thumbs down. Exactly. Now let me talk about... the second kind of programmer, which is what I call a substantive programmer. A substantive programmer, when you give them the ticket, they actually want to understand why they're doing it, what the point of it is, who the user is, and

That colors their thinking about how they should approach it, what they can do better. The best programmers, by the way, you ask them to do X. And they do X plus three. They like come back and they're like, you know, I was thinking about this and I actually fixed something else and I made this smoother. I got to tell you, man, I know that we're supposed to really like the substantive programmer more. But he, always he, is just as likely to use that.

Q and a strategy that you just had there as like the most passive aggressive exercise. That's real though. We don't need to bring that up. Do we actually, okay, well, what if they don't have an email? Well, it's an email client. I have been there. Yeah. That's the substantive programmer gone wrong. And actually, everybody starts as a procedural programmer. That's where you begin. Why am I bringing this up? I'm bringing this up because I don't think AI's limitation is just context window.

I think even if you expanded that context window, it's always going to be a procedural programmer. Like, I think it's going to have... more knowledge, but I don't think it's going to think, if I can add a dimension to its thinking, I don't think it's there. I think you can do things to trick it into thinking about the larger goals. No, I mean, I get that. I get exactly what you're saying.

What you do with AI to make it work is you say you're going to build a API for data on the web and it's going to use the express framework. in JavaScript. And what that actually means to a large language model, not that it understands what something means, is here is what a template for an express API looks like. It needs these five files and these kind of things go with it. And then it can spit out a bunch of files. You write npv run dev.

And it executes the hello world of that. And what it did is it copied... a file. Like it copied some stuff. Yeah. But that can look bigger and it can look more substantive, but I agree with you. What it's doing is just saying, oh, you want me to set up the template. It's in a vacuum. Yeah. It doesn't understand what you value.

It understands that, oh, I can pattern match these and give you something. In the past, when people have said things like that, they often end up with things like this. One of the things we've said a few times, at least I think I've said a few times, is that this... wave of change is a moment for product management because the reason product managers exist is to constantly remind the other

crafts people, designers and engineers, what the point of it is. That is their job. Their job is essentially liaison. It's like, well, I'm glad that function you built works, but... It actually needs to work this way, and here's why. And sometimes they don't even bother saying why. They just tell you, just do it this way. I know why. That's you as a product manager. That's fair. I'll take it.

I think when we approach these tools, it's funny. The same limitations that required all the different sort of social dynamics and professional dynamics are kind of being... reintroduced to these tools because the tools don't care.

They just don't. They just want their paycheck and they want to give you the output and they'll give you the output and they don't care what you're going to do with it. Like no AI has ever said to them, I was like, that was a really interesting request, Paul. What's your plan? No. No one's doing that. Just keep going. They just keep going. And for a lot of people that work in technology, and this isn't a dig by any means, they don't really have the full picture. They're just putting out...

reliable output. That is one of my things. Most people don't know what business they're in, right? Yeah. And AI is a funny mirror of that. Well, tasks like... I really need a dashboard style report that's a PDF that comes out of the database and tells me how many people are in the system and what their status is. And it'd be great if you could also include some charts. Yeah.

You can have that now. And you know what? If you work at like the not-for-profit or the weird part of the office that nobody ever goes to and IT won't even come down there. Yeah. You can have that now. Like that's where we're headed. So that part's really good because those are weird little boxed in. context-free tasks. And I actually think there are billions of them that people would love to see done and they've never been able to get done. We talked about this. Yeah.

past podcasts. So anyway, I didn't get it done. Oh. No, but you know, I keep getting close. Yeah. And I keep tearing it down. You're learning. You actually don't need this app. Your life isn't depending on it. I can finish the last 20. If I took two days, I could finish the last 20% myself. Two days.

I don't have two days. I'm busy building a startup with you. Let's be clear. I don't get to wander around and do my dilettante nonsense. And related to that, I really want to learn how close I can get and what are the patterns of work. The pattern that I see working... is finding schemas and structures that already exist.

things like API development platforms in JavaScript that are really well documented that have a clear structure as to how the data flows. Because when I say, hey, look at the database and make an endpoint for the get post, push, put, patch methods on that endpoint, which if you don't know what this means, this is the classic REST API structure. If I say that, it's like, oh man, it's seen a million of those.

And it sort of can chunk them together. Because those schemas and those structures already exist in the world, if you align it with things that are completely conventional, you can get pretty good output pretty quickly. Yeah, I think, and I think the message here is AI doesn't just know how to spit out lots of code. It actually has knowledge of sort of these higher level architectural concepts. It actually knows them.

Like it knows them all. And I don't think people are thinking about leveraging it that way just yet. But yeah, I'm glad you got frustrated in a weird way. No, there isn't. I don't know how to get. this finished. Nobody does. It would be truly terrifying if you could at this point. Let's take it step by step, Paul. Slow down. That's literally what I'm doing. I will say, I'll close with a few things. One is...

Stuff that was really hard to do because there's so much orchestration and ceremony around it. And I'll give you an example. I really understand web servers and web clients very well, but there is a kind of conversation between those two around a technology and a platform called WebSockets where...

it's when it updates in real time on the page without actually sort of like going and getting another page. And man, I just was, I kind of missed that whole thing in my career and I just find it excruciating. It's terrible. And here I can say, let's set up that WebSocket server. Yeah. And it pretty much works because millions of people have done it. Yeah. Right? And so...

Things like that. Patterns that were, I don't like writing tests. You know, all those patterns that were kind of off limits before. Doesn't mind it one bit. Create the guide to the API and make it really pretty and make it really easy for me to use. Very good at it. said, you know, I mess around with audio and synthesis in my spare time too. Did you talk to your family at all?

Over the holidays? I really did. But there's a point where they just don't watch it for two hours. Yeah. You know, like kids are in bed. Yeah. And, you know, my wife is watching TV. Fine. So I go in. The world of audio software is very visual. because you've got to move stuff around and make things happen. I'm going to just make a suggestion to everyone. If you get a chance, go to a website called fors.fm, F-O-R-S dot F-M.

They make a bunch of software, mostly for the digital audio workstation Ableton Live. But they make a plug-in called Tela, T-E-L-A. And it's a synth. And just look at a video of it. And then try to conceive. And you can always speculate and imagine. But like.

It's so clearly the work of an individual and there's so much work in every single little interface element and it doesn't work like any other software. It's not, but it has a completely predictable internal grammar, but it doesn't have like.

buttons and icons the way you think you move your mouse up and down and stuff is all kind of moving and doing stuff and it's very kind of black and white okay I'm just you know I'm on a podcast describing an interface so I'm aware of that yeah but like if you go look at a video of Tella

T-E-L-A. And you just kind of like poke around and like I spent some time with it because I'm, what would happen is I'd ask the AI to do something and it takes a couple minutes and then I go back and dink with my sins, you know, and neglect my children. Fair. All the regular stuff. The contrast between kind of like, I'm going to load stuff from the database over here, and it's amazing it can do it.

But it's also not the future, right? It's just sort of like it's what we've been doing forever. And then going over to Tella and just seeing the craft and care that this person exercised around the code and the tool. And I'm like, you know, obviously the future is a little mix. both like you you extend things and so on yeah but you're just not going to be able to sit down and say make me a really cool synth

Yeah. As a VST and get tele as a result. That is the human touch and that is craft. And that's not just us being nostalgic. No, no. But I think people in these conversations as they're talking about this stuff, they just throw it away so quickly. They throw it there because it's so amazing. what it's doing and you're like well there it is that's the whole future and I'm like it's over yeah but it's also like I don't want

what that makes for music. I want the Swedish guy to make it for me. You're making the same argument for like, gosh, the sameness of the images that get generated, right? It's real. And I like, I don't. At the same time, I want to build my allowance app, and I want it to be quick, and I want the woman in the corner who IT ignores to get her nice reports so she can submit, she can get her bonus, right? Yes. I think it's very, very dynamic.

and I think everybody's gotten really confused because they don't know what software is for all the time. And it's also so early. It's so early and it's hard to finish things. And at the same time, boy, is it powerful. And I'm just out there. I'm just seeing prediction after prediction. Like it's all going. And I'm like, I just don't think anybody really knows.

And what I'm also realizing is two weeks of really intense usage of this is putting me further and further into a very, very small group of people who are... really trying to do this stuff. Yeah, yeah, yeah. It's just not, and that's not flattering to me. I just have some spare time right now. People do not have an instinct yet.

Not yet. It's going to take a while. So here we are. We're back in the air. We got our hands dirty. And I just wanted to talk about it. Yeah. And we're playing in this space at aboard.com. You can learn a little more about what we're trying to pull off here.

and big, but we're already seeing amazing progress. Check it out. Try it out. You can try it at aboard.com. And if you've got... podcast topic ideas or some aspect of AI you want us to talk about reach out hello at aboard.com hello at aboard.com thank you for listening to reckless and yeah we're gonna I'm gonna keep building maybe I'll come back in next week and be like actually I cracked it

That's the next podcast. Actually, I'm going to be honest. If I have one prediction, I don't think it's crackable that way. I don't think there's like some magic. I don't think it's the path. There's no magic words I can say that will make it build the app. I agree with that. Have a lovely week, everyone. Be safe. Bye. you

This transcript was generated by Metacast using AI and may contain inaccuracies. Learn more about transcripts.