Hanalei, Hawaii 9/2/2010
438 Posts and Counting

Just Stop. Please.

Wednesday, October 07, 2009 -

I’ve tried to stay out of the whole “Spolsky Thing” of late as it seems like it’s spectacle for spectacle’s sake. That seems to be Spolsky’s thing and it’s one of those things you sort of ignore most of the time.

But he just keeps going – sort of like your parents revving your kids before bed while you watch, knowing there’s nothing you can do – he’s just going to do it anyway. It’s weird how that works – my family and my wife’s – they love to rev the kids up at bedtime for some reason and then I spend the next 2 hours trying to get them to go to sleep. It’s not fun, but to my dad, who’s upstairs reading a book (complaining about all the noise coming from downstairs) I just “worry too much – let them be kids!”

Sure. I’ll do that. And I’ll pay the price when they wake up tired the next morning and cry through breakfast while you remind me how discipline was handled when you were a boy.

Anyway - as I read through Joel’s latest train wreck, this clip of Jon Stewart on Crossfire popped right in my head…

Joel – it’s not funny any more. You’re hurting the industry, not helping. You’re acting like my dad did – revving up the industry and spewing old-time wisdom that does not apply anymore.

Here’s some tea – time for bed. Please stop.

Related


Gravatar
Gabriel Florit - Wednesday, October 07, 2009 - I agree. I just read his latest post, about duck tape programmers... I'm glad I don't work at FogCreek. I don't want to write code like that. Maybe he's never heard of maintanability.
Gravatar
pcomeau - Wednesday, October 07, 2009 - Thank you... I too agree. The final straw for me was a post of his ages ago that essentially dissed any coder doing internal development. Basically if you weren't making a product for sale then your efforts were worthless, or at best second to the real developers like the ones he hired.

At that point I decided Joel wasn't terribly relevent to me or my industry. Everything Joel says has to be viewed through a filter that a) only software that is for sale matters, b) only his view of how the development process works is correct.

The thing that saddened me in his latest post was once again he takes a swipe at unit testing, guess his code works the first time and he doesn't have to worry about changes mucking it up... sigh.
Gravatar
Nicholas Piasecki - Wednesday, October 07, 2009 - To be honest, I don't see what all the hubbub is about. People keep honing in on the bit about unit testing which was one small blip, and he qualified the quote in the next paragraph. I think it was a jab against the seemingly new fad of unit testing for unit testing's sake at the expensive of actually shipping software.

The gist of the post is to keep it simple and ship often. That's not new, and it's hard to disagree with that.
Gravatar
KevDog - Wednesday, October 07, 2009 - @Nicholas

It's not just the keep it simple stuff. Take a look at this post on IoC containers: http://tinyurl.com/lame-post-on-IoC and scroll down until you see Spolsky's answer. It really is the coding equivalent of "Hey, you kids stay off my lawn". It celebrates ignorance and assumes that the best way to write code was perfected about 10 years ago.

I used to think Joel on Software was required reading, now I just think of it as a voice from the past.
Gravatar
av - Wednesday, October 07, 2009 - thanks Rob! need more guys like yourself, Uncle Bob and etc to say it out loud that what he's feeding developers who might take him serious is a bunch of old old stuff that just should not be acceptable in this day and age.
Gravatar
Nick Berardi - Wednesday, October 07, 2009 - Nicely said... I could not find the words to explain how I felt about this, but you hit the nail right on the head.
Gravatar
Craig - Wednesday, October 07, 2009 - Joel has said some interesting things over the time, but recently his comments on software development are making him sound more like just an average Joe hack developer rather than the self proclaimed guru he was. I think by the lack of cold face code writing every day Joel has become the person he hates.
Gravatar
Thiru - Wednesday, October 07, 2009 - If you listen to what Joel has to say, and don't take opinions of his that are counter to yours personally, I think you'll find lots of interesting ideas. I like the fact that he's not afraid to voice his opinion and go against the grain of popular software development. He doesn't pick his points arbitrarily. He believes what he preaches and he has his points.

He's done a ton of good for software development and developers over the years and though he's slowed down and makes some quick judgements at time he does continue to contribute.

Rob, I think it's very unfair to compare Joel to those douche bags (not sure you spell that) on Crossfire or the Bush administration. I think your just frustrated with some of his opinions and that he speaks into a megaphone. This post is more than a bit of a stretch.
Gravatar
D. Lambert - Wednesday, October 07, 2009 - This strikes me a little like the parents that got bent out of shape when they heard that their kids were going to hear President Obama speak to them in school.

I'm not going to try to tell you that you should agree with Spolsky. Far be it, in fact, because I happen to agree that some of his stuff is a little over the top. But I am firmly of the opinion that if we can't read his stuff and make intelligent decisions about whether any of it applies in our lives, then the primary problem lies with us.

Additionally, if you browse his writing over time, a great deal of it works because it's always been just a little bit inflammatory. It rubs a nerve or pokes at a stereotype, and it gets us to think about the issue and start talking about it. If the end result of Joel rubbing some salt on the wounds of our industry is that we educate a few more people about IOC or software development best practices, then I'm not sure it's all that bad.

Of course, each of us is more than welcome to simply stop listening. No audience == no problem, right?
Gravatar
fkcoder - Wednesday, October 07, 2009 - I one sense I agree what Joel has said of the past while my not be inline with what the current trends in coding, which I what to note is not necessarily the mainstream in coding. But he is pretty open to the fact these are just his opinions and he doesn't really code much anymore. Besides that I think Joel is much more of a business person these days and his comments on the business and how to run a software development company are pretty interesting and well thought out.


I hope the TTD advocates take their own advice as they get older and new methods and techniques displace TDD.
Gravatar
Daniel Auger - Wednesday, October 07, 2009 - Rob, I came here for catharsis but didn't get it all out. You sent me down this path: http://mynerditorium.blogspot.com/2009/10/state-of-spolsky-or-how-i-learned-to.html
Gravatar
jdn - Wednesday, October 07, 2009 - Funny you should use Stewart's appearance on Crossfire, where he was pretty much an embarrassment. Carlson ate his lunch.

I think Joel should continue to post things like his 'duct-tape' post and all 'elite' programmers should have to read it. Seriously.

People who 'worry about the state of the industry' seem to me to be people who are hurting the state of the industry.
Gravatar
Matt Spradley - Wednesday, October 07, 2009 - This reminds me of a recurring theme on the Stack Overflow podcast. Jeff Atwood always disagrees with Joel on some topic only to acknowledge a few weeks later that he was right. Experience and results should count for something. I wonder how many of the people that disagree with Joel have produced successful companies.
Gravatar
Dan Elliott - Wednesday, October 07, 2009 - Aloha, Rob!

Agreed! Joel may well be successful but I want to feel pride in what I create.
If I was an accountant, that pride would stem from the bottom line; but I am a programmer and hence that pride is in the code I write.

Kindness,

Dan
Gravatar
Sheldon McGee - Wednesday, October 07, 2009 - I read "duct tape programmers" and came away thinking Joel was putting down programmers who used the duct tape method of getting things done even though that's exactly the opposite of what was there. Maybe that's because I've read all these articles from him about how important the craft is and how writing maintainable code is so important and blah blah blah. And now Zawinski is a hero for not caring about any of that?!?

I think the point of the article is that a) anyone who cares about what they do wants to do things the "right" way and b) doing it the right way gets in the way of shipping. Strive for the golden mean!

Oh yeah, lets not forget about the secret that the "right" way isn't defined and never will be because things change so much and once we figure out the right way someone is going to come along with something cooler, faster, easier. Damn you Ruby! Damn you Python! And of course, damn you C# . . . you are so much safer than C but C is the right way . . . it's the only way . . . and Joel said if I don't know C I am useless!
Gravatar
Kirschstein - Thursday, October 08, 2009 - As soon as I saw the title of this post in my reader I knew what it was about the ducttape shitstorm in my rss teacup. But your 2c is spot on.

Much <3 for this post.
Gravatar
jdn - Thursday, October 08, 2009 - Of course Carlson's an idiot. Beside the point.

"Like it or not – the future is calling and we need to advance."

Yeah, that's scary. It's new, therefore it's good. Continuous change isn't necessarily continuous improvement. We really need an entire industry full of brittle tests. That will make things SO much better than they are now.
Gravatar
Trevor de Koekkoek - Thursday, October 08, 2009 - Spolsky lost me a long time ago when he said Exceptions were bad
and you should return result codes in your methods.
Gravatar
John - Thursday, October 08, 2009 - Joel Spoelsky and Jeff Atwood are page view whores.

They write "smackdown" blogs. It's us versus them. The good guys versus the bad. Black and white. No gray. Gray is boring. Nobody reads nuanced gray articles. It's all about the page view.

Joel knows that the real world is a lot more nuanced (his blog is featured blog at ACM Queue, after all), but he apparently doesn't care about nuances, because nuances bore people. Joel and Jeff can't just say "a good solution solved now is better than a perfect solution that's never implemented". Instead, they have to turn it into "Shipping is the thing that matters".

Joel and Jeff are the Jerry Springer and Maury Povich of tech blogging. They get page views by generating a reaction. Nuances are ignored, because nuances put people to sleep.

So they write and say absolute nonsense. Quantity over quality, says Jeff (I'd hate to be on a life machine in the hospital whose software was written by Jeff). Solid principles = waste of time. Shipping date is more important than testing (I sure hope that Boeing does a couple of rounds of testing the software in the new planes before putting them into the skies).

And what world does Joel live in where the biggest problem is overengineering? I'm sure there are, perhaps at MIT, people who look so long for the perfect architecture that they never actually create a real product, other than for themselves.

But the real world is mostly the opposite. I have seen time and time again, so many accidental architectures. Bad method names, bad class names, long methods, and rigid structures that require gigantic hacks, because the architecture no longer reflects the real business domain. And those piles of dung were created by duck tape coders.

But Joel didn't mention that. That would make the blog nuanced and he can't have that.
Gravatar
Salman - Thursday, October 08, 2009 - It's all about the delivery/drama, don't actually read into the technical aspect of the post.
Gravatar
Andrew - Thursday, October 08, 2009 - Rob,

I think if you ignore Joel's rhetoric and actually dig down deep into what he's saying, I believe he's arguing against Over Engineering. While I don't agree with the "A shipped incomplete product is better than a non-shipped product" philosphy, but I do agree with the fact that a simple solution will likely be better than the "right" (re: complicated) solution.

Sometimes you just need to throw a value in a config file, but give a developer some leeway, and before you know it you've got a complicated rules engine on your hand.

In that respect, he has value (as a contrary view point), because you have to remember, in this niche he's actually in the minority. "Bad" developers (or 5:01 developers or whatever we're calling them these days) don't read his work.

Let's put it this way, if it wasn't Joel who wrote the Duct Tape blog, and we replaced the words "Duct Tape" with practically any other set of words, would anyone really have cared?
Gravatar
Dave - Thursday, October 08, 2009 - Spolsky is just a smooth talking Salesman running a business that he knows nothing about (code). Read here.

http://codezest.com/archive/2009/10/07/worst-development-blog-post-ever-ndash-by-joel-spolsky.aspx
Gravatar
Anthony - Thursday, October 08, 2009 - >>>Spolsky lost me a long time ago when he said Exceptions were bad
and you should return result codes in your methods.

Wow, Unreal. It just gets better and better. Lets listen to such sound advice as we hack together our applications. Everyone, Joel's driving the bus. Run for your lives.
Gravatar
Lex - Friday, October 09, 2009 - You use an interesting analogy in Jon Stewart's attack on Crossfire, because at its heart it was an attack of partisanship and the real hurting takes both sides. Politicians and partisan pundits can share views, ideals and even strategies for reform but due to intrinsic beliefs look past commonalities and only see the differences (often to unrealistic extremes).

Lots of software projects fail and personal experiences, though valuable, fuel the vehemence with which points of contention are debated; this project failed because it turned into a tarball; this project failed because the designers were too inflexible and unrealistic in their demands. In this sort of forum people almost feel pressure to align to a side even when the divide is not so black or white nor so wide.

The pragmatist might argue that taking the middle ground is what they are doing, whereas the believer of a particular practice(s) might claim the middle ground or correct approach because the benefits are so vast and apparent.

My personal take would be for everyone to keep saying what you are saying but perhaps spend 5 minutes to work out where you do agree and then say where your views intersect and benefits could be arise. Once you start preaching to your own choir or deriding the other side (and hey you’ve done with proper discussion now because you’ve done that all before and they just won’t listen!) you’ll find that the real moderates (floating voters) give up reading (or voting) and just gets on with things their own way regardless of what you might hope for them.
Gravatar
Josh - Monday, October 12, 2009 - I guess I am the only one on the intertubes that read Joel's post and didn't go crazy in either direction. He may have been sensationalizing things, he may have been going for sound bites (is that an applicable term for a blog?), etc. but I didn't read it that way. In fact I kinda saw it as a superfluous post, as in it seemed like he was just repeating what everyone knows already. I believe the issue is that everything you read you apply it to your own perspective possibly negating the perspective of others.

I saw much validity to his post, but then again I am just a lowly corporate development manager and not a figure head of the industry as some of you are. I knew exactly what he was talking about when he said that some times you just don't have time for unit tests. It is true, when the vp/pres of the company comes to you and says I need X yesterday well you hack something together for them to use and hope that you can come back to it later to refactor it. Some times the corporate world could care less that it is a little buggy as long as the primary functionality is served. Bugs can always be fixed later but that TPS report that they have lived perfectly happy without until today will absolutely make or break the company.

I may be out of place in saying this, but I believe there may be a disconnect between the developers who are writing commercial software products and the developers who are writing proprietary software custom to business practices. When you are writing a product that will be generic in terms that many varying businesses/consumers can use it you have the time, and if you don't you should make the time, to unit test everything, refactor where you can refactor, develop very clean and maintainable code, etc. When you are responding to immediate internal customer needs because some department just signed up with vendor xyz and they need some new functionality that will fulfill a requirement for said vendor, well you don't always have time for these niceties. It is all fine and dandy to say what you should do in theory, but practice is often quite different and sometimes adverse to theory.

Then again, as I said, we all read things and apply them relatively to our perspective. So in my perspective of being a SMB development manager I realize the time constraints that can be imposed by the executives of a company that don't understand the level of work that goes into development. It is my job to balance the amount of time and effort required to deliver and the determine the level of expectations of business unit. If they are rushing a project but they are acceptable to the idea that it could be buggy, then I work with my developers and I begin whipping out my duct tape. If they are rushing a project and it has to be bug free (or as bug free as possible) then I have to work with the business unit and explain to them their expectations are unrealistic and this is what I can deliver in x time and I can meet or exceed their expectations in y time, then give them the choice.
Gravatar
Ryan - Tuesday, October 27, 2009 - In reference to Joel's 'pretty boy' analogy, disregarding well-known software practices to get product out the door is like not bothering to eat, sleep or shower because you are too busy. That will work for a day or so, but you are only adding to your burden of problems. Sooner than you expect, it will catch up with you and you'll be worse off than when you started.

I will agree with the sentiment that talented programmers can become distracted with fascinating side-problems, but the solution is not to dumb down your development staff. The smart ones can produce valuable software if you are able to engage them and focus them on the demands of the project. Don't expect developers to manage themselves - mastering one wickedly difficult profession is enough for one person.