This is only a half formed thought, but I wanted to get something “on paper”, so to speak.
I was thinking about my grad school experience and what was positive (many things) and what was negative (many things) – and of course, what I’d do to improve things. In fact, what it came down to was one major theme: The vast majority of work I did in coding (much to my advisor’s dismay), in implementing new algorithms or developing code – was done independently.
I don’t mean that I never had buy-in. It was slow to build, but my projects generally were implemented and used by a large population of bioinformaticians both where I work and elsewhere. (I’m honoured that they used it, for the record.)
What I mean is that I had a difficult time recruiting people to participate in the coding. The two most productive periods of the last year were – respectively – when I had a co-worker who contributed code to FindPeaks for a few months before leaving to return to Europe, and in the last few months, when a post-doc joined my project and helped implement a small section of the database project. In each case, their help (neither of which was full-time) was enough to free me (temporarily) from the support cycle that tends to consume bioinformatics projects. Just off-loading a few requests can be the difference between having time to write a paper, or not. The more popular the project, the more you find yourself dealing with users.
Unfortunately, graduate work, as implemented where I am, tends to be done in solo projects. No one else in my lab works on anything remotely close to what I do, and when the projects do overlap, the incentive isn’t to collaborate but to use someone else’s tool to do something completely different. That tends to leave everyone isolated in their own codebase.
Naturally, I’m not saying that my isolation was someone else’s fault – I could have chosen to work in perl, which might have helped bring in other developers – Java is not a popular language for bioinformatics – and I probably could have been more welcoming to a few people who showed interest. (I can be short with people I feel are wasting my time, which is something I’m working on. None of them were interested in contributing, as far as I could tell, just using my project to advance their own work, which is itself a common academic technique.)
However, if I had to pick one thing that would have made my graduate work go faster and more smoothly, it would have been to have some structure around me that encouraged collaborative work. Specifically, collaborative development work.
I don’t think it’s sufficient these days to sit and write code on your own anymore, and call that bioinformatics – I really believe that the future of the field will be in the larger group efforts, much the same way that no one physicist would go off and build his own cyclotron. It’s just that bioinformatics hasn’t been forced to catch up yet.
Those graduate students who are given the collaborative support to grow and develop will find themselves more in demand – and better equipped to handle the tasks which are slowly going to dominate the field. Seriously, gone are the days when a coder could hack up blockbuster games like tetris in their garage, develop new search engines on their own, or even write an operating system – these things all take teams to do successfully now. And I think it’s time we start to consider bioinformatics to be the same way.
Once I’m done my graduate work (which will be soon, thank goodness), I’m going to make sure I’m in an environment where I’m not working in isolation. The last 4 years have been hard. One man teams are not all they’re cracked up to be!
I should mention, however, that I’m fortunate my own advisors let me pave my own trail with open source code and wikis. I may not have had much opportunity to work with other people on my projects, but at least I gave the world a chance to participate – and that made all the difference for me.
All right, that’s all I’ve got for tonight… so for all you bioinformatics grad students just starting out: go forth and collaborate.