I don’t know what it is about programming and software engineering, but these two fields seem to attract a significant number of people with some serious personality issues.
One of the types I’ve encountered on a regular basis is what I call the APAP, or Arrogant Passive-Agressive Programmer. These are the people who will go in and rewrite existing code just to show off how clever they think they are, but can’t be bothered to document what they did or why. Heaven forbid that they should go and actually talk to the original author of the code before making changes to it. Another variation on this is the person who won’t talk directly to the person originally responsible for the design or the initial code, but instead go to the group manager, or someone not even directly associated, and discuss issues and changes with them instead.
Both of these behaviors are, in my considered opinion, very destructive to a team environment and incredibly unprofessional. At the very least it leaves the original author of the code feeling unvalued and unwanted, and unless the company wants to see that person leave someone needs to step in and put a stop to it. Quickly. If the manager is the “go-to” person for the APAP, then the manager is also guilty of dereliction of duty if he or she can’t see what is going and take steps to nip it in the bud. If the APAP isn’t open to discussing the issue and at least making an attempt to put their own personal prejudices and opinions aside for the sake of the team, then they need to find another job.
Sadly, however, it can get worse. I was once involved in a situation where, after working on a project for a couple of years, writing everything from the initial proposal to the verification plans, doing the original architectural designs and then writing the bulk of the code, a “consultant” was brought in to help clean up some nasty last-minute issues. It just so happens that a new manager was hired by the company to head up the software group shortly before this, and this consultant was a “really good friend” of his. The consultant, while undeniably bright and capable, was also a world-class APAP, and the new manager let him get away with ignoring me and going to him instead with questions and comments. That might have been alright, if the manager actually knew anything about the project, which he did not. Well, this was a classic no-win situation, since both the new manager and his consultant buddy were world-class jerks. I dealt with it by quitting and finding another job. The company later fired both of them, but too late to do me any good.
In less extreme cases it may be possible to bring the situation to the attention of management. It’s been my experience that confronting the APAP directly will result in a lot of head nodding and mumbled agreement, which is then followed by a redoubled effort on the part of the APAP to prove to the universe just how smart they thinK they really are. At your expense, of course. An APAP does not like to be called out, but because they lack the ability to deal with it head-on they will, when stressed, often resort to various forms of sabotage, back-stabbing and even slander. This why a person like this needs to be dismissed. They are toxic and destructive.
If you get stuck with an APAP, and management can’t or won’t deal with it, then you really need to think about getting a different job. If you are management, then the only correct and professional course of action is to take the bull by the horns and resolve the issues. Show the toxic person to the door, no matter how smart they might seem to be. Smarts is not an excuse for being a jerk and ruining a team.