Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Possible Duplicate:
How do you deal with an information hoarder?

Often, in IT teams knowledge equals power. This is fine as long as (IT-)knowledge is equally accessible by all members of the team and company specific know-how is well documented. Sometimes personnel in an IT department build up a tremendous amount of know-how without documenting it. By doing so they think that they ensure their position. Often these people like it when people specifically have to ask them how to do a job.

How do you get these programmers, database administrators or other IT staff to DOCUMENT their work and make it accessible to the company they work for?

EDIT: It's a relief that so many of you know this type of person. That it is not me bumping into them everywhere I do projects. On the other hand it makes me sad, such talented people but in many ways behaving as a child. I have seen the behavior in men and women btw. It is hard to pick one answer as the best and accept. Will do after more re-reads.

share|improve this question
4  
Quentin Tarantino and the Bastard Operator From Hell have some educational movies and books for you. But in earnest: The answer to this question depends crucially on the kind of organization you are working in. Military? Large corporate? Start-up? All these environments have radically different answers to the problem. –  thiton Dec 15 '11 at 15:24
13  
Just so you're aware, documentation 75% of the time is not equatable to making your life or the devs that follow life any easier. –  Aaron McIver Dec 15 '11 at 15:41
1  
Those attitudes are anti-IT. We exist to encode knowledge and reduce labor. A person who thinks their job is to be the only person who knows which levers to pull and to show up each day and dutifully pull them is not a valuable IT worker. The great IT worker says "let me document or automate this so that I can move on to more interesting tasks." IT job security should come from a reputation of always being the one who can solve the next problem. –  Nathan Long Dec 15 '11 at 19:07
1  
Are you sure they're trying to get job security, or are they just the types of people who find sharing knowledge to be bothersome/stressful? –  user16764 Dec 15 '11 at 19:36
1  
If by 'you', you're talking to management then you just need to stop rewarding the hoarders and start rewarding the sharers. If you are just a worker bee then you need to just shut up, because in your type of organization asking a question is almost certainly considered a sign of weakness. –  Jim In Texas Dec 15 '11 at 21:37
show 3 more comments

marked as duplicate by JeffO, Caleb, Karl Bielefeldt, ChrisF Dec 16 '11 at 11:08

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

12 Answers

up vote 20 down vote accepted

In my experience, there are two types of people who keep information. I like to think of them as the knowledge gatekeepers and the information hoarders.

Knowledge gatekeepers are people who have been with the company for a long while and have experience on many mission critical paths. I find that these people are super busy b/c of that experience.

I find that these people need time. They don't document the information they know b/c they don't have the time to do it. They don't sit down and teach others b/c it takes them less time to do it themselves.

If this is the case you need to work with them when they have the time. Make sure you write down everything and ask them to double check your understanding either via email or company wiki or something fast that they can look over and leave their feedback. If you are in a position of power, give them some time each week to start documenting things and training others.

The information hoarders have a 'saving my job' type of mentality. Getting information from those people is like pulling teeth. Any information that I was able to get out of them, I documented. Any information I was able to figure out on my own, I documented. It's slow going, but in the end you are saving yourself and anyone after you from going through it again.

share|improve this answer
    
Note that if you're dealing with the first type and you're not in a position of power, your first job is to persuade their manager to let them spend time on documentation, at the expense of more visibly productive tasks. –  Useless Dec 15 '11 at 19:04
    
@Useless Even someone clueless should realize that as soon as more people can share the workload (as soon as info is shared) then the bottleneck (the previously swamped person with no time) will be no more... –  Max Dec 15 '11 at 20:00
add comment

The first question to ask is 'Why are they not sharing knowledge?"

If it is for job security, then address that issue head on. If it is a senior person with a top salary they may have a very legitimate fear that the company would lay them off and replace them with a cheaper, more junior person or even outsource their job overseas. We all know of lots of such companies, so this can be a real fear. One effective way to deal with this is to say "If you will agree to share your knowledge we will give you a guaranteed employment contract for X years." Of course if your goal is to outsource the job as soon as you pick their brain then perhaps they have simply seen through your strategy....

Another possibility could be that they would be happy to share but they are introverted, don't like to speak in front of groups, don't like to write etc. In this case hire a person who is an excellent writer and assign that new person as this persons assistant. Their job would be to learn what the person knows, write it down and communicate it to the organization.

Please remember that generally a person becomes a programmer because they want to program. If their first love is teaching they would be an educator, not a programmer. If their first love was running training seminars, they would be running training classes at a consulting firm. When you want someone to do something outside of their comfort zone the first thought should be "how can I help them?" The second thought should be "How can I make it worth their while?"

Consider what would happen if your department scheduled a one week training retreat in Hawaii and you announced that anyone willing to give a half day training session could go for free. Further everyone would vote on which sessions were the most useful and the person with the most votes would get a $10,000 bonus and the runner up would get $5,000. DOn't you think you would get lots of people working extremely hard to deliver sessions where they share their knowledge?

share|improve this answer
add comment

Make the documentation a task and make this task part of their performance evaluation. Before this can happen, you must define a documentation framework, allocate time for this task and educate people about the value of this work.

share|improve this answer
add comment

Interesting how so far all answers focused on "fixing" the problem with the developer that doesn't want to share knowledge. While I'm sure some of the problems are personal, I think you also need to view the organization and team dynamics and corporate culture.

I have a friend working for a company where people are constantly out to get each other. They sabotage projects and work nights/weekends to make their team mates look bad. I'm sure they also withhold information.

On the other hand, In my team we want to help and teach each other because when your teammates know more/have better skill, they will likely do less damage which will cause the "person with knowledge" to go fix stuff. I certainly heard of these things, but with my team, I can't even imaging that we would have a developer that wouldn't want to share information. So maybe promote a different culture and encourage collective ownership?

share|improve this answer
    
I think you managed to say this better than I did –  Ryathal Dec 15 '11 at 19:36
1  
There's an implied presumption here that the problem lies with a particular employee, not so much with the work environment. If your workplace is a duplicitous, backstabbing, dog-eat-dog jungle, you've got bigger problems than merely getting people to share what they know. –  Caleb Dec 15 '11 at 19:48
    
I'm sure their entire goal of working nights and weekends is to make their teammates look bad. That is the only possible interpretation of such rude and obviously malicious behavior. –  Dunk Dec 15 '11 at 22:48
add comment

You need to convince the person holding on to some piece of knowledge that it is safe for them to give it up without being at risk of being fired. employees will hold on to things if they feel that giving up everything puts them at a larger risk if being fired, you should try to find out if they feel like their work is appreciated and their value to the team is recognized. If you can show them that sharing their knowledge is more beneficial than hording it, they will likely be willing to share it. Also keep in mind that some of their knowledge they may not realize is specialized knowledge that they have because they have been doing it long enough that they do it subconsciously, like if you play a lot of video games you just know that the left stick moves you and the right stick controls where you look.

share|improve this answer
add comment

The axiom that you're looking for to describe this is:

Knowledge shared is power lost.

It can be hugely difficult, if not impossible, to overcome.

Asking nicely (and perhaps sweetening the pot financially) is one method. Rotating responsibilities across team members is another (though this isn't always a workable proposition).

One (somewhat expensive) method is to hire a junior developer for the same area as a knowledge-hoarder, and make them responsible (with HR/financial repercussions/incentives) for developing that team member's knowledge of systems. Make documentation one of the junior developer's responsibilities. I've seen this approach work before.

The last-resort method is simply letting them go, and taking the hit that comes with that. Obviously, this should only be used in the most extreme cases, as it runs the risk of being a case of cutting off your your own nose to spite your face.

I guess my overall advice would be to make sharing knowledge more attractive than not sharing knowledge.

share|improve this answer
add comment

Depending on the type of work that your team does, one effective approach to information hoarders is to provide an incentive for them to provide good information & documentation. One way is to prevent hoarders from rolling off of their current projects into new projects. They're effectively "stuck" until they share their knowledge. This approach may not work in teams that are in maintenance mode, but for teams that frequently develop new initiatives or enhancements, the inability to work on new stuff may be sufficient incentive for some hoarders.

share|improve this answer
add comment

Code reviews. I don't believe that code reviews should ever be used punitively, but I do think that they can be an effective way to get someone to explain the work that they've done. Someone who refuses to use other means to share what they know should expect to find themselves in the hot seat more often than someone who clearly documents what they've done, or who willingly explains things when asked.

share|improve this answer
add comment

If you're ok with being a bit manipulative, when they ask for more than two days off in a row, tell them that their special knowledge is too valuable for them to be away from the company that long. If they want to take more than two consecutive days off, they have to prep other memebers of the team to cover for them. This gives them a positive reason (getting time off) to distribute the knowledge. Also they have an incentive to give QUALITY information because they know if things go wrong while they're gone, that's the end of their chances of having three or more days off in a row ever again.

Of course there are many ways this could backfire so use with caution and only with the most diehard information hoarders. And be sure it doesn't violate company policy.

share|improve this answer
add comment

Professionals who value this kind of work ethic should not be hired in the first place, but it might be hard to figure this out during an interview.

If a company already has a professional like this, they should be encouraged to be more transparent by having them work as part of a team. They should never be allowed to work alone. A team setting naturally forces people to be more transparent because you often have to collaborate on problems and/or explain things to your peers. The bad part is... this kind of professional will make anybody's life a nightmare since they will fight to the nail to give the others the least amount of information possible. Best to let them go if they refuse to collaborate.

share|improve this answer
    
And how exactly do you "force" them? How do you Force someone to be part of a team? –  Morons Dec 15 '11 at 16:05
    
@Morons You can put someone in a situation that in conducive to change their current behaviors but as you note, you can't make someone part of a team. –  Aaron McIver Dec 15 '11 at 16:07
    
This sounds like the kind of person that would include a time-bomb in their code as a form of blackhat job security insurance. I'm not saying he has done this, but it seems that he has that kind of personality type. Such people just aren't a good fit. –  Polynomial Dec 15 '11 at 16:32
    
@Morons: edited the post, hope the idea comes across a bit better. –  c_maker Dec 15 '11 at 16:51
add comment

Information wants to be free

Sometimes they do it for job security, sometimes they do it because they are perfectionists and the thought of somebody else possibly making a mistake frightens them. Sometimes they just like to have power over others.

Sometimes it is legitimate... certain knowledge might be considered sensitive, or knowledge about how to do something relatively simple can expose that person to sensitive information. Eg.

  • HIPAA protected data

  • Sensitive client data

  • FBI and other law enforcement databases

  • Military, CIA or other government data only obtainable with a security clearance.

Don't be so quick to judge, that DBA may purposely be doing you a favor by keeping you ignorant or unable to do certain things.

share|improve this answer
2  
Sharing knowledge about how a system works is much different than sharing specific data. Also, any organization dealing with data in the categories you list must have a crystal clear policy (and often much more) governing who is allowed to see what data -- that's clearly not what this question is about. –  Caleb Dec 15 '11 at 18:03
    
@Caleb I disagree with your assesment of the question as it is worded, quoting the OP, I think it is very much in the nature of any programmer to want to do things 'alone'. This quote alone makes me think that the OP would rather go over the head of say a DBA to perform certain tasks. One effective way to keep sensitive data out of the hands of developers is to prevent those developers from even having the ability to do certain things. Put the ability completely in the hands of the network admin or DBA, and certain data is protected, and certain security procedures are enforced. –  maple_shaft Dec 15 '11 at 19:42
    
You're talking about legitimate restrictions on access to data, but the question is about "know-how" and people who refuse to share what they know because: "By doing so they think that they ensure their position." So the motives we're talking about are job security and power aggregation, not proper enforcement of data access policies. –  Caleb Dec 15 '11 at 19:54
add comment

Ask Them Repeatedly and Nicely.

If that doesn't work most likely nothing will.

They will give you excuses, explaining why they cant, or don't have time. Even if you debunk them excuse they still wont do because that was just an excuse. the'll come up with 6 more while slowly getting angry and aggressive.) It is also likely to make things worse.

For example : If he says "I've too much other work to do", So you take some of his responsibilities away, and give to someone else to free up his time. This will only further threaten his job and he will tighten him up more and become somewhat disgruntled. The docs will not get done

So just have someone else figure it out and document it. If someone else can't, the code is shit and needs to be re-written anyhow. Then make sure this person is never in a position to blackmail the company again.

share|improve this answer
    
What you describe is exactly what I have experienced in more than one occasion. Add to that, that I work free-lance and that the 'blackmailers' are often company employees... –  ndroock1 Dec 15 '11 at 15:36
1  
+1 for explaining excuses. The excuses I'm given are amazing. But I don't take responsibilities away from them, if they insist on being the only person to do a task then they are stuck with it and the rest of their tasks. If they want to delegate it and show someone else how to do it they can. But don't complain to me that you are overworked or forever doing maintenance tasks, I'll just repeat your excuses back to you. –  james Dec 15 '11 at 16:43
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.