A senior developer asked to resign because he is challenged by a new graduate during code review. As the CTO, what should I do to keep him in the company?

in #developer6 years ago

Wow, you have so many problems here.

Your senior person is either not a very good coder, or hasn’t got very thick skin.
Your senior person is not able to defend or explain his coding choices, either because he’s not a very good coder or because he’s not very assertive.
Your senior person is being very passive-aggressive, running to papa instead of resolving his issues with the new guy. He’s not quitting, just threatening to quit if you don’t call the new guy to heel.
Your junior person is not able to give feedback without offending the recipient, or if the recipient is very prickly, is not smart enough to back off when he walks into a buzzsaw.
Your code review training is not making the point that everyone gets a turn receiving criticism, and that criticism must be ad hoc and delivered gently, lest the reviewer come in for a very hostile review later. Perhaps the new guy would have benefited from being a quiet participant in a few reviews to see what concerns are brought up and how the team handles them.
Now you have to decide what to do. You have an extremely toxic situation that will be difficult to defuse, a couple of developers with serious interpersonal problems, and the whole team needs some training. I suppose just killing both of them and hanging their heads on pikes is not an option. Well then…

First off, decide if either or both of these employees are worth salvaging. Your problem is more easily solved if one or both of them gets the chop. The senior guy probably has a history of difficulty dealing with colleagues. Shit like this doesn’t just blow up out of nowhere. It’s a little bit harder to call with the new guy, because you don’t know him as well.
Counsel the senior guy that interpersonal situations like this don’t just blow up out of nowhere. Ask him how he’s doing at home, and if there are other problems on his plate at work that are stressing him out. Counsel the senior guy that training the new guy is more helpful in terms of decreasing the workload than trying to get rid of him. See if he’s willing to chill out. If not, accept his resignation.
Counsel the new guy that being part of a serious interpersonal problem right off the bat is not usually the way to make a good first impression. Let him know how serious the problem is, and that you’re disappointed it got to this point before you were brought in. Tell the senior guy this too. See if the new guy was trained up in a very combative environment where code reviews were harsh. Let him know what it’s supposed to be like at your company. Ask him if he can follow the team norms. Ask him if he’d like to participate quietly in a few reviews before venturing a strong opinion. Teach him to ask questions rather than making assertions; you know, like “Why didn’t you test this pointer for nil in this case?” instead of , “You screwed up and forgot the nullptr test here.” If the new guy wants to do better, OK. If not, give him his walking papers.
Counsel the team that code reviews make everyone’s code better, that everyone makes mistakes, no matter how senior. Remind them feedback has to be given and received gently and respectfully. Let them know that someone didn’t do that, and what the result was.

Sort:  

Congratulations @nguyentienthao! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.30
TRX 0.11
JST 0.033
BTC 64104.40
ETH 3148.52
USDT 1.00
SBD 4.25