6

I am working for a US client for web application development as Vendor. Our team consists multiple vendors, client employees as well. Recently this project is moved into different department since its scope, future growth and its budget more related to another department. Hence myself and few others are transferred to new department.

There we have a team member who is Client Employee. Let us name him as Jerry. By the time we join in the department he is Vendor and with in a month he became employee. And he is struggling to learn our application and its code base. Meanwhile my manager announced one of my colleague as dev team Lead who transferred from old department along with me.

One day my current manager approached asked me. “Please help Jerry and it is very Important”. By that time I heard some rumors about Jerry. The gist of those rumors are Jerry has secret plans of kicking off the team members who are transferred from the project and bring his own people by finding faults and mistakes in our work.

I started work with Jerry to help him by giving suggestions, ideas, solutions and some times code snippets also. Slowly I have learned that he is short temper, anger issues and his style of thinking and development is quite different than many of the people in team. He has already developed serious conflicts with some of the dev leads in my ex-department. He even doesn’t made good impression with whom he worked past and I didn’t find one person who likes him/who are neutral about him except my current manager. As per the rumors he always find mistakes in our code base and propose new changes. And it used to become very hard for me to convince him to the solutions that I used to give for the current problems in project.

As of today 4 months passed, and I learned that he is complaining and giving preaches about to both current and ex department MDs and managers about how swamp is the current code by escalating its faults and weak areas and proposing newer solutions. And last week a technical discussion with the current lead becomes severe argument and went to the extent of shouting and yelling. And in that argument he emotionally yells that “No one is helping to understand current code base”. The next day I asked my manager “Am I helping Jerry qualitatively”. And in that discussion I learned that he never tells my manager about the help I am giving and he never gives the Credit.

Now the situation becomes more sensitive and people who don’t like him start preaching and trying to influence me not to help him further as he is using that knowledge to attack us. At the same time my manager wants me to help him and support him and wants him to succeed.

How to deal this situation. I don’t want any rifts in the positive relationships with my team members and at the same time I want to do justification that the task that my manager gave to me.

Edits Based on Questions:
1. The problems he found, some of those are real and some of those are unreal. For real problems the approach he choose to fix those, escalate those and educate others is causing big mess.
2. He is not escalating first to his team members. He is directly escalating to managers, MDs.
3. Some parts the clients/managers are happy the way it is. But he still try to influence them by saying the ways he has are better.

  • 9
    Are the problems he finds real? Are his different ways of doing things better, or worse? There are two ways to interpret your story: the client employee is a better developer who is trying to fix a big mess, or he's just a troublemaker. Based on all you've said, I don't know which one it is -- but unfortunately I actually suspect the former. – Ernest Friedman-Hill Jun 8 '15 at 1:56
  • 3
    Without evidence it is heresay. Do you have evidence of any actual wrong doing? – Jane S Jun 8 '15 at 2:05
  • Many parts of your setup are unclear: one of your colleagues (contractor? employee?) is dev team lead, not Jerry? Yet Jerry is bypassing him/her and escalating to management on a daily basis? Have you asked your team lead how you, him/her, Jerry and the rest of team are supposed to work together? Is this a functional relationship or not? How do your team mtgs, sprint planning, reviews etc. work? Do both Jerry and your mgmt effectively ignore your team lead? Does Jerry think they are competent? Please fill in all the many blanks. – smci Jan 15 at 20:42
4

In general your boss has told you to help Jerry so you continue to help Jerry. Protect yourself by documenting what you discussed every time you help Jerry.

For protecting your team there are a few possibilities here.

If the mistakes he finds are real and significant then maybe this project has had some quality control issues and does need someone to make people accountable for their actions. In this case document your role on the project and double check your contributions for mistakes.

If the mistakes he finds are real but not as significant as he is making them maybe he is trying to shift his people on the team. In this case consider if he has the power to accomplish this, if so get on his good side.

If the mistakes he finds are not real then work harder in getting him to understand the codebase and document your teaching well. If he brings up multiple errors which he should have understood from your discussions bring it up with your manager that he does not seem to be trying to understand the codebase.

2

Related Questions:

How your coworkers and Jerry both feel:

Should I tell my boss that my coworker’s work is of poor quality?

Colleague keeps trying to set me up to fail and discredit me

What can you do:

When you have passive aggressive co-workers

How to explain business priorities to a programmer?

TL;DR:

  • Document all of Jerry's improvement ideas ( good or bad ) in a "Suggested Improvements" folder in your project management software to be worked on when best practices allow. Your other team members should also be contributing to this folder!
  • Any of these suggestions that are of questionable technical or business merit should be discussed with either technical or business managers.
  • Continue to help Jerry. Your boss told you to help him and your team's negative attitude towards him is most certainly part of his current frustration.
  • Make it clear to your boss what you're helping Jerry on. You can include this in the "Suggested Improvements" just as part of the initial explanation - "Jerry and I looked at {x} for { length of time } and { Jerry / I / we both } decided that {y} might make a better {z}". This clearly documents what you helped Jerry understand, when it happened, while also clearly crediting and documenting his ideas. If you disagree with his idea, write that down too. It makes the discussion clear for other technical team members to review.
  • When helping Jerry, be sure that you are trying to explain in microcosm what he actually says he does not understand, not what you think the code in question does or what you think he needs to understand.
  • Be sure that he fully understands or dismisses you before you leave him on his own.
  • Try to clear up your team's negative attitude towards Jerry. It doesn't help anyone, and will only makes everyone's job more difficult and less pleasant until Jerry quits, and there is no guarantee that Jerry will quit.
  • If Jerry's short temper remains after your team has resumed helping him and his ideas are being taken seriously, take it up with your manager.

Full Answer:

I started work with Jerry to help him by giving suggestions, ideas, solutions and some times code snippets also. ... And last week a technical discussion with the current lead becomes severe argument and went to the extent of shouting and yelling. And in that argument he emotionally yells that “No one is helping to understand current code base”. The next day I asked my manager “Am I helping Jerry qualitatively”. And in that discussion I learned that he never tells my manager about the help I am giving and he never gives the Credit.

It might be the unfortunate case that he doesn't find your explanations helpful. This might be a failure of understanding on his side, communication on yours, or a bit of both. To be frank, judging by your question, your written English communication could be better. It's readable, but there's grammatical errors and it's not very focused. I'm not saying it's entirely your fault and don't want to make assumptions, but if Jerry is a native English speaker and a significant part of the dev team is not, this communication barrier could be part of his frustration. It is not your fault, but it is your job to make sure you're clearly understood. It is Jerry's job to do his best to not get frustrated while you attempt to explain things to him. His short temper is something that can be taken up with him - "Jerry, it's very difficult for me to stay focused on explaining this concept when you become angry. It's stressful and does nothing to further {the current business goal we are working on}.", or with management if he doesn't improve.

  • The next time he needs help understanding how something currently works, make sure he has clearly stated "Yes, I understand" or "I no longer need your help" before you leave him alone with it.
  • If he has to ask you for help as frequently as you make it sound, ask yourself if the code base really IS good enough. If the code is clean, with well-written documentation and comments to explain the difficult parts, any competent programmer should be able to muddle through it.
  • If he is incompetent, make note of these clearly documented concepts that he doesn't seem to understand, if only for your own reference as far as things he might need more guidance with or that might trip him up later.

He even doesn’t made good impression with whom he worked past and I didn’t find one person who likes him/who are neutral about him except my current manager.

What is your current manager's like based on? Are they old friends? Does he think Jerry is a better programmer than the rest of the team? If your boss is blithely thrusting an incompetent, abrasive, and unwanted member into a team, then he sounds like he's doing a pretty poor job himself, but you don't imply anywhere that you're blaming your boss for Jerry.

Now the situation becomes more sensitive and people who don’t like him start preaching and trying to influence me not to help him further as he is using that knowledge to attack us.

This is unprofessional and a bad idea. You should help your coworkers, especially those your boss has explicitly asked you to help. Your coworkers' attitudes is probably a large part of Jerry's current frustration.

  • Make sure you document and that your boss understands the help you're applying if Jerry isn't mentioning it. This can be very detailed to attempt to show where Jerry ( or the code base ) are lacking, or it could just be a general time-log like: 9-1 worked on widget. 1-3 Helped Jerry understand widget.

The problems he found, some of those are real and some of those are unreal. For real problems the approach he choose to fix those, escalate those and educate others is causing big mess.

You don't go into depth about how he is attempting to deal with the "real" issues from a software development standpoint. It probably warrants a separate question on Stack Overflow or Code Review if it's part of your overall complaint.

  • If he is complaining about shortcuts that were taken for business reasons, clearly explain the business reason for the lower quality code ( if those reasons are anything except time constraints, they should already be thoroughly explained in the code comments or documentation ).
  • If the code base is perfect and Jerry is complaining because he is incompetent AND this is negatively impacting productivity ( that last part is important, see this question ), you should take this complaint to management with as many members of the rest of the team as agree with you.
  • What are the "unreal" issues? Is this Jerry's incompetence complaining about fictitious issues? Or are these issues that you have decided are not important? For example, common issues that developers might minimize the importance of are poor UX, poor documentation, or poor test suites. Is it something like that? Because those are all serious issues, even if "the code works".

He is not escalating first to his team members. He is directly escalating to managers, MDs.

Did he attempt to escalate to team members a few times and things were not handled to his expectations? Regardless of whether he's right or wrong, he'd be foolish to keep making requests that were ignored.

  • Next time he escalates a problem past the appropriate team member to a manager, ask him "Why did you not escalate this to {team member}? Did you feel they were unable or unwilling to deal with it?"
  • ARE they unable or unwilling to deal with it? You say that some of your team members are recommending you not help Jerry, so they are probably not providing adequate answers to his questions. I would certainly stop trying to deal with developers stone-walling me after the first few attempts, and complain to management if it continued for several months.

Some parts the clients/managers are happy the way it is. But he still try to influence them by saying the ways he has are better.

ARE the ways he has better?

  • If the current software work and clients are happy, you can clearly explain how it's not a business priority to change them. But maybe you could placate him by documenting his ideas in an "Improvement" or "Backlog" folder in your project management / bug tracking software.
  • If his ideas are about changing code to be easier to work with, AND those ideas are good, AND that code is worked with frequently to meet business needs - you can evaluate the business case for updating that code. See this question
-1

My answer will probably be voted down, but I recommend reading this article: http://en.wikipedia.org/wiki/Psychopathy_in_the_workplace

And afterwards try to get rid of him, best is a promotion into a department where he either does no harm or has a team of people like himself around him.

Best you can do temporarily is to switch "helping Jerry" to E-mail so you have a paper trail, but that will not help if he is lying to your bosses.

Important is to understand he will probably never change, so don't waste too much time on it. Only spend time if it helps the company, not Jerry personally.

Do you have an issue tracker tool? Put all suggestions there, make Jerry use the tool, discuss everything as detailed as neccessary.

Good luck

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.