I use paper drafts to manage my research projects including everything: writing, experiments, results, and communications. Other than external storage (e.g. Dropbox or Google site) for data that does not need fine-grained revision control, I never need anything else, like meetings or emails. So far, this mechanism has worked superbly well, for my team projects as well as single authored papers.
This is one of those things that are better experienced than told, but here is a brief description of what it is like.
First of all, you need to have some idea what a research paper is like. All you see are finished and polished products. However, few, if any, research paper is written in one pass. They all went through some iterative evolution process. And here is mine.
I usually start drafting up the abstract the moment I have the idea. Do not worry if it is immature. It should be, as otherwise the idea cannot be new. Just write it down. Do not worry about grammar or anything cosmetic. Just make sure you can understand yourself later.
Gradually add more materials to that paper draft, including everything you see in published papers like introduction, literature survey, algorithm descriptions, math equations, experimental results, as well as those you might not see, such as thoughts, discussions, failed experiments, and ideas for future works. I usually keep a main part that eventually becomes published papers, as well as a blog part keeping daily progress and discussions.
I use svn/git for revision control, and Latex for document source. I structure the files so that I can simultaneously compile multiple versions from the same set of source (with different flags), such as final.pdf for final submission and draft.pdf that contains everything, including discussions among co-authors.
Because I put everything in writing, I never need to be reminded what has been done, what is yet to be done, and who is doing what. I can concurrently manage a double digit number of projects without losing my marbles. I also can collaborate with anyone anywhere without any other forms of meetings, because all discussions can be conducted through the paper draft. For example, if I see a mistake in an equation, I correct it, and put a note nearby explaining what I have done and why. The other guy, who wakes up in another time zone 8 hours later, can see exactly what has happened. Even for my UI papers, one guy can record a short video (or better, the editing history) for another guy to replay.
I have provided a didactic case, for file structure, research methodology, and the revision history.
One day I might be able to share a real project repository. Everything will naturally make sense when you start working with me (or one of my academic descendants) on real projects.
Would also love to hear about your coding/development environment (languages, IDE, libraries, etc.) I’m curious about your approach towards designing research software.
Comment by AP — May 15, 2013 @ 6:31 pm |
Done. Thanks for asking, Anjul.
Comment by liyiwei — May 18, 2013 @ 12:58 pm |