Papadimoulis: Did you see the sunrise this morning, or not make it up that late ?
Atwood: Who me ?
Papadimoulis (& Spolsky): Yes.
Atwood: No, I don't remember actually it all blends together after a while.
Spolsky: What's going on here?
Spolsky: Snap out of it man we've got a podcast to do.
Atwood: I'm ready.
S: And WTF stands for
P: Worse than failure, that was established, yeah we actually established that a couple years ago. I don't know if you guys remember there was a bit of a name change on the site...
S: And people were not happy
P: It didn't work out so well, in retrospect probably keeping the daily WTF was the way to go. I don't know what it was... it just didn't feel right saying it. We obviously talk about the site here at the office, every time any of us said worse than failure, it didn't quite fit.
S: It's like a Bowdlerized version of Shakespeare or something with all the good stuff taken out.
P: More or less. It's hard to say, at the time it seemed like a good idea to kinda go with a name change, but ya know, I'm kinda glad to be back to the old name or the real name, whatever you wanna call it.
A: Changing the name was the ultimate WTF. I think everyone was scratching their head going Wow, that's a real WTF. Why would you change your name?
S: Well, I'll tell you how... new coke
A: Now but you have a good name. I want to change it to something really crappy and see what happens.
P: In fairness, I thought the name was good. I thought it was a clever acronym. It was the result of groupthink.
S: Decisions by committee! You keep going until nobody finds any offense in the thing, and nobody finds any delight in the thing.
P: Well I don't know, we all like the name, we're all like everyone's going to love it because it's kind of clever, yeah but we all just tricked ourselves into thinking that it was the right way to go.
S: Who's we? Who else is there? Is there a whole institution behind The Daily WTF? I thought it was just a guy with a blog.
P: Well, yeah, it is a guy with a blog. I'm the guy, and obviously I have the blog. But I do have a job, a day job, at Inedo and we're a software company that's in the business of helping other software companies develop software better. I'm still working on the elevator pitch, but basically we're in best practices consulting and that sort of thing.
A: I didn't know that.
P: Yeah. Well, we used to do a lot of-we still do-custom, proprietary business software. But I don't know, have you guys developed that? I know Joel, you're primarily with products, right? FogBugz, and CityDesk, and CoPilot, right?
S: Exactly. Totally. No, we haven't done any consulting for a long time. We did it in the old days to raise some money.
P: You know, I really like it. Love doing the business applications, but I'll tell you, I think it's a little more exciting to work in this realm and I've been doing the... helping people do the better software, whether it's continuous integration or whatever's gonna help the process go better. What's fun is the Daily WTF has helped me learn just how how wrong so much of software is, or at least software development at so many places. So it's kind of given a unique perspective on things.
S: We are talking today to Alex Papadimoulis, who is the blogger at the Daily WTF, which is a blog, if you haven't seen it, about all kinds of things going wrong in software development. Right? It's mostly software development, although I see wine bottles here on the front page...
P: Information technology. But, yeah, generally software development.
S: Is there a difference between information technology and software development?
P: I like to think IT kind of encompasses maybe the network. IT is a broader domain. Software is just internal applications, external applications, whereas the IT organization handles all the servers, the desktops, phone systems, they seem to get it all.
S: And you guys always have, besides having actual bodies of bad code, things are always written in an exciting, story-like way. Do you get these things submitted from people and then rewrite them, is that what goes on there? Do they submit them correctly in the first place?
P: You know, very rarely. And I'll tell you a little bit of background: we started doing all exclusively code, which... the bad code is fun to read. I think like writing, and I know Jake, he helps out on the site, Mark, we all like writing and it just kind of fell into the format of starting with a fun paragraph at the beginning of a code snippet to really just writing stories in a unique manner. I don't know if you guys read Discover magazine, but Vital Signs sometimes serves as inspiration for how we try to tell stories. You know, at the end of the day, some of these things can be pretty boring in software development.
S: And although it is funny to read some of these, I'm just reading this one where a guy has created a bunch of constants for every possible number of spaces. And then written what looks like a select statement. So he's basically reimplemented a function that is already available for you.
P: And I believe -- you know, I think that one is "Spaced Out" -- he not only did that, but he reimplemented a few times in his own code, which is pretty impressive, I might say.
S: And so this is sort of humorous, but on the other hand you sort of feel sorry for these people who are writing bad code. You imagine that they've woken up in the middle of the night and they're feverish, and they don't completely understand what's going on around them, and they need to somehow make their computer do something. And through the haze and the fog of the high fever and the nausea and the explosive diarrhea, they're trying to write a function that produces a given number of spaces. And they just do the best they can and you sort of have to feel sorry for them, a little bit, creating code like this.
P: Yeah, I think that's a part of it. Definitely, you got the guys who are really struggling. But you know, I've worked with enough developers, especially in some of the larger companies, where it's their way of life. They don't see this as bad. It's kind of like, You know, it works -- sure, it might be a lot of duct tape, patched together. But that's the way they see it.
S: Isn't that being pragmatic? Isn't that the ultimate goal as a programmer, to be a pragmatic programmer? Hey, the code works...
P: I don't know if that's quite what "The Pragmatic Programmer" is supposed to be but I guess that's one way of looking at it.
S: I had that person. I was in a meeting at MTV with a very hyperactive executive. This was like 1994 or 1995, the web had just come out, we're talking Netscape 2.0. And she wanted an effect where when you click from one page to the other, the web browser would crumple up like a piece of paper that had been crumpled up and thrown across the page and then another page would then appear. And I can see where she got this idea because she was from television, right, and this was like an effect that you have programmed into your little television switcheroonie things. And yet, of course, there is no way to do anything even remotely like that with HTML. I mean, now you could probably do something with Flash or whatever but at the time there was no way to do anything even remotely like that. So we said, "This absolutely cannot be done with HTML, what you are describing is not -- we cannot do that on the web ever under any circumstances... no." And she said, "What if you use SQL Server? I heard SQL Server was ****ing amazing." Because I guess somebody had been telling her about all the awesome new features in SQL Server 6.0.
P: You know, I think I've worked for or at least seen the same person too, because that's a recurring thing. And if it's not SQL Server... I often get methodology. "Why don't we do Test Driven Development?" or "Let's try Scrum." "Can you do it in Scrum?"
S: I sometimes refer to this as management by Delta Airlines In Flight magazine. Where your boss has read something in the In Flight magazine on the plane, and then wants you to then implement that somehow.
P: I kinda like that, yeah, and I can see that happening too.