I was having a frank discussion with my boss this evening, trying to work out what's keeping our tiny development team from performing better. He, nice man that he is, pointed out that "you are a reasonable man, he is a reasonable man, (the third member of the team) is a reasonable man--what is it that keeps you three from being an effective team?"
It wasn't until about 3 hours later that I realized what at least part of the answer is, and it's the root of what's been "wrong" with this team, and indeed, what's "wrong" with many development teams. I am emphatically
not a reasonable man. Where making software is concerned, I'm a distinctly unreasonable man. In fact, I'm pretty sure I'm a complete son-of-a-bitch. And the people I have loved working with the most are, themselves, unreasonable people. As you might imagine, this can cause a lot of friction in a development team, if the rest of the team is full of reasonable people who expect reasonable behavior.
In my defense, I'm pretty sure you can't make adequate software by being reasonable.