Speaking as someone who has been painted with this brush from time to time:
I try to limit myself to getting into arguments over things that will at some point become my responsibility to fix. On some projects, with certain people, that can be a pretty big fraction of the code and so I'm, well... pretty damned nosy. I try to be rough the way you'd expect a good coach to be rough. Not like some snotty know-nothing asshole. But some people don't see it.
The way I see it is something like this:
Think back to the last four or five Big Emergencies you had. Split everybody into two groups. Team A is all the people who were still working hard on a fix right up until the end. Team B is all the people who gave up, or merely looked on with concerned expressions instead of being helpful.
You listen to the people on Team A. Even the people who were part of the problem in the first place (unless there's a pattern of "Test it in Production"). Why? Because Team A is living with the consequences of the bad decisions. The people on Team B get to raise concerns, offer suggestions, and disagree, but they're really spectators.
The people who are on Team B -and- who are involved in the problems are the people you really have to watch out for. They have poor judgement and don't clean up after their own messes. Honestly these people should be on performance review, but for reasons I'll never fathom we always seem to forget these indiscretions at annual review time. I honestly wish I knew why. If anyone has a theory, I'd love to hear it.
I try to limit myself to getting into arguments over things that will at some point become my responsibility to fix. On some projects, with certain people, that can be a pretty big fraction of the code and so I'm, well... pretty damned nosy. I try to be rough the way you'd expect a good coach to be rough. Not like some snotty know-nothing asshole. But some people don't see it.
The way I see it is something like this:
Think back to the last four or five Big Emergencies you had. Split everybody into two groups. Team A is all the people who were still working hard on a fix right up until the end. Team B is all the people who gave up, or merely looked on with concerned expressions instead of being helpful.
You listen to the people on Team A. Even the people who were part of the problem in the first place (unless there's a pattern of "Test it in Production"). Why? Because Team A is living with the consequences of the bad decisions. The people on Team B get to raise concerns, offer suggestions, and disagree, but they're really spectators.
The people who are on Team B -and- who are involved in the problems are the people you really have to watch out for. They have poor judgement and don't clean up after their own messes. Honestly these people should be on performance review, but for reasons I'll never fathom we always seem to forget these indiscretions at annual review time. I honestly wish I knew why. If anyone has a theory, I'd love to hear it.