|Think about Loose Coupling|
When my friends and I exchange code we do make all kinds of comments that would be arrogant if we didn't understand each other so well. But we have ten years of shared history, so we do.
However I have learned to be careful about admitting my mistakes around others, especially management. When you get some tonka who has never had to turn out any code, or in fact do anything useful with his life, even simple statements like "Ooops, my bad, I'll fix it now" can turn into big black marks in your performance review. I have recently been in a situation that illustrates this clearly.
In our office there is a machine set up to be like the customers machine. It runs complicated mix of Oracle, 3rd party server apps, and 3rd party client software (in the sense that it connected to the server, not that it was written by the client). The database I was using was an old image of the customers data. The machine was a test machine with test data. Completely redundant and not being used for anything important. I was under the impression that everyone in the office knew this. I was told to upgrade it with the new version of the 3rd party software in preparation for the customers site upgrade. During the course of the upgrade, something went wrong. The (redundant) database became corrupted, the client software wouldn't connect to the server, etc. A complete mess which I finally decided was unrecoverable. No worries, we have the originals of everything somewhere in the office so I went a-hunting.
However in the course of the hunt for the software I had to explain why I needed it to a number of people. I finally ended up explaining it to my boss, but I gave him the abbreviated version ("I fscked the database, need to reinstall it"). I later discovered that I had been about to get into heaps of trouble for "destroying the database" until a cluey management-type person stepped in and explained what I assume everyone here would have figured out from the beginning - the test machine was there to be abused so that I would know everything necessary when we went to do the important upgrade (the clients 'production' machine).
Possibly I should have spent a lot more time explaining the situation to my boss, but since he's the one who told me to upgrade the test machine in the first place, you'd think he'd understand the situation.
The moral of the story (for me)? Admitting your mistakes might ok when dealing with co-workers, but you can't show weakness to the management, even for a moment.