I try not to be a link tout, but I think that Kyle Wilson’s essay is well worth reading — even if it shouldn’t contain anything new to anyone who has ever coded any serious software. Because, yes, software is hard.
(Software is also fun, but trust me: the fun stops when you discover that you’ve got a rounding bug because someone five years ago inserted a small bit of asm in a pascal-based C++ application to avoid a certain bug. That just sucks. It’s been ages since I’ve had to fight with that kind of nonsense. Dear $DEITY: Qt just makes so much sense.)