A talk given at PyCon by Jack Diedrich called Stop Writing Classes rang true with me. Jack's point is that classes are overused. He demonstrates his point with an obvious example. It's an excellent talk. However, my favorite lesson is we ship features not lines of code.
I'd get this tattooed on my brain if I could, not because I like writing classes but because I like writing code. But I'd rather create cool things than write code. So why am I spending more time writing code than creating features? Why am I writing about writing code?
My current nice theory is that it's easier to focus on code quality rather than features. Features aren't very meaningful without a user. Most development time is spent without users surrounded by other programmers. Nobody knows what features users want. User experience is confused by the developer's gestalt of a product. Features take a lot of time to get wrong and are hard to get right.
My real current theory (the mean theory) is that it's easier to be a code douche. The defining characteristic of the code douche is that he's more interested in purity than results and more interested in ideals than reality. This is harsh, but my straw man argument applies to me especially (unless you're a bigger code douche than me). I love harmony, efficiency, and simplicity but these ideals too often become a liability rather than an asset.