<i>In fact, I think you can tell a competent software developer from an incompetent one with a single interview question:<p>What's the worst code you've seen recently?<p>If their answer isn't immediately and without any hesitation these two words:<p>My own.<p>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><p>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.<p>If someone told me that the worst code they've seen recently was their own, I'd wonder why.<p>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.<p>I'm probably not alone when I say that I love developing new code and often hate maintaining someone else's mess.<p>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".<p>I'd rephrase the whole interview question:<p>"What's the <i>second</i> worst code you've seen recently?"<p>"My own."<p>"OK then, what's the worst?"<p>"Everyone else's."<p><i>That's</i> the one I would hire.