6

I'm currently facing a challenging situation within my development squad, and I'm seeking advice on how to navigate it effectively.

Eight months ago, our team leader and I hired a junior developer for our squad, which consists of a team leader, two mid-level developers, and the newly added junior developer. Initially, everything seemed promising as she quickly adapted during the onboarding phase and started completing tasks at an impressive pace. Without being asked for, she actively participated in the discovery process with the Product Owner and was highly critical in code reviews, often introducing criteria not initially specified in the Jira cards, I mean "it would be nice if..." or "We need to...".

After three months, she took the initiative to schedule meetings with team members to create a feedback document for a career promotion. At our meeting, she revealed that she had held a higher position in her previous job but opted for a junior developer role due to concerns about potential layoffs and seeing it as a valuable career opportunity.

However, after nine months, our working relationship has deteriorated significantly. She publicly criticizes my work, and during the team leader's vacation, she questioned his decision to temporarily pass leadership responsibilities to me, stating that she had already expressed interest in learning about his tasks.

I've tried reporting these issues to HR, but no action was taken. Also, my attempts to clarify Jira card requirements were met with resistance from our overloaded Product Owner. The only solution that somewhat worked was responding with "out of scope" to her comments in my pull requests and involving our team leader to mediate discussions. Unfortunately, this approach strains my relationship with the team leader, and my pull requests take longer to be approved compared to hers.

In the instances when I attempted to review her pull requests with a similar level of criticism, she publicly pressured the team by repeatedly mentioning squad members usernames on Slack throughout the day, urging us to re-review her code. She operates at a very fast pace and insists on prioritizing the review of her code, stating that 'what is closest to being delivered should take precedence'. Thus, she has been acknowledged as the individual with the highest number of deliveries per sprint.

I don't mind that she is seeking fair compensation for her contributions; however, her attitude has deteriorated the team's cohesion and demotivated me from doing my job. From my perspective, all I receive from her is criticism. However, to the rest of the tribe, she is seen as indispensable for maintaining a high volume of deliveries.

I'm looking for advice on how to restore a harmonious work environment and maintain a consistent pace of project deliveries without further damaging my relationship with the leadership team. Any suggestions on conflict resolution, communication strategies, or additional steps I can take to address this issue would be greatly appreciated.

12
  • Who is your actual line manager, and have you talked to them about any of this? Commented Feb 2 at 14:34
  • I report directly to the team leader, but our product manager is the highest authority in the hierarchy. Every time I've asked the team leader to mediate our conflicts, he has taken a stance that I consider fair. However, it seems taxing to rely on him to mediate conflicts in all my pull requests. If I don't ask for his intervention, all my pull requests are rejected due to overly critical comments or excessive (bossy) suggestions from this colleague. Commented Feb 2 at 14:41
  • 1
    Have you talked to your manager about the behaviour, not the specifics of pull requests? Commented Feb 2 at 15:16
  • No, I haven't. Mostly due to fear of escalating this issue and being perceived as 'someone who complains' (me) compared to 'someone who delivers a lot' (she). Commented Feb 2 at 15:23
  • 1
    Is she from Amazon? Your description of jd sounds like she is from Amazon, or another buisness with a similar culture...
    – Questor
    Commented Feb 2 at 21:24

4 Answers 4

14

Redirect digressions. "It would be nice/we need to...": "Great idea. Open a new Jira ticket for that so we don't forget it and we'll put it into the discussion/planning cycle with everything else. Meanwhile, is there any reason not to approve this changeset as an improvement over what we have been using?"

(Can you tell I've dealt with this recently?)

6
  • Great suggestion. However, in our team, pull requests cannot be merged as long as there is any disapproval. In other words, I can try redirecting the discussions, but I still face the problem of being blocked by this colleague's criticism. What do you think about it? Commented Feb 2 at 15:27
  • 7
    You need to have a system to manage disagreement. My phrasing is an attempt to get agreement by separating the criticism from the immediate issue under discussion. If that isn't sufficient, management may have to step in and say "you are disapproving unreasonably. Incremental improvement is still improvement, and is how real world development works. Knock it off, or obstructionism goes on your performance review."
    – keshlam
    Commented Feb 2 at 15:56
  • 1
    Either that, or management moves you from needing unanimity to seeking it but requiring only a more reasonable level of consensus. If enough people have reviewed it to say it's worth doing, it's worth doing, even if one person would rather do something else.
    – keshlam
    Commented Feb 2 at 19:17
  • 1
    "it would be nice if.." two word answer to that: scope creep. that's all you need to say Commented Feb 3 at 4:50
  • 2
    Also, it is legitimate to say "that sounds interesting, but we need a solution now. If you want to implement an alternative, feel free to do so and we can review it in turn. Do it fast enough and keep it simple enough and we might be able to merge it into this change. If not, you can submit it as irs own proposal. Meanwhile --again -- does this patch have actual problems that would keep us from accepting it?".
    – keshlam
    Commented Feb 3 at 14:53
9

Eight months ago, our team leader and I hired a junior developer for our squad

What exactly is your role on the team? From the following paragraph I infer you to be one of the "mid-level developers" and have no managerial status that would justify you saying that you had made the hire.


which consists of a team leader, two mid-level developers, and the newly added junior developer.

You call her a "junior developer", but in fact you go on to say...

At our meeting, she revealed that she had held a higher position in her previous job but opted for a junior developer role due to concerns about potential layoffs and seeing it as a valuable career opportunity.

[...] she has been acknowledged as the individual with the highest number of deliveries per sprint.

[...] she is seen as indispensable for maintaining a high volume of deliveries.

So in fact she isn't a junior developer at all. She's an experienced senior developer occupying a role with fewer than her normal responsibilities (and presumably, poorer pay), whilst shining blindingly bright in that role.

Her only "ambition" seems to be to have her existing level recognised formally.


You then go on to say:

I've tried reporting these issues to HR, but no action was taken. Also, my attempts to clarify Jira card requirements were met with resistance from our overloaded Product Owner.

And in comments:

I forgot to mention that my complaint to HR was made anonymously.

Then:

[I've tried] involving our team leader to mediate discussions. Unfortunately, this approach strains my relationship with the team leader

So it seems absolutely nobody is willing to back you, and despite seeing yourself as something of a manager, you haven't had the courage to approach HR openly and yet have still done so "anonymously" (which I assume is either the most ridiculous pretense, or it has led to a complaint phrased so generically as to be inscrutable).


Conclusion

Above all, I think this is a case of the green-eyed monster. Someone considerably more competent or experienced than you, has been hired to a role that is beneath yours in pay and nominal responsibility.

To resolve the conflict, I would suggest first a shift in mentality on your part. Rather than thinking you're being "criticised" by the "junior developer", consider instead that you are being guided in your own progression by the most senior developer in the team.

It may be that after 9 months of conflict between the pair of you, dislike has set in from the other side. It may also be that you are attracting more criticism from this senior, because of the inverted role you are attempting to place yourself in over the person who is actually your superior in capability.

If you adopt a more cooperative and respectful approach towards your foe, you might find these problems dissipate, or at least that you will be on firmer ground when you explicitly ask her not to place the bar too high and be overly critical towards you.

If you do have any managerial ambitions yourself, I would also note that clear and confident communication, shrewd analysis of interpersonal conflicts, and control of one's own emotions are highly desired characteristics.

6
  • 1
    +1, I think this answer gives an important perspective to have the OP start considering the "junior" developer as an equal instead of someone under them. However, based on the OP's description of the situation, the "junior" developer is undermining the OP's work to make herself look better. This is toxic in a team environment. I think it's possible she doesn't realize she's doing this, but either way it is unprofessional and should be addressed. Commented Feb 2 at 19:31
  • Yes, I am one of the mid-level developers. I mentioned that I participated in her hiring process because, at the time, the team leader asked me to interview and assist in selecting a junior developer. I do not see myself as a manager in any way; in fact, I have no objection to the merit of this colleague's contributions. My issue is that she is receiving recognition and credit at the expense of my work, especially since her behavior, particularly in code reviews, is hindering my deliveries. Commented Feb 2 at 19:32
  • The team leader has acknowledged at different instances that this colleague's behavior is disproportionate. However, she has been successful in maintaining a high volume of deliveries DESPITE her negative attitude towards the team. I am struggling to assert myself in this situation and move away from the victim role. That's why I made the post Commented Feb 2 at 19:35
  • 2
    @Kafka4PresidentNow, you say she has a "negative attitude towards the team" whilst at the same time only really identifying problems you have personally. You use the same device in your question too: "her attitude has deteriorated the team's cohesion and demotivated me from doing my job". You'd expect a certain amount of abstract negativity towards an employer who is paying a junior salary to a senior whose delivery they seemingly acknowledge is the best on the team. But it's unclear if anyone else is suffering your same problem at her hands. (1/2)
    – Steve
    Commented Feb 2 at 21:17
  • When it comes to her being overly harsh and critical towards you, have you tried simply asking her can't she go easy and be a bit nicer to you? You seem to have tried a number of strategies, and remarked on the failure of each, except the obvious one of declaring your problem to her and asking for respite, or for her to show more collegiality and generosity of spirit. Though crucially of course, this only works when you're seeking to cooperate with someone, not to compete. (2/2)
    – Steve
    Commented Feb 2 at 21:18
3

"it would be nice if..." or "We need to...".

Okay, not great, but resonable.

At our meeting, she revealed that she had held a higher position in her previous job

Yikes. Throwing your weight around is the absolute worst thing you can do—it's an indictment of character at the very least. I'm very much not on their side at this point.

She publicly criticizes my work, and during the team leader's vacation, she questioned his decision to temporarily pass leadership responsibilities to me, stating that she had already expressed interest in learning about his tasks.

Really bad.

I've tried reporting these issues to HR, but no action was taken. Also, my attempts to clarify Jira card requirements were met with resistance from our overloaded Product Owner. The only solution that somewhat worked was responding with "out of scope" to her comments in my pull requests and involving our team leader to mediate discussions. Unfortunately, this approach strains my relationship with the team leader, and my pull requests take longer to be approved compared to hers.

She is extremely wrong, but you are going about this the wrong way as well. "My coworker is a jerk" is just something you have to let play out on its own. HR won't help. And if your team lead is a jerk too, you are hosed.

In the instances when I attempted to review her pull requests with a similar level of criticism,

You have lost the plot--do NOT regress to their level! I wish you asked us before you took this route, because this is making the problem worse.

I don't mind that she is seeking fair compensation for her contributions; however, her attitude has deteriorated the team's cohesion and demotivated me from doing my job. From my perspective, all I receive from her is criticism. However, to the rest of the tribe, she is seen as indispensable for maintaining a high volume of deliveries.

Despite my misgivings with your decision-making, you seem to have a correct analysis. She is in the business for herself (bad situation), and that seems to mean tearing her peers down (even worse situation). Literally, anybody in a leadership position ought to be able to identify this problem, and if they are capable, solve it by speaking with her independently. They honestly ought to be speaking with you too, just to get your take and relieve some pressure, if nothing else.

Ultimately, I think there are a few issues:

  • Hiring manager should have understood the inherent awkwardness of someone taking a demotion to work on a new team
  • Team lead should have nipped this passive-aggressiveness in the bud; they depend on seniors like you, to be fair.
  • At this point, there is a big enough problem that a manager ought to step in. They depend on their team lead, and if their lead isn't capable of handling the situation, you should (delicately) bubble this problem up.

I couldn't disagree more with some of the other advice I'm seeing here in this thread. A true senior developer wouldn't have a big enough ego where something as simple as a title would prevent them from shipping incredible code. Someone that has to tear you down to explain how great their skill is isn't someone worth respecting--and that is how a senior is defined.

5
  • "A true senior developer wouldn't have a big enough ego where something as simple as a title would prevent them from shipping incredible code." - there's no suggestion that ego is stopping her from shipping incredible code. By the OP's account, her performance is considered excellent.
    – Steve
    Commented Feb 3 at 8:26
  • 2
    From the OP's description @Steve it sounds like she is only helping ship her own code. A true senior developer would be focussing on the team's output as a whole. Commented Feb 3 at 9:43
  • @mattfreake, but she isn't given that responsibility for others formally, or the pay and authority associated with it, but instead is conveyed a denigratory title and status. In fact it's the OP who is being treated as the lieutenant for the team leader. That's the kind of tangled web that gets weaved when an employer accepts senior-level work but conveys junior-level pay and status, and my reading of the OP is that he has placed himself in the middle of that conflict rather than at the wayside. (1/2)
    – Steve
    Commented Feb 3 at 10:34
  • He's done this by seeking to rely on the pretenses of the formal structure rather than the reality as he knows it, and thereby provoking competition on technical competence that he is not best placed to win. He could instead demonstrate a managerial deftness if that is the direction he wants to go (which often includes managing staff who are better at their job than you are), but he's psychologically on the back foot himself (probably because he too isn't formally recognised in a managerial role, and wants his own pay and career progression), so now the web tangles even further. (2/2)
    – Steve
    Commented Feb 3 at 10:36
  • @mattfreake, I should add as well, the "junior" has been clear enough what her agenda is. She was a senior who jumped ship from a former employer she thought was about to crap on her. She's been forced to take a junior position instead, but now intends to prove that you should pay her as a senior. The employer is ostensibly delighted with her capability to deliver - because she already was a senior - but still hasn't conveyed the associated pay and status. The situation will only intensify until something breaks, and what breaks won't be her determination to re-establish her pay and status.
    – Steve
    Commented Feb 3 at 10:46
3

It sounds like your merge request process isn't working well at all. If merge requests become a source of conflict, they become a grossly inefficient process (because arguing about something in comments on something like GitHub, as opposed to discussing it face-to-face, is really slow). Raise this at your next retro, without naming the specific dev, but highlight how long some of yours have been stuck in review and that she has had to chase people up to get some of her code reviewed.

As a team (and possibly with your team manager's final vote) you need to decide how to resolve these, but I'd expect maybe some of the following:

  • are requirements being missed when tickets are written up, that your colleague is catching? How can that be prevented ?
  • is she raising valid points, but which are scope creep or can be addressed in a separate ticket, then it should get approved to ensure the code gets shipped as soon as possible?
  • are her issues largely coding style, in which case can you agree a team style and document it?
  • are her points valid but you're unsure how to implement them, in which case can you quickly pair to resolve them?
  • would these issues be resolved earlier and more cheaply if you paired from the beginning?

If your colleague is being genuinely obstructive, your manager may have to lay down the law about raising new tickets and approving the current one. Equally if the team decide some kind of pairing is required you may need to work more closely with them and maybe even learn from the "junior".

By deciding on these as a team you hopefully take the personal out of these arguments and concentrate on shipping the code.

1
  • 1
    Yes, definitely, the manager has the best authority and power to tell her to cool off a bit when she deals with her team members. If the manager refuses to interfere, there is not much anyone else can do to cool her off. Commented Feb 3 at 11:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .