Ploni Almoni sent me this link recently. I read it, amused and agreeing with almost everything — until I got to the end:
In short, I hate software — most of all and especially my own — because I know how hard it is to get it right. It may sound strange, but it’s a natural and healthy attitude for a software developer. It’s a bond, a rite of passage that you’ll find all competent programmers share.
In 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.
That test works for people who are skilled enough to recognize their own lack of skill — a major step forward, and one that it took me five or six years to achieve. But it would exclude those of us who have actually become competent at it, which takes a lot longer. Apparently Jeff hasn’t reached that stage yet.
I see far worse code than my own on a weekly basis, so I’d fail Jeff’s “competent software developer” test, despite being a lot more competent than most professional developers I know. While I may not always be completely happy with my own software, I certainly don’t “hate” it. In fact, I trust and prefer my own software to anyone else’s, because by the time I finish writing it, I know it like the back of my hand, and I know that it’s good and solid code. If it isn’t, then it isn’t ready to be used by anyone, including and especially myself.
It’s a truism that a programmer usually can’t accurately judge whether another programmer is better than himself, only whether he’s worse. Maybe in a few more years, Jeff. If you keep at it. 😉