Just reading the title makes me wince and remember all those times I tried to convince others of a course of action because it was obviously right.
No one cared.
The old chestnut definition of leadership is ‘influencing others to accomplish a common goal’, and it’s doubly true in software. We think that perhaps by using terms like ‘right’, ‘obviously correct’, or ‘self-evident’, that we’re convincing others.
We aren’t. No one cares that you’re right.
The only thing you interact with that cares about correctness is the compiler, and it will sit there and patiently do what you tell it to do, until the heat death of the universe. The compiler cares that you’re right. And the compiler can’t do a damn thing except what you tell it.
Aren’t we all glad then that humans are harder to persuade? How many times have you told a compiler to do something that in retrospect was dumb, and it happily carried out your instructions? Every bug starts as an obviously correct bit of code.
People are harder to persuade, and in that fact lies the art of leadership. While it might be nice to wish that your direct reports listened to you just because you were in charge, remember that is how bugs happen, when someone blindly does what you tell them to.