Sometimes (in fact, most of the times) it's hard to say that the fault is mine. Probably the first words out of my mouth will be "It's theirs fault", specially in integration projects. Tiago have banged some considerable times in my head because of this. I know he's right. I should ALWAYS first check if the error is mine and assume that it could be, before blaming on someone else.
This thought came to mind when I read Jeff Atwood's post. In some point of his post says:
...If you're going to subject the world to your software, take full responsibility for its failures. Even if, technically speaking, you don't have to. That's how you earn respect and credibility...If the problem lies in some other bit of code that you don't control, you'll not only have learned essential troubleshooting and diagnostic skills, you'll also have an audit trail of evidence to back up your claims, too. This is certainly a lot more work than shrugging your shoulders and pointing your finger at the OS, the tools, or the framework-- but it also engenders a sense of trust and respect you're unlikely to achieve through fingerpointing and evasion...
I'll certainly struggle to follow this thoughts.
So, young programmers be humble and think that the fault is always yours.
Until next time ;)