(No, I don't have an answer to that question in this post)
"A friend of mine has a problem": he gets too worked out about code. And design. And architecture. "He" usually holds a view about implementation of ideas which is "all or nothing": you either do it right or not at all, which often leads to a heated debate about the smallest of features.
When "he" was a developer – he could live with the fact that sometimes – he is absolutely right and his team leader has a different (and erroneous) point of view which simply overrides his absolutely 100% correct idea.
Since becoming a team leader he has noticed that more often than before – such arguments tend to go his way. Maybe because he has a louder voice?
Now, I don't mind admitting my mistakes. I can easily recall several times that after a discussion was over and everyone calmed down – I've retracted my arguments and conceded the other side's claims. So I'm not a total asshole.
But is "putting my foot down" (on sometimes idiotic issues) worth it? There is a definite "loss of prestige" for a team leader when he ends a discussion using his authority. Sometimes it is better to just end the whole bru-ha-ha and get on with our jobs, I know, but when? I think that after we've explained ourselves several times – the argument has reached its peak. People need to absorb.
I ramble. I noticed. Sorry about that.
Also – this post ends midway. I guess I haven't thought about it enough yet. Sucks to be you, ah, readers.