Project Collaboration Tools
Over the course of approximately 1 year, Matt, Jack, and I have been working on 'Practical Rendering and Computation with Direct3D 11' (or PRaCwD3D11 for short ) at varying levels of intensity. Matt is currently living in California, Jack lives in the U.K., and I'm currently living in Germany. Anyone who has worked on an international project has likely had to deal with large time differences, making the use of good communication tools a must. This post is all about the tools that we used to work on our book, and some background on what worked well and what didn't work so well.
Tools We Used
As usual, email was the primary means of us communicating with one another. As long as we keep both other team members in CC, then there is a record of all discussions that is fairly easy to archive and/or search when looking for older information. Since email is so wide-spread, I won't continue talking about it... everyone knows how to use it already!
The next most important tool when working on a book is the actual text authoring software. Here we also stuck with the standard tool: Word. Since all three of us are (or were) MVPs, we all have access to some level of Word which makes the choice fairly easy. In addition, Word has many features for authoring content, such as citations, footnotes, links, comments, edit tracking, etc... Many people don't use these features in everyday use, but they are really quite handy when working on a big project. In many instances, we could just throw some comments into each others respective documents, and they can easily be viewed by the other members and take action on them.
To ensure we stayed in synch with each other and to allow us to work more or less independently of each other, we split the book into separate documents for each chapter. The thought was that if we used a text based file format, then we could use a source control tool like Mercurial to manage our various chapters and keeping up to date with one another. Many people find Mercurial hard to use at first, but with the help of a simple GUI interface to it (such as TortoiseHg) then it makes things much easier. Since all three of us are familiar with source code revision control, it was more or less painless to utilize these tools.
The Good, The Bad, and the Ugly
That is more or less the communication and/or collaboration tools that we used. In general, some things worked quite well and some didn't. Of course, with our geographic separation and time zone differences, it was quite slow to communicate by email. Usually during the week we could manage to exchange one batch of emails amongst ourselves. The weekends were much better, but we still had a finite amount of time during the day to communicate. We could have tried using instant messaging, but for most of the time we weren't online at the same time. We could also have set up some private forums, but that wasn't In general, email did pretty good, but it certainly isn't fast...