I have now listened to Stack Overflow Podcast #39, and things were indeed every bit as bad they seemed from the transcript that I linked yesterday.
Before I dive in to a rant, let me prefix this by saying that I have been a fan of Joel on Software since I was an undergrad. I have always thought that Joel was a smart guy with good advice. I think a lot of people in this industry still listen to him and put a lot of stock into what he says. And that’s what makes me angry: here’s a respected guy spouting his mouth off about things he doesn’t understand and giving out terrible advice. If you’re just an average Joe on the web with a blog, that’s fine, but if you’re Joel Spolsky, it’s irresponsible and dangerous. Anyway:
Joel and Jeff spend a good portion of the podcast trashing testing, test-driven development, SOLID, and a lot of other things. Which is all well and good, except that they clearly do not understand what they’re talking about. Joel in particular strikes me as someone who clearly doesn’t "get it" when it comes to testing and test driven development. He describes some contrived example of how hard it would be to unit test a feature of CoPilot, and uses that as support for his argument, but again, his ignorance comes shining through. Joel, if your code is so tightly coupled that testing it will require that much overhead, your design has failed. If good design principles and test driven development had been applied, I guarantee you that there would be a clean, simple way to test the compression logic change, and that testing it would have been easier and faster than having to build the entire app, fire it up, then make manual comparisons to decide whether or not the code works.
They go on to talk about education, and Joel makes the idiotic statement that Google is the lone example of math being applied in computer science that actually made someone substantial amounts of money. What. The. Hell. I have news for you: it’s all math. Even FogBUGZ, the flagship product for FogCreek (Joel’s company) makes heavy use of Monte Carlo analysis, WHICH IS MATH. Computers aren’t magic boxes that you feed pixie dust into and out pops AJAX. Well, my computer isn’t at least. Maybe it’s defective… hrmm… Oh, and yes, when I think Computer Science, I think Yale. NOT. Seriously Joel, what the heck… did you drink (a lot) before you did this podcast?!?
All in all, I would say that my overall respect for Joel (and Jeff) dropped from an A+ to about a C-. Those guys are way out of touch with reality. Fortunately, I think a lot of people saw right through their ignorance, as is demonstrated by the sheer volume of comments here and and some of the feedback here. Seriously guys, buy a book on testing (and math!). Or, I don’t know, read a blog, or maybe listen to Hanselminutes.
</rant>
On the brighter side, at least not all of my heroes are giving bad advice. Here’s a nugget from Eric Sink on why you should pay attention to what other developers are committing. It’s good advice, and if you’re on a small-ish team, something you can easily do while drinking your morning coffee/Red Bull.