This is a sensitive question, hence I post this anonymously.
Over the last year, I have been working as the senior programmer for a group of existing and new scripters. This group is lead by a separate lead. I am the programmer of the code's script interface the script programmers work with. One of the new guys has caused me countless headaches…
Things he does:
- Complains about why something doesn't work anymore NOW (it worked yesterday and he didn't change anything, of course).
- Insists to keep going down a troublesome road instead of making the decision to reduce the feature set (he almost has all the bugs fixed anyway is what he's telling us).
- He is quick to ask for a new feature that he insists is needed for his code to work properly (in most cases he does not need it, it's just easier for him to ask someone else for the solution).
- He can't debug… He often neglects to use the available debugging features in our engine to nail down his problems (any other scripter has no problems finding and fixing their bugs)
- he makes assumptions about code changes by other programmers causing him problems (it's usually his own fault).
- He keeps making suggestions for improvements that are either ridiculous in scope and complexity (he says it's something "for the next project") or they will primarily help him… In any case it often shows he still has no understanding of our engine.
- He can't formulate a specific, concrete question I can help him with… Usually you have to pose a series of counter-question to get the specifics (e.g. "Which ID is it?" "What command are you using?" "Is it just one or all of them?" "When does it happen?" "Are you able to reproduce it?" "What brings you to this conclusion?")
- He is vague in describing his problems and answering questions (often his descriptions include: "maybe" "possibly" "could be" "I believe" "sometimes"… I think he's hiding something, I'm just not sure what or why.)
- He keeps reporting B and C bugs as A bugs, justifying it by saying it keeps him from finishing his tasks (I keep telling him what an A bug isn't.)
- His default question, when he's having a problem, is: "did you change anything at xyz?" (Of course I did not.)
Overall, this guy has completed noticeable less tasks than others while requiring a lot more "babysitting". Others come to me with questions and tasks and we come to a conclusion within seconds, for larger problems within minutes. With that guy, it takes minutes just to get to the point what wants to tell me, and hours to understand his problem altogether.
Now my problem is this:
He is supposed to be in charge for the scripting interface to our engine (design & feature set), e.g. he's becoming the "Product Owner" (because that's what he wants to be, as he keeps telling me).
I was shocked to hear that because honestly, I was expecting him to be let go. So I am going to talk to his lead.
My questions to the community are these:
Did you have to work with someone like that before?
How would you deal with this person if he were your "product owner"?
How would you talk to his boss to convince him that making him the "product owner" is a terrible idea?
How do you build an argument against someone who is technically inept but convinced to be a capable programmer? The argument needs to be understandable by a non-programming lead.
[EDIT] Thanks for all the responses so far. Great ones overall as well.
I will take these next steps:
- Talk to my peers, innocently inquiring them about his work and what opinion they have of him (some of my peers I can ask straight, so I'll try them first.)
- Talk to his boss, find out why he is product owner and what his role will be.
- Eventually let his boss know that I don't see him taking over this role, arguing with lack of technical comprehension, inability to communicate effectively, lack of scope assessment and continuous issues of mismatched necessity/priority/applicability of his tasks/bugs.