Take the 2-minute tour ×
Academia Stack Exchange is a question and answer site for academics and those enrolled in higher education. It's 100% free, no registration required.

I just started a research position coming from the industry. I am supposed to work on an ongoing project and branch it out to a new direction.

There is one member of the research group that did quite a lot of work on what I am supposed to modify. So I asked him if he could share his work and code with me. He told me that it is still unpublished work and there is no way he is going to give me his code. He said this is the way he does research.

I'm sort of stumped and don't know what to do. He told me that I should go and do it on my own what he has done for about a year now. My supervisor agreed to my suggestion that I should work with this person, but when I told him that he wouldn't share the code with me, he was just laughing nervously and didn't say anything.

Is there a way that I can persuade this person to collaborate with me, or am I banging my head against a wall?


So just to clarify. My supervisor is (one of) the project lead. I first talked to the supervisor suggesting, then talked to the person who rejected, then to the supervisor again. This project has been going on for a year. There are about 5 people working on it in this lab. I joined the lab to extend on the work done here and to contribute in the final stages of the project. To my surprise, there is no shared code repository, but rather each person does their own thing and in meetings discuss it.

I told the person that I will not steal his code. He replied to me that he doesn't share the code because I will not understand it. I told him that it helps me understand the work by looking at the code. He told me that no.

So my plan is to read the draft papers again and try to understand it that way, then try again in a few days. I don't want to re implement the same thing he has done...


I was given access today to the research group server and I could view everyone's work (around 15 people) and all project material... except his directory and implementation which is permission denied. I talked to him again, and clearly he is afraid that I will steal his work and possibly has to put one more name on his paper if I find something interesting, thereby diluting his achievements. He kept telling me that this is his work, and he is the first person on the paper and I should do something else or re-implement the whole code on my own.

share|improve this question
1  
he doesn't share the code because I will not understand it... Does he feel that you're not smart enough to understand his code, or is his code of such low quality that nobody can understand it? –  William Shakespeare Feb 8 '13 at 17:51
1  
@Caleb: my guess would be the later, but I may be biased because I consider documention/comments and readability of code an aspect of code quality. –  cbeleites Mar 19 '13 at 1:20
2  
Is this person (the one who refuses to share the code) an employee of the university? If so, then I would expect that the code is considered a work-for-hire and the copyright on it is owned by the university. I'd try to get this accomplished by going through his supervisor so that, instead of you requesting his cooperation, the situation is transformed into one where his boss is giving him an order to perform a task (providing a copy of the source code) and refusal to do so would be insubordination. –  Matt Mar 19 '13 at 22:26
    
The title of this question could have been: "How to deal with THE code sharing problem in computational sciences" –  aberration Jul 26 '13 at 19:49
    
If all the other answers fail (which is unlikely), I have a short thought that may help you: maybe you don't really want to look at that code. If the code has been written by one person to be read by that person, it may be easier, faster and less frustrating to start from the algorithms, design or even abstract ideas rather than the code. When something cannot be seen I have the habit of asking myself whether it may not exist, whether the effects it seems to have could be caused by something else. If everything else fails, think about it ;) –  Trylks Jan 7 at 18:09

6 Answers 6

This attitude is very common in academia, as the academic environment is often highly competitive. That said, I've never seen someone do that within a team. I agree with seteropere that if this person is indeed on your team, you will likely have to raise this issue with your supervisor.

Still, there's likely a reason why he's unwilling to share, and if you can find the reason for that you may be able to convince him to be more of a team player. Is he worried that giving you access will hurt his publication chances? You can work with your supervisor to convince him that he will still get authorship even if the code is shared. Is he afraid you'll ruin the code? Suggest using some sort of versioning to keep track of changes. Is he just being a jerk about it? If so, then it just comes down to seteropere's answer, and you'll have to hope your boss has enough of a backbone to help you out.

share|improve this answer
2  
"I am supposed to work on an ongoing project and branch it out to a new direction." sounds to me as if someone (supervisor) has decided that the OP should take over the others project. If that wasn't in agreement with the other, it's likely a very difficult situation (the project is "taken away", a greenhorn comes and is perceived as demanding, pert or possibly even arrogant), and competition who keeps the project may arise within the group. –  cbeleites Mar 19 '13 at 1:26
2  
"This attitude is very common in academia, as the academic environment is often highly competitive" Only at relatively low levels and with people coming from certain cultural backgrounds. Above a certain threshold, you get much more frustrated with the fact that you have to implement every your idea yourself because the few other people capable of it are in exactly the same position. I would just redo things from scratch. It often takes less time to write your own code than to figure out how to modify the existing code properly without any minimally clear documentation. –  fedja Aug 27 '13 at 10:12

My supervisor agreed to my suggestion that I should work with this person,

Why you suggest someone who is not willing to collaborate with you?

Since you had the initiative and suggested his name, I think its clear that your mate is not motivated for your project so not giving the code is an expected behavior.

Your mate is either

  • Part of the project team. In this case, his role should be very clear. is he supposed to supply the code? if yes raise it to the supervisor and ask for help. If supplying the code is part of his project contribution, then the supervisor should play his role here and ask the student to do so.

  • Not Participating in the project. In this case, he's doing a favor if he supplied the code to you. You should do the implementation yourself but make sure not to include him in the project later on!.. or try to convince him that it is beneficial to him to supply the code (i.e. co-authorship in the resulted paper).

Either ways, it is the supervisor responsibility to scope/assign work to students in team projects.

share|improve this answer
2  
It's not clear to me from the question that the person is also a student. –  Sylvain Peyronnet Feb 7 '13 at 22:25
    
@SylvainPeyronnet well; at least the word my supervisor is there in the text –  seteropere Feb 7 '13 at 22:30
1  
Exactly : "my supervisor" but maybe not "his" supervisor (his = the person that don't want to give the code). –  Sylvain Peyronnet Feb 7 '13 at 22:54
    
Sylvain is correct. My supervisor is not his supervisor. My mate is motivated because he gets his funding from this project. My work is about the things that are mentioned under "Future Work" in the draft paper. –  siamii Feb 8 '13 at 9:50

At this point I am a broken record: this is one of the situations I found myself in. None of my colleagues have been forthcoming, with techniques, code, documentation--nothing. One of the team members insists that he does not document code because it should be evident how his code works by reading it. This is patent nonsense--he has forgotten what his code does or else does not want to say. He absolutely refuses to provide a conceptual overview of his system--even the postdocs complained that he wastes their time with the minutia of command line options and stories about the old country instead of describing the main algorithms and the necessary configuration to get his model to work. I have been forced to reproduce or rewrite code. It turned out to the PI's surprise that my code was better, but I must say I intensely disliked being in this situation. The other comments suggest being optimistic in the face of intransigence. I myself decided (details are scattered around this site) to get out, for several reasons:

  • my colleagues were not forthcoming and preferred that I duplicate their work.
  • in the once case that I managed to persuade my teammates to share some work they did, they were gratuitously patronizing as they grudgingly handed it over, although it was completely obvious they should simply have shared the work
  • the work was essentially unpublishable and of low academic value
  • I was misled about my role within the research group
  • the pay was abysmal
  • it was pointless to continue working for little money without being included in any of the group's publications. I might as well work in industry for more money and no publications.

The first applies in your case--be prepared not to receive any cooperation from your team members.

share|improve this answer

Talk to the other person. Yes, talk not email. Find out what his or her concern is. Perhaps his or her concern is that you may just use his or her work and not give him or her credit. Assure the person that this would not be the case. This is the right and ethical thing to do. Prepare to put this in writing if it could save 1 year of your life.

I think it is important to acknowledge that there may be other people who could also assist you. Ask. This is part of the learning process.

If all fails, be pragmatic and modify your project scope if you can in consultation with your adviser. There is no point wasting your time in anticipation the cirumstances may change.

share|improve this answer
    
Well, my desk is right next to his, so I only talk to him in person. –  siamii Feb 8 '13 at 9:53

As you said you sit next to him, I would suggest you to be patient with him and wait for some days...

Start your research work as you are supposed to do, and in the mean while try to be helpful and good in behavior with him. During your research if you would require some small help then surely consult him and he will answer you... I am quite sure after some days of being helpful + good behavior to him + asking and sharing some knowledge with him will surely change his attitude towards you!

I would avoid suggesting you to consult your supervisor for the same again and again because you will eventually bother him and spoil your impression. Handle things by yourself, Be cooperative. Be patient for few days and there is a chance to save one years effort.

Good luck.

share|improve this answer

I think you should view the problem from his side. Why are you supposed to work on a project based on his yet, unpublished work? It does not seem normal that someone wants to continue his unfinished - unpublished work without him somehow have a crucial role in this development. For me that implies a misunderstanding between him and your supervisor that is for them to resolve and not you. Usually, in this kind of strong misunderstanding it is probably the supervisor's fault and he seems like a desperate guy trying to protect himself from getting robbed (like many graduate students before).

What can you do? You can focus on the things he may be willing to give without a problem. For example: Original datasets, test cases and so-on. He will probably have no objection handing out his code for generating test-cases or the datasets he uses. Also, he may have no objection for sharing his results (performance + actual results). That way you can compare his code and yours (when your code is ready). How about asking him for a binary of his code and the "command line" options required? Asking for that might give you a hint on what you are required to do and check his code performance and bottlenecks.

As for sharing his code, I think he has a legitimate case for not wanting to share it. Basing a new research work on his code without him agreeing (that is obvious) seems highly unethical on the part of your supervisor.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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