Home | Login | Recent Changes | Search | All Pages | Help

GreatPeople

In a couple of the other threads, ProjectInitialConditions and WhatSlowsYourProjectsDown, I refer to people with functional skills and domain expertise. Here's what I mean:

Functional skills are the techniques and practices a person knows to perform his or her job. A developer may know how to design, architect, debug, pair-program, and be able to apply those functional skills to the kind of development: GUI, middleware, database, networks, and so on.

Domain expertise comes in at least two varieties: problem-space and solution-space. Problem-space means the person understands the customer's problem and what the project wants to provide to answer that problem. Solution-space means the person understands the internals of how the system provides that problem.

There are two other dimensions of technical skills: tools/technology and industry. Tools and technology means knowing how to use the tools of the trade: emacs or C++ or Java or Junit or whatever. Industry means understanding the issues of the market the product plays in, and what that means for marketing and supporting the product.

I contend that technical people can learn tools/technology fairly easily. If they spend some time and pay attention to the context, they can learn the industry. But functional skills are what technical people start to learn in school and really learn on the job, especially if they are lucky enough to be mentored. Domain expertise is acquired through developing a system or learning about a system while writing about it or testing it.

So here's the discussion I wanted to have (and of course, we can discuss the above too :-): How do you recognize the great people you want on your project? What are your tips and tricks? I've written a lot about this on my blog, http://www.jrothman.com/weblog/htpblogger.html, and I bet you have insights I haven't considered. -- JohannaRothman 2004.07.11


Number one thing I look for is that they acknowledge other people's contributions--that is, they see what's great in other people, without thinking of them as infallible gods. People who are always ready to point out what's wrong with other people are generally talking about themselves. - JerryWeinberg 2004.07.12
I look for people who are 1) honest with themselves and others about what they know and what they don't know, and 2) attention to and interest in detail, and 3) who are extremely clear in their communication. DaveRabinek 2004.07.13
Why is attention to and interest in detail important? I was a good tester, but I'm completely uninterested in detail :-)) How do you look for people like that? -- JohannaRothman 2004.07.15
I work on systems whose output is lots of numbers. Attention to detail is important so 1) the tester checks all of the numbers, carefully. Sort of correct doesn't cut it. Also, I don't want to check their work later to make sure they did it all. A detail-lover I can trust more to not skip the details. 2) I've found that detail-lovers are better detectives at tracking down the cause of the errors, because in my case that involves wading thru lots of details. 3) detail-lovers will notice lots of problems, faster, simply because they notice details. 4) a detail lover is more likely to check his/her work -- so I know their defects are much more likely to be a bug rather than a tester error. 5) A detail lover is more likely to ask more questions, when gathering requirements for example -- they tend to operate with checklists. I think great people that ask lots and lots of questions. 6) Detail lovers tend to communicate more clearly, with specific examples. They want to ensure that they understand every detail.

I look for detail lovers by: 1)paying attention to their communication style when they are asked to descibe systems or processes. 2) I ask lots of detailed questions in interviews, for example what UNIX command does this or that? What is the financial formula for this or that? What are the forms of normalization in Database design? 3) I hire former auditors -- they tick and tie the details all day. If they liked auditing they will like testing financial software. DaveRabinek 2004.07.15

And sometimes folks who are too busy following their checklists and paying attention to all the details miss the patterns in the data and the big-picture issues. I like a mix of folks on my testing teams. -DaveLiebreich 2004.07.15

Later . . . I'm not happy with my comment above - I think it is too harsh. I like DaveRabinek's first entry about honest and willing to deal with detail, but I feel the elaboration starts down a slippery slope. Dave, can you tell us more about how you put together a team? Do you avoid adding folks who are not lovers of detail, and if so, what experiences led you to make that general guideline? Thanks, and I hope this is a more helpful form for the point I'm trying to raise. -DaveLiebreich 2004.07.15


Here's the kind of detail I pick up: DaveRabinek said "attention to and interest in detail," but then that somehow switched to "detail lover." I think there's a big difference. I'm not a detail lover at all--I hate details. But when working with software, hardware, or writing, I play attention to and show interest in detail--because I want to take care of the details once and for all so I can go on to higher-level things. I know people who love details but don't work well with them--don't pay great attention, but just spew out detail after detail of questionable quality or worth. They may be great people, but not people I want to hire as testers or programmers or managers. They can make great comedians, though. - JerryWeinberg 2004.07.15
Ah, I'm a detail-lover for a bunch of things: specific words in a sentence when I'm writing, checking that the software does what I thought it would, and more. But for testing, I use a computer to check the answers, because I don't do public arithmetic, and I certainly don't trust only one source for arithmetic, when the actual answer is critical. Hiring auditors is also good, because they will look for failures in places I wouldn't consider. Do you ever hire programmatic testers to test algorithms and auditors to test other things? (Sorry to be vague, I don't know enough about your applications to be more specific. All I know is they deal with money :-) -- JohannaRothman 2004.07.16
For much of my adult life I approached team selection in ways that didn't work very well. When I looked for functional skills, I set the bar as high as I could reach, and then I was disappointed by the level of skill I could find. A lousy way to start a project.

Maybe this mindset came from my background in music school. I used to organize chamber music groups where I recruited the best student musicians available. By taking on the grunt work of organizing the concerts, I earned the opportunity to perform with people who were much better and more experienced that I was. But this approach didn't translate cleanly into the arena of business automation projects.

Some years ago, a good team-builder I work with gave me his perspective. He thought I placed too much importance on competence. In his experience, teams don't fail because they lack competence. After all, most teams lack skills that they arguably need. He felt that teams fail when they lack "heart."

I still like the "chamber music" model for some kinds of work, but I've also learned to use a more improvisational jazz model for pulling good people together into a team. It works better in my unpredictable work environment. -- StuartScott 2004.08.05


I resonate with Stuart's view. Yes, some technical competence is required, but the most technically competent individuals all put together doesn't necessarily make the best team. Notice what's happening with this Olympic year's USA "Dream Team" in basketball. Best players in the world, but if they don't get their team act together, they won't be the best team in the world. - JerryWeinberg 2004.08.05
Sacrifice. I look for teammates who are willing to give up some of the things that they enjoy and do well so that their teammates will flourish. And I also look for teammates who are willing to step up and help recover tasks that, for whatever reason, are failing.

For the team members with the most to offer, there is little sacrifice because their goal is victory. If giving up some things they do well is the price for winning, they accept the bargain without hesitation. SteveSmith 2004.08.09


Steve, I'm not sure I buy into "sacrifice." Let me reframe what I think you mean, in a way that works for me: People who are willing to make the group's goals work, not just their own. It means making decisions so that the group flourishes, not just the individual.

Managers have to make sure that one person doesn't continually sacrifice their personal goals, or that person will leave. (It may be that the person doesn't belong in the group, but that's a different case.) I don't think it's reasonable to ask people to constantly to give up what they want.

The way I used to describe this when I was managing people was this way: "If you ever feel as if you spend more than 20% on tasks you dislike -- in service of the department's goals -- let me know." I thought people could maintain 1 day a week of work they weren't happy about if they knew it was going to end and it helped the department, that was reasonable. People told me. And people were able to spend a couple of weeks on work they didn't like or didn't further their career goals because they could see the value. For me, this is different than sacrifice.

Maybe someone else has a better word or words? JohannaRothman 2004.08.10


Johanna's reframe of the word, "sacrifice" People who are willing to make the group's goals work, not just their own. It means making decisions so that the group flourishes, not just the individual.

Close but not quite there for me. It's beyond willingness. It's the sacrifice of personal achievement for something even more important -- team success.

Jerry mentioned USA's Olympic basketball "dream team". They aren't a team now. To become a team some of the players must choose to sacrifice the number of points they could score and the glory that comes from being the "scorer". They must channel the energy that they normally devote to offense into defense and thereby cause the other team to score less points. They will pass and set screens more often than they normally would so other players can score easily and their team scores more total points. They will set an example for team play. They will do it consciously and willingly because they care more about winning than personal achievement.

I've seen the same kind of sacrifice on every successful team that I've had the privilege to be a member. Don't get me wrong: Not every member sacrificed. But those that did carried the team. SteveSmith 2004.08.10


How about "compromise" instead of "sacrifice"?

MichaelBolton 2004.11.02


Michael, how about "reframe" instead of "compromise"? - JerryWeinberg 2004.11.02
I would add "courage of their convictions" which I guess is a facet of congruence? Nicely summed up by a quote of Jerry's (paraphrased) that a good manager takes the blame (if we have to have any) when things go wrong and gives all the praise to the team when things go right. I think you can apply this to people at all levels not just management.

PhilStubbington 2004.11.02


How about "compromise" instead of "sacrifice"?

how about "reframe" instead of "compromise"?

Ahh, word choices...

SACRIFICE: To surrender or give up (something) for the attainment of some higher advantage or dearer object. Source: OED

REFRAME: To frame, fashion anew. Source: OED

COMPROMISE: To come to terms by mutual concession; to come to an agreement by the partial surrender of position or principles. Source: OED

And here is another choice:

TRADEOFF: A balance achieved between two desirable but incompatible features; a sacrifice made in one area to obtain benefits in another; a bargain, a compromise. Source OED.

Compromise doesn't work for me. Reframe seems weak. Tradeoff is better. The definition that I read for sacrifice hits the concept squarely for me. But I now recognize, from the comments on this thread, that the word sacrifice may mean something different to other people than it does to me.

So if I want to play it safe, I would say tradeoff personal recognition for team success. If I wanted to provoke my reader, I would say sacrifice personal achievement for team success.

...that a good manager takes the blame (if we have to have any) when things go wrong and gives all the praise to the team when things go right.

What is this management characteristic? A compromise? reframe? tradeoff? sacrifice? or a combination?

SteveSmith 2004.11.02


How about responsibility for Steve's manager? In my mind, that's where all managers should get their authority. For the team member, how about a sense of community? MikeMelendez 2004.11.03


Updated: Wednesday, November 3, 2004