Nobody Hates Software More Than Software Developers
codinghorror.com
Nobody Hates Software More Than Software Developers
1–10 of 50 posts
Re: Nobody Hates Software More Than Software Developers
#2What's the worst code you've seen recently?
If their answer isn't immediately and without any hesitation these two words:
My own.
Then you should end the interview immediately. Sorry, pal.
It seems to me that few programmers would answer the question this way, competent or not. And it's probably not true for most competent programmers... I wonder if Jeff has actually received this answer from a interviewee.
Re: Nobody Hates Software More Than Software Developers
#3What's the worst code you've seen recently?
If their answer isn't immediately and without any hesitation these two words:
My own.
Then you should end the interview immediately. Sorry, pal. You don't hate software enough yet. Maybe in a few more years. If you keep at it.
I have always enjoyed Jeff's columns and maybe I'm missing a subtle point (or just taking the bait), but this may be the worst "advice" I've ever read on hn.
If someone told me that the worst code they've seen recently was their own, I'd wonder why.
I feel confident in my own ability to usually write excellent code on the first try. Sure, it may need some refactoring, optimization, and flushing out of features, but it works, it generally works well, is very well documented, and can be easily enhanced by myself or someone else. If it's not right on the first try, I will fix it before I promote it. Shame on me (and anyone else for that matter) for leaving behind garbage for someone else to inherit. I've cleaned up far too many messes to allow myself to become like that.
I'm probably not alone when I say that I love developing new code and often hate maintaining someone else's mess.
Jeff is right about one thing though, almost everything I ever inherited was crap in one way or another, probably written by someone "less than senior".
I'd rephrase the whole interview question:
"What's the second worst code you've seen recently?"
"My own."
"OK then, what's the worst?"
"Everyone else's."
That's the one I would hire.
Re: Nobody Hates Software More Than Software Developers
#4In fact, I think you can tell a competent software developer from an incompetent one with a single interview question: What's the worst code you've seen recently? If their answer isn't immediately and without any hesitation these two words: My own. Then you should end the interview immediately. Sorry, pal. You don't hate software enough yet. Maybe in a few more years. If you keep at it. I have always enjoyed Jeff's c…
Re: Nobody Hates Software More Than Software Developers
#5In fact, I think you can tell a competent software developer from an incompetent one with a single interview question: What's the worst code you've seen recently? If their answer isn't immediately and without any hesitation these two words: My own. Then you should end the interview immediately. Sorry, pal. It seems to me that few programmers would answer the question this way, competent or not. And it's probably not…
I agree with Jeff on this one. Some of my worst experiences with code has been going back over stuff that I wrote 3-5 years ago. I'm pretty hard on crappy developers, so I'm doubly hard on myself when I look back at some of the boneheaded mistakes and decisions I've made.
Re: Nobody Hates Software More Than Software Developers
#6In fact, I think you can tell a competent software developer from an incompetent one with a single interview question: What's the worst code you've seen recently? If their answer isn't immediately and without any hesitation these two words: My own. Then you should end the interview immediately. Sorry, pal. You don't hate software enough yet. Maybe in a few more years. If you keep at it. I have always enjoyed Jeff's c…
The irony of you saying "almost everything I ever inherited was crap in one way or another" is that somebody probably said the exact same thing about your code. I bet you write amazing code, but when given a choice, programmers would rather have the joy of creating their own code than trying to interpret someone else's.
You're probably right about people who inherit my code. I know, when they've whined about it, I confronted them. "Please show me exactly what's wrong with it. What are your specific complaints about violations?" I rarely got an objective answer. It was usually something about formatting, indenting, variable names too long, variable names too short, I'm use to it the way we did it (wrongly) at XYZ Co., something like that.
True crap can be objectively identified by a violation such as:
- variables named so that no one except King Tut could possibly figure out what they are
- the same variables used for different purpose at the same time, usually in nested recursions
- variables named with 1 or 2 characters
- unassigned variables
- variables initiated when they shouldn't be
- division by zero
- single entry, multiple exit (heavily maintained so that now outlying cases skip critical logic)
- the same code in multiple places (only some of it maintained so that outlying cases skip critical logic)
- endless recursions (for outlying cases only, naturally)
- comments that don't agree with the code
- data base tables with no definitions either in the schema or any code (my new favorite)
I could go on and on, but you kinda get the picture. I wonder how many readers here have posted crap like this on their "wall of shame" at one time or another. It's funny the first 2^n times. Not so much fun anymore.
Re: Nobody Hates Software More Than Software Developers
#7If you keep learning new and better techniques and practices, old code starts to look immature. If you code in the real world, you make compromises to get a project launched before you're living in an alleyway.
TicketStumbler may be a steaming pile of crap in some places and my deployment strategy may have devolved to "install random packages until it stops throwing internal errors", but it was not always this way. Not only have I managed to become an even more amazing programmer in the past year (against all odds), but I've had to cut so many corners the whole thing is beginning to look like a circle. These two factors, above all others, have caused me to rather loathe my code. But that doesn't mean I always do.
Maybe this was the point Jeff was attempting to make? If I am only good by hating all my code, I don't see how I could ever be good.
Re: Nobody Hates Software More Than Software Developers
#8In fact, I think you can tell a competent software developer from an incompetent one with a single interview question: What's the worst code you've seen recently? If their answer isn't immediately and without any hesitation these two words: My own. Then you should end the interview immediately. Sorry, pal. You don't hate software enough yet. Maybe in a few more years. If you keep at it. I have always enjoyed Jeff's c…
Re: Nobody Hates Software More Than Software Developers
#9Re: Nobody Hates Software More Than Software Developers
#10Earlier quoted context omitted.
The irony of you saying "almost everything I ever inherited was crap in one way or another" is that somebody probably said the exact same thing about your code. I bet you write amazing code, but when given a choice, programmers would rather have the joy of creating their own code than trying to interpret someone else's.
When it comes to maintaining code, I believe there are 2 kinds of crap: subjective (I don't like it) and objective (it's crap because of these 14 specific reasons). You're probably right about people who inherit my code. I know, when they've whined about it, I confronted them. "Please show me exactly what's wrong with it. What are your specific complaints about violations?" I rarely got an objective answer. It was us…
I breath a sigh of relief whenever Microsoft breaks and old DLL's compatibility: when you can't push through for an upgrade, pray for Redmond to force it.
[Update:
``The hardware-specific accounting package''
This one is truly the "winar": plain-jane boring software that for some goddamn reason depends on that old Hayes modem, or this matrix printer. I have been hired to do this shit so often it's not even funny; it tends to sneak past the initial discussions. You tick off "GUI" and "ODBC" and you're on your way to start hacking, making a mental note about "ability to print". What you don't know is that, not only do they want to convert the old Access package to an intranet web app, but they also want it to print receipts using the "receipt printer" -- a custom made piece of pain that uses the parallel port for data, the serial for control, and two RJ45s to whistle the Danish national anthem on error. FUCK!]