| "It's not about arguing whether he does his job, it seems like you've already stated that he does." Not really - what he 'does' is 'writes code that solves problems we are facing' - ostensibly - because there are so many ways it would be done differently if he was a professional communicator. What I'm saying is it may appear that he is 'doing his job' - but I'm making the argument he's not. But this is not a construction site. We can't say - 'pour the cement there and then go refill'. He's inflexible and making others on the team bend around his designs. He does not reach out to others when there are issues, we have to initiate communication, keep an eye on the situation. He does not work with others to solve problems as a team. When asked for direct feedback, it's generally negative, cynical - not quite personal but almost. He does the minimum required and can't be counted on in a pinch like basically everyone else on the team. He takes the longest to respond to any issue. Writing software on a team, is like solving a complex problem as a group. If you are not part of the group - then the problem is not being solved maximally. I will definitely have a chat with him about all of this, but I know what the answer is going to be - and this is a behaviour and attitude problem, it's nary impossible to change. I've let go of people like this before and the only regret I've ever had was not doing it sooner. I don't expect people to be chipper sycophants, in fact, I hate that. Dispassion is fine, even a little bit of curmudgeon is fine with me. It takes all kinds. If someone really does not want to do something, and they have an 'inner negativity' about it - it will take a high degree of professionalism for them to carry on properly. If they can't manage this level of professional behaviour on the communications side to make up for their negativity, well, it's out. |
I do agree that it is important engineers work with others and see beyond their own small sphere. It is not a skill many engineers are good at, but it is still something they should be trying to do and do better over time.
Flexibility is important for those writing code. If they just pump out components that require extra rework to make other things compatible with them then there is a problem.
Work is only done and done well when it can be used as it should be. Completed work should not create more work.
Also agreed that having a professional attitude is important. You don't have to love stuff you actually hate; you just have to be able to talk about it and interact on a professional level. If you actually hate it you can carefully state that you don't like it; but it shouldn't affect your ability to interact.