How do you deal with a team member who is senior to you and always jumps on other people's projects and completes them over night or over the weekend? She seems to work 80 hour weeks whether there is an emergency or not and it is somewhat difficult to predict which part of your todo list she is going to strike next. Sometimes days of your work are wasted because on Monday morning you find a checkin completing the project you've spent most of the previous week working on.

To people asking of the quality: Usually it is quite good but: there is also a lot of refactoring of code involved, including code 'owned' by other team members, w/o regard for the test coverage, with the obvious results.

How about you give me her details, and I'll see what I can do to get my company to poach her.
–
Kevin DApr 7 '11 at 19:09

7

@MK01, Howabout something like, "We love the contributions you've been doing, but we'd like to discuss ways that we can clearly segment the work. If we can leverage your coding with that of the rest of the team, we can probably get this done even faster than we are now." A big key is this: make her feel like she was the one who came up with the idea.
–
Stargazer712Apr 7 '11 at 19:12

12 Answers
12

This is probably partly a transparency issue; she's likely not trying to waste your time. I would talk to management about making the tasks people are working on more clear, so she can more easily realize that someone has already invested time in that task and can see what tasks are unclaimed, focusing her efforts on those instead.

I would not confront her directly about this. I would talk with your manager, so some process can be put into place. While the issue is probably most visible with her, I'm betting there are other teammates who are doing the same thing (accidentally starting on projects someone else is already working on) on a lesser scale. I think your manager is in the best position to guide this new process, although you should probably give him some ideas to work from. If working with your manager doesn't work, then you should move on to talking with her directly - but I'd start with the manager.

Our team dealt with this issue by putting up sticky notes with all the work that needed to be done on a white board. Every team member had a label with their name on it, and would move the sticky note they were working to the "in progress" column and label it with their name. If another person wanted to help with that task, they were expected to discuss and negotiate it with the person who had claimed the task. A similar system might help a lot with your issues.

Be explicit with responsibilities You entrust.
Be sure Your team learns from her (e.g. pair programming works excellent).
Don't go "all-in" - test her and be sure to have backup plan if things gets worse.

Worst thing You could do is to screw up her motivation.

I'm telling this from my own experience. I might not be as efficient as I would like to, but I certainly can go all the way from UI down to persistence and I'm certainly practicing cowboy coding (which surely is double-edged sword).

I got thrown into quite hopeless project alone (I made things even more fun - proposed to rewrite it all and got an accept on that), things going well and I love it. There's no one to blame for mistakes but myself. There's no one to whine when I spontaneously decide to refactor a bit of everything.

Actually - this freedom is like only thing why I'm still working right here.

First off, pair-programming is exhausting, especially for introverted devs who like to work all weekend on their own. Her weekends will become valuable for relaxation, as they should be.

Secondly, she'll be passing on knowledge (as long as more novice developers are driving) and thus spreading her astounding abilities on to the rest of the team.

Thirdly, she'll be reducing the massive risk she's currently carrying on your behalf, so that more than one team member knows what she knows.

Fourth, she - and the rest of the team - will have a better idea what's being worked on. If you can combine this with completing whole features together as a team, there will be less work in progress, and less chance of work being duplicated before check-in.

Fifth, she'll learn to play as part of a team. It's entirely possible that the demotivation she causes, together with duplication of other team members' work, is costing more than she's producing. Productivity != effectiveness.

Sixth, code quality usually goes up when devs pair. A nice side effect.

How do you deal with a team member who is senior to you and always jumps on other people's projects and completes them over night or over the weekend?

Work faster?

She seems to work 80 hour weeks whether there is an emergency or not and it is somewhat difficult to predict which part of your todo list she is going to strike next.

By definition, if it's on your todo list - it's not done. If she completes it, cross it off your todo list.

Sometimes days of your work are wasted because on Monday morning you find a checkin completing the project you've spent most of the previous week working on.

That's normally called teamwork - unless you don't like the direction she took, what's the problem?

To people asking of the quality: Usually it is quite good but: there is also a lot of refactoring of code involved, including code 'owned' by other team members, w/o regard for the test coverage, with the obvious results.

"Owned" and code don't go together. If you're having trouble keeping up, ask her to explain it to you. Ask her to mentor you, as it sounds like she's quite productive. Leverage the relationship, and work together.

As for the test coverage, if that's a standard in your org - bring it up your lead/manager. Quick, but shoddy, work is of no use to anyone. Though, if she is 10x more productive than you - you may end up doing the grunt work of cleaning up after her. If that's the case, invest even more heavily in a relationship with her.

Does she know that other people find this annoying? I would suggest tactfully bringing it up with her, saying that you would prefer to finish your projects. If this doesn't work, or you are uncomfortable bringing it up with someone senior to you, it's a case for management. If you're not completing projects because she is, it may look like you're slacking off if the manager does not know the situation.

Also, as others have said as well, look at how she works to improve yourself. Look at her checkins to see how she solved your problem - maybe it was a clever fix that you wouldn't have thought of yourself. Keep in mind that senior developers know the codebase far more intimately than you. Things that seem trivial to them may actually be difficult for newer developers to discover.

She clearly gets her gratification from solving problems and being the hero - which is fine, but you need to ( well her team lead, but you in the mean time ) find a way to harness that.

The key things jump out at me :

She has the talent to do the work faster than others ( you implied nothing about her code being bad )

So harness it. In your next project, offer her up front some work to do. That way you know what she is planning on doing. If her gratification comes from solving problems she is likely to be just as happy if you offer it to her as if she does it in the background.

Perhaps go one better, formalize it, as a team put up work that is up for grabs for anyone who want to do extra - that way the element of stealing is gone, and everyone wins.

If you read the DeMarco books you will see there is about a 10:1 ratio between the amount that good and not-so-good developers can produce. The last thing you want to do is cripple the outlier who gets more done than others, you need to harness that energy and direct it where it will do most good.
–
quickly_nowApr 8 '11 at 2:09

The cowboy seems enthusiastic. I would approach management so they can give her a ton of work to do and let you guys do your own stuff. However, maybe you could learn a thing or two from the cowboy. I'm not saying 80 hour work weeks should be the norm (obviously this is an exaggeration), but putting extra hours in at work is pretty normal in a large corporate environment.

Does she know what work people are doing and their progress? Could management provide direction to her so that she isn't duplicating work from other people? I'd be tempted to suggest having a 1:1 conversation before bringing in management as perhaps she is just a workaholic that could use the direction of knowing what things could be important that others aren't doing that could be quite useful for her to do.

As for your work being wasted, look at it from other perspectives. What could you learn from what you did get done? What parts did you not get done and how did she do them? Just because someone else may take the credit for getting something done, don't think all the blood, sweat and tears are for nothing.

I guess there are worse problems to have. Although, the work you (or others on your team) do ought to matter, and it seems the results of her work effectively eliminate a contribution a person made to the team.

My guess is that she doesn't realize the affect she's having on the team; rather, the contributions she's making probably makes her feel valuable to the team.

The solution (IMHO): confront her directly. Of course, be diplomatic and appreciative of the contributions and sacrifices she makes(80 hours is a beyond-crazy work week, and couldn't possibly happen without a pretty outrageous sacrifice in her personal life).

But it's her responsibility to behave in a way that doesn't alienate her co-workers -- junior, or otherwise. And everyone on the team deserves to feel that they're efforts are meaningfull -- after all, why would anyone want to go to work everyday if their presence was meaningless?

You know after looking at OP's profile on SO/SE.I am lead to look at the other side of the coin.If It was the senior intentionally or unintentionally doing this.It is definitely bad for reasons Tim mentioned. Also due to the basic point of not letting the juniors grow/develop.Only when the juniors become better enough to replace you the show can go on even without your presence. So +1
–
Aditya PApr 7 '11 at 19:25