I had a very pleasant lunch yesterday talking with some other people at Sun about XP. At some point, the conversation turned to “superstar programmers” who do their best not to help other people, giving perfunctory answers to questions, sending various signals that they don’t want to be bothered, and even being actively insulting to others. (Perhaps not coincidentally, many of the hypothetical examples in the managing course that I just finished dealt with people like that, too.)

One of the participants mentioned an interesting stat that shows up in hockey: over/under. This is the number of goals scored by your team when you’re on the ice minus the number of goals scored against your team when you’re on the ice. Maybe somebody who scores lots of goals or assists would have that first number be larger than normal, but if his defense is particularly porous, the second number could also be large; over/under weighs both. More interestingly, somebody who hogs the puck might score a lot of goals himself, but his team might still score fewer goals than average while he’s on the ice, hurting the offensive part of his over/under. And I imagine there are hockey players whose contributions are hard for the casual fan to pinpoint but who somehow manage to have a good over/under.

Hard to see how to generate a statistic like that to measure programmers – it’s hard enough to generate any useful statistics to measure programmers – but maybe we can get some sort of inspiration out of it.

Post Revisions:

4 Comments

Comments closed

Comment by
Per

Which makes me wonder, who are the troublesome “super programmers”? Are you? Though you have helped me on a number of occasions, you often give somewhat perfunctory answers and in two urgent situations, one involving a trade show and one involving a partner request, you blew me off because you felt that it was not as important as what you were otherwise engaged with. Are you a troublesome “super programmer”?

The answer is no, I don’t think so. I think XP simplifies the problem. In honesty, I am not sure that type really exist, at least, I have not encountered him/her in over 20 years of CS. People are different, unique, individuals and you have to deal with them as individuals. What is convinient for you, and the way you function best, may not be convinient for them, and the way they function best. Some people welcome distractions, some people want to focus. Some people work in bursts, some people at a steady pace. The challenge for you, as a manager, is to create an environment where everyone can function and function well. You didn’t think it was an easy job, did you? ;)

I’m certainly one of the worst people on my team in terms of pair programming; I’m sure this has concrete negative effects on my team. And I frequently don’t respond well to others’ urgency; I work much better in normal flow situations than in crisis situations. In my defense, I put in a fair amount of effort to reduce the number of crisis situations; having said that, when I’m actually in such a situation, I should spend time dealing the situation as it is instead of letting my annoyance at its existence affect my behavior.

At to whether these troublesome super programmers exist; I don’t know. I’ve seen people who set up barriers around their code; I’ve seen people who are very bad at building consensus for their ideas and use their position power to override those who disagree with them. Some of those people I thought really were quite good programmers; some weren’t. I can think of one person who was individually very productive on a project I care about but whose overall contribution to that project I suspect was negative. I don’t think that person exactly matched the outline from my post; maybe that outline was excessively colored by the examples in my manager training.

In terms of programmers as individuals, and how XP works with that, I have a post on that issue coming up…

In the specific case, I am pretty sure I know which person you are talking about, and I think that there is much more at play there that just his personality. In terms of your latest post, if you had asked him the list of questions you would have gotten a large number of ‘no’ answers. Not that he is always the easiest person to deal with, but if you let an issue develop it will turn into a problem and eventually a crisis. That management thing is not easy ;-)

Btw, its funny you should mention pair programming, ’cause it was one of the specific things I suggested to solve that particular situation. I got turned down. And I don’t think I will ever get my XP book back.