Skip to Content »

Michi’s blog » Collaborative tools

 Collaborative tools

  • February 17th, 2012
  • 10:57 pm

I do quite a bit of collaboration. In fact, since after my PhD research, I have written exactly one preprint that does NOT spring from a collaboration. And there is quite a bit of technological support that flows into a good collaboration of mine. Here are some of the tools I uses and some of the thoughts I have on them.

Version control

Since I work in mathematics (and, arguably, in the fringes of Theory CS), everything I write is written in LaTeX. This is for one thing very helpful, since it means that the actual texts we collaborate on are plain text with markup. Eminently suitable for the toolkit provided by the software community.

As such, I make it a fundamental point to ALWAYS use version control software with my writing projects. Regardless of whether I do it for just myself, or in a team with collaborator, everything is under version control. If my collaborators do not yet know any such systems, I teach them Mercurial, my own personal favourite. This has varied success — if my collaborators absolutely refuse, I’ll maintain the version control interactions myself, but I have had some collaborations where my partner is enthusiastic enough to subsequently teach everyone HE works with to do the same.

Lately, I have also started looking into Git as well — mainly because of the existence of github, but also because of systems such as Gitolite. These put a web-layer and an easy to use admin layer on top of the source code repository, making it easy to create or modify workgroups and remove almost all the hassle of administering a server yourself to facilitate the collaboration with these tools.

Communication in larger groups

As long as a collaboration is with one or two collaborators, I usually do well enough just typing their names into my email client any time I want to say anything, and I definitely make sure to create a new mailbox folder any time a clear project materializes. However, some of the things I work on materialize in larger groups forming the generic collaboration, and subgroups crystalizing for any particular part.

For these cases, I find a mailing list to be invaluable. Preferably with archiving, so you can send out ideas to the list, and rely both on getting feedback on the — often early and unrefined — ideas, and a searchable cache where you can go back and figure out what the ideas were in the first place. Since I do a lot of my email maintenance on Google anyway, the bigger projects I am in have gotten mailing lists setup that way too — using the very pleasant Google Groups interface to administer and handle the mailing lists.

Wikis, too, are a really nice and productive idea — I haven’t done anything with them myself for running collaborations, but my current workgroup uses a wiki to discuss software design issues.

For quicker turn-around and lower formality than email, I have had very good success with some of my collaborators chatting on Skype or on GTalk about our problems. This requires everyone to be comfortable enough with the text chat as a medium, but can be surprisingly productive.

Meetings with geographic diversity

And then, every so often, you just have to meet up and talk.

Best, of course, is if you happen to get together geographically anyway — so that you can occupy a seminar room and go wild on a blackboard, hashing out any details you need to deal with. This strains everybody’s travel budgets, and eats time in masses, so it is not always feasible.

Next best thing is a video and voice chat, preferably with a whiteboard or at least screen sharing functionality. Good thing is there are a few of these around.

Skype is a tool I’ve used a few times for this. It has video, voice, and screen sharing in the later versions, and is really easy to get up and running and to deal with. The biggest drawback I see with Skype is that you’ll have to pay to get video conferencing and not just video chat, which is a genuine drawback as soon as people are distributed on more than two sites. If there are only two places involved, however, few things are as painless as kicking up a Skype session.

The other tool I’ve used lately is Google+. A lot can be said about this foray into the Social Web, but the part I want to highlight here is the hangout feature. A G+ hangout is a video conference for up to 10 participants. Everyone (who chooses to) streams video, or their own screen if they want to, and in the client you either roam to whoever makes the most noise (hopefully the person speaking at the moment), or you can lock your view to one of the feeds. This combined with tablet software like Microsoft Journal, or even just a paint application is enough to get a whiteboard up and running. I have yet to find a good collaborative whiteboard (though Google Docs and their drawing app probably does a good job), but as long as only one person needs to hold the pen, this solution is marvelously smooth.

These are my collaboration tools. What are yours?

3 People had this to say...

  • Andrew D. Bagdanov
  • February 18th, 2012
  • 11:13

Nice. I use most of these with varying frequency — though a Google+ Hangout is a great idea that I hadn’t thought of. Version control is something I have unfortunately had mixed success in convincing others to use.

GoogleDocs are also extremely useful, especially in the early phases of idea development. Many projects and articles start their life as a GoogleDoc and then migrate to LaTeX under version control as needed. Real-time, online collaboration is a very nice feature, and GoogleDocs are version controlled. Google Spreadsheets are also extremely useful for exchanging data.

  • John
  • February 19th, 2012
  • 18:03

If you like github and mercurial, why not use bitbucket? I have used mercurial + bitbucket to collaborate on a paper in LaTeX with four other co-authors. Bitbucket works great since you can mark the repo as private and only allow access to other users. I like the bitbucket web interface slightly better than the github one, but both are good.

bitbucket also gets you a wiki which we used for a TODO list while writing the paper.

  • Paul
  • February 19th, 2012
  • 23:41

I work in a company that provides an (hopefully) easy to use tool for this kind of use case, named AtikTeam ( ). Features include multiple projects spaces, groups, permissions, wiki everywhere (LaTeX aware, yeah !), discussion channels (similar to mailing lists but basically easier to use), emails integration, automatic source repository integration (subversion only sorry, again that was a matter of ease of use for end users), powerful planning and projects management. Quiet powerful and can be put in everybody hands. If you like, think of basecamp on steroids. Nothing provided for real-time collaboration though, as integration matters less and other tools do very fine job.
You might also be interested in that we are moving our components to Haskell one-by-one with great success :)

Want your say?

* Required fields. Your e-mail address will not be published on this site

You can use the following XHTML tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>