Worst Development Blog Post Ever – By Joel Spolsky

kool-aidProgramming The good thing is, I don’t have to ramble on as to why this is probably the worst post I’ve ever read relating to development.  I think if I did my rambling would be an 800 page book.

But here it is, the most naive post I’ve ever read.  I suppose I shouldn’t be acknowledging and giving this guy any kind of attention but it’s so bad, I feel an obligation to share a post from a true Salesman which is what he is, not a developer:

The Duct Tape Programmer (la la la la Lame?)

Interesting Joel, I wonder why you don’t enable commenting on your posts?

I cannot even believe anyone would promote Code & Run.  No matter how you dice it, it’s not just over engineering that he’s talking about, read all of it!  He promotes Code & Run simple as that.

No people, this is NOT reality or what should be reality in your development shop, and it’s NOT smart business sense.  Unfortunately there’s a lot of morons out there who think this code & run mentality fits the bill.  It’s called controlled iterations, prioritizing your tasks, realistic deadlines, and caring about wtf you produce and that means you don’t run to get things out the door no matter what you say about business needs this or that.

Now for the posters who obviously have a brain:

Duct Tape Programming? - Certainly not THAT way...

The Duct Tape Programmer

This is true to what I believe and Uncle Bob stated it perfectly:

“The programmer who spends weeks building the perfect structure does just as much harm to the project as the programmer who hacks a bunch of crap together. Neither have struck the balance that’s required.”

Now I don’t have to read Uncle Bob’s post either to know that, I have experience that has proven that.  It’s not “academic” and that’s a lame excuse and just dumb response that I often hear from some developers who do actually apply code & run chaos to their every day delivering for the business.

Just Stop. Please.

Debunking the duct tape programmer

The State of Spolsky or: How I Learned to Ignore the Legacy Programmer Boss

Has Joel Spolsky Jumped the Shark? (this is old and unrelated but relevant)

WTF does academics have to do with smart project planning, not too much documentation (so you CAN get stuff done) and a BALANCE between finding the critical path in your code vs. over architecting an app?

If I were to run my own business like this I’d be completely ashamed; this would surely reflect bad on me if I was the owner and probably my employees would hate working for me.  It’s like waking up every morning with your wife beater shirt on telling her to make coffee because I don’t even know how to run the damn machine myself.

It makes me lose sleep at night knowing we have salesman posting about how to Code & Run out there.  Stick to selling, do not run an IT shop.

Is Joel going to make some more Kool-aid for us? And if you’re driving the big yellow bus, please do let me off soon please.

Print | posted on Wednesday, October 07, 2009 9:53 PM

Comments on this post

# re: Worst Development Blog Post Ever – By Joel Spolsky

Requesting Gravatar...
You've lost sleep?
Why not stop the crying, stop your academic dishonesty, and re-read the post.

Is he really promoting Code-and-Run? Axe to grind? I think so.
Left by wahhhh on Oct 08, 2009 1:53 PM

# re: Worst Development Blog Post Ever – By Joel Spolsky

Requesting Gravatar...
Oh God, must I reply to once again a one-line backless naive statement.  And please why don't you expose your name?  What's there to be ashamed of?

Tired?  yea, but that's not why myself and others are ranting about this ameture post and just overall attitude from ameture type of environments which ultimately code hacky and disorganized products.

The point is, the post does promote that kind of culture, no matter how many times you read the damn thing.

I'm simply sick of:

a) Coming across code & run mentality in the workplace
b) Salesmen who don't know wtf they are doing and dictate from top down a code & run hack environment

I didn't go into this profession expecting to work in a pile 24x7 and go home worrying about the applications I code in terms of "it took me all day to figure out what that spaghetti code was doing before I could even use it", or "I hope I don't get any pages due to code fires", or "I can't get latest because the project doesn't build due to lazy developers who can't check in code that compiles".

So no, I am not out of touch, not out of reality, nor am I going overboard when I say that post sucks.  And I will discount it with all my might.

That's not what drives applications that are maintainable, extensible, and reduces my time fixing bugs, figuring out what 300+ line methods are trying to accomplish, and the list goes on.

I like to go home and enjoy my life.  And that means shops that allow their developers to strike a balance between "fast" and "too slow".

It's simple, and his post is not misleading nor did I misread.  I resent developers or managers who run environments carelessly like this.  I'd like to see how Joel's employees feel working for him.  Truly feel.  I bet there's a lot of turnover there and that his good developers which he probably didn't know he had were either fired or left due to that kind of environment.  I bet you not even knowing anything about his business or internals that I'm probably right.

Anyone want to reply who works there or has?  I'd be interested in knowing.
Left by Dave Schinkel on Oct 08, 2009 1:55 PM

# re: Worst Development Blog Post Ever – By Joel Spolsky

Requesting Gravatar...
Actually, I think that Jeff Atwood's post on how quantity is more important than quality is worse.
Left by John on Oct 08, 2009 10:21 PM

# re: Worst Development Blog Post Ever – By Joel Spolsky

Requesting Gravatar...
John,

I think I kinda glazed over that one like ticking a fly off my shoulder because it was pretty short. Yes, I agree that's the same line as Joel. The problem I have with Joel's is that this guy writes his articles like a cheeseball. He massages them to sound nifty and they are just wrong.

He has a book plus he writes these blog posts like this so padded with bullshit that you can tell he's just a salesmen and I do not respect salesmen running development shops. These kind of people are causing people that already promote a careless way of development (loose) to continue with that and drive home that you're ok if you duck tape solutions together to satisfy business needs.

I cannot stand working in chaos like that. And people seem to think when you talk about planning, or clean code that you are saying waterfall or that you are suggesting some kind of crazy over planning that would kill productivity. That assumption is just lame.

If like me you've seen all sorts of process, you know what over planning is. You know what lack of testing is and what over testing is. So to care about developing clean code and then a collegue or manager to come back with "just get it done, we don't have time to make it pretty" is a direct contradiction to common sense and really an insult to say that one is trying to make it "pretty" or even over engineer. It's stupidity.  If I say to you hey, we need to refactor this 300 line method because I can't fucking read it...any developer in their right mind would say wtf is this, move these methods into its own class, these methods into another and so on.  Or refactor and break up that method into reusable chunks.  If someone says that this suggestion  is that you're trying to "make things pretty" or "we don't have time to refactor a 300 line method", I said adios...that's very careless to the team and the business, and very unprofessional & ameture.
Left by Dave Schinkel on Oct 08, 2009 10:29 PM

# re: Worst Development Blog Post Ever – By Joel Spolsky

Requesting Gravatar...
Joel is smart enough to make money but I think he's an idiot, in the sense that he doesn't seem to live in the real world anymore... He's probably brilliant thought since he's successful.
Left by John Doe on Oct 22, 2009 11:34 PM

# re: Worst Development Blog Post Ever – By Joel Spolsky

Requesting Gravatar...
Just because you are successful doesn't make you brilliant. There are a lot of idiots out there who are successful in business but are like kids and have no clue how to run them. I've worked for a few like this. The owner for one I'm thinking of right now couldn't even figure out how to put on his socks let along run a company but because he's in a lucky industry and h as a couple people working 10x harder than him, he's making it for now...but not for long.

It's only out of luck and dedicated people that make some owners who are complete idiots successful and they are quite dumb half the time.
Left by Dave Schinkel on Oct 26, 2009 11:16 PM

# re: Worst Development Blog Post Ever – By Joel Spolsky

Requesting Gravatar...
Dave,

I, too, have (had) over a decade of experience in IT. Most of it was in a vendor environment, and some of it was in dot coms and start-ups. One thing I can say for sure - if your company can't ship the product before its competitors, you won't have a job for long because your company is going to go under. That's where the speed aspect is critical.

Very often, from practical experience, it doesn't matter that you produce spaghetti code because:
1) the product fails in the marketplace (i.e. it is not popular enough to warrant further work), so no further support or development will ever be needed; or
2) in a vendor environment, most of the work you do today will be handled by another person or company by the time your (or your company's) contract ends.

Of course, that's from the practical aspect. Aesthetically, I could never quite bring myself to produce spaghetti code, even if that would have saved me a lot of work. I often had to use a lot of willpower to force myself to cut corners and meet deadlines.

Obviously, I was never pleased whenever I found myself maintaining someone else's spaghetti code, but over time I learned not to care anymore. If that was what the client and my boss were/are paying for (even if they say otherwise), then that is what I gave them.

You are right in saying that this is not a pleasant environment to work in, but then almost all the work environments I found myself in have been like this (or eventually degrade into something like this once economic reality asserts itself). I guess this is one reason I'm freelance now, so that I have some freedom to choose my projects/contracts.

In the end, a paycheck is a paycheck, and you get paid the same regardless of whether you churn out pretty code or spaghetti code. Your chances of getting fired when things go wrong are also the same, regardless of the quality of your work - because your manager isn't going to fire himself/herself for incompetence now is he/she? That only leaves you, as the least productive programmer (i.e. produces the fewest lines of code) in the shop (because you design/write better programs which need less lines of code).
Left by Calvin on Oct 29, 2009 2:23 PM

# re: Worst Development Blog Post Ever – By Joel Spolsky

Requesting Gravatar...
>>>One thing I can say for sure - if your company can't ship the product before its competitors, you won't have a job for long because your company is going to go under.

That is not an excuse to code & run and drive a chaotic non-realistic deadline approach with unrealistic obtainable iterations in order to get code out the fastest as possible. There's a fine line between too quick and too slow. If the balance isn't hit and you go too fast, you'll fail because your product is:

a) not tested well
b) not usable to the end user
c) not maintainable by your developers costing the business 2x the effort and work to maintain it moving forward as a team thus you will ultimately loose time with that attitude and naive approach to developing products

and your employers are burned out non-motivated, even highly resentful employees.

I don't care what anyone says, you can't have lightening speed and quality of code which includes usability, testing, and clean code at the same time.  You either get a pile of barely tested code or you bake in more time to balance the code & run out to build a normal sane timeline and attention to clean code through iterations or you will fail no matter what.

this goes for any product, service, or industry.  It's common sense.
Left by Dave Schinkel on Nov 16, 2009 7:08 AM

Your comment:

 (will show your gravatar)
 
Please add 1 and 8 and type the answer here: