I once worked with a guy who was very into the idea of his personal autonomy.
Once we had to design an API (in C), and it had to have a doubly-linked list in it. We always used doubly-linked lists, because we had an existing API that offered them “for free”: no work on the programmer’s part involved. Then we moved some software to a different platform that didn’t have any similar API’s for it, so we had to write our own. Eventually some people at a different location wrote a general doubly-linked list API and offered to support it for anyone in the company to use, but some people still rolled their own.
So, we had a choice of requiring users to set up a doubly-linked list that would be compatible with one of those API’s. The in-house API was set up in the standard way, with 0 indicating both the end of a list and an empty list. The legacy API was set up with -1 indicating both of those things.
This guy decided that our interface would require 0 in some cases and -1 in others.
Reviewers complained, and in person he agreed to change it back.
Then he thought about it some more, and decided that he would require 0 in some cases, and -1 in others. But in different places.
He came into my cubicle and told me he was going to do it. I repeated the arguments from the review. He gave a bunch of disconnected arguments as to why his way was correct, and refused to leave my office until I gave in.
Finally, I said it was his decision, which it was. But that wasn’t good enough for him. He started arguing that I had an obligation not only to concede but to agree. He refused to leave my desk until I changed my mind. He compared me to someone he’d used to work with, someone who as far as I could tell seemed pretty successful at his job, but who according to the guy in my office was a total loser, and who like me had lame hobbies like piano playing. I don’t remember how I finally got rid of him. I do remember what his reputation in the department was like after that.