Today is the first day that I'm little bit pissed off at work. I was doing a data parser for a file format outside our company. I've done similar things and I thought it could be easy. And it turned out the data I parsed was wrong. Then I asked questions to the file format owner. The file format owner was too busy on other things to answer my question directly. The answers I got all the afternoon were NOT on the point: either things too easy like "this is the C/C++ cast that I don't know does .Net has it or not", or things too complex and should not be concerned like "different compiler might pad uncertain data for data byte alignments". And finally the owner replied me like this: "oh here is the latest spec, it turns out the spec you have is not up to date and your code missed those dummy bytes". I knew I was right. I was too conservative to say it's not my code but the spec I had was wrong.

Lesson Learned: as a good programmer, you should have faith in your own code.