Is It Time For The Big Rewrite?


Episode Artwork
1.0x
0% played 00:00 00:00
Dec 13 2019 32 mins   1

This week on FounderQuest Josh, Starr, and Ben talk about the quandary of not knowing how to build something until after you’ve already built it. Therefore, once it's built it can be hard to fight the urge to tear it down and build it again taking into account all of lessons that were learned along the way.

The Badgers also imagine a rewrite of Honeybadger using the latest in 90s technology. Trigger warning for Perl developers!

Links:

Peanuts Christmas special
Garfield Christmas special

KonMari

Living Computer Museum

Rewrite! by David Heinemeier Hanson (DHH)

Jeff Foxworthy
Xennials
Generation Jones

ELIZA

Animated Star Trek


Full Transcript:

Ben: Oh wow. That's so amazing. Cause I love like the Christmas specials from like Garfield and Peanuts, you know? And so I'm just thinking of a Honeybadger animated Christmas special. That would be so awesome.

Starr: Oh, that'd be fun, wouldn't it?

Josh: That would be the best Christmas special.

Ben: I don't know. The FounderQuest Christmas special might end up like the animated Star Trek series. Right? It might be a total bomb.

Josh: We're all in character, but it's like bad cosplay. What were the moral of the Honeybadger Christmas specialty? Would it be that it's not about the errors you fix, it's about the friends you make along the way?

Josh: Could be.

Ben: I like that. Yeah.

Starr: Okay. Well that's good. Speaking of cosplay, so I got a random package delivered to me to my name from Amazon and I order a lot of stuff from Amazon, so I assumed I just forgotten that I ordered something, so I checked and that's not it. And I opened it up and it's like, the name on the bag inside is like such and such cosplay and so, like, this is going in a very bad direction. I'm not sure I want to open this, but I think somebody had, like, one of, I don't know, one of our relatives or some family member had maybe sent a costume for my daughter or something and just, it's a time of year. The packages just randomly show up. And you're like, "Oh, I don't know who this is from, but it's got some kids' stuff in it."

Ben: We had that same package problem, that Amazon thing because we do a lot of Amazon ordering and so you know, packages around this time of year starts showing up and you're like, "Oh well I guess that was the present I shouldn't have opened. Sorry."

Starr: Yeah.

Josh: You opened the Amazon presents that aren't addressed to you, Ben?

Ben: No, not all the time, just every now and then.

Josh: Just on Christmas, true. One year?

Ben: Just on Christmas time.

Josh: Just on Christmas.

Starr: One year, we did Christmas in my in-laws and so we shipped everybody's packages there and we put their name on it cause it's where they live and everything. But I guess there was some miscommunication because my father-in-law was just starting to start opening everything and he assumed that it was all presents for him. He was, like, thanking us and it's like, "No, actually that's for my brother, that's not for you."

Josh: I could totally see that happening.

Ben: One of the benefits though of being in charge of the Honeybadger official post office box is that I get to also use that for my Christmas deliveries , so all my Amazon shopping shows up there. Yeah.

Josh: That's sneaky.

Ben: Yes.

Starr: Oh my goodness. So what are we talking about today?

Ben: Talking about a big rewrite.

Starr: The big rewrite. I guess we should explain what a big rewrite is, unless, like, programmers know this, right? There's this idea that you build something. You build a product, an application and like you don't really know how to build it until you've already built it. Right? Until then you're just kind of learning along the way, like, what the best approach is to take on things and so then, once you get it done, you actually know how to build it. There's always this really big temptation. It's like, "Oh, I just want to like build it for real now. I'm learning all the lessons," you know, taking into account all the lessons I already learned. And so, yeah, I mean that's my take on the big rig. Right. What does a big rewrite mean to you all?

Ben: Well, you know, that actually made me think of, you know, there's actually a development approach called, you know, you build one to throw it away where people, you know, in the early stages we'll build just a prototype, right? And we are with the intent that we're going to throw it away. But that's not the same as a big rewrite. I think the big rewrite happens when you know you've built this thing over time and it works and it's been working and it's making money but now you look back you're like, ah, I really wish we could redo that whole thing.

Josh: Yeah. You start noticing all the things that you could have done better or you could go back, you make decisions throughout the process of writing it that lock you into certain things or past decisions lock you into things now and pretty soon you find yourself basically architecting for this legacy system where, like, that happened to me this week when I was working on this feature. And I probably would have built it a different way if I could, if I was starting from scratch, but I had to basically bolt it on to what we already had, so the past decisions were influencing how I have to build stuff now, which makes you want to go and throw it all out.

Starr: That's an interesting take on it too, because yeah, you're right. Like, when you find yourself building something and sort of having to do it in a less than optimal manner because he has to sort of, you have to shoehorn it into an existing product. That can be be super frustrating.

Josh: &n...