Workflow for academic research projects, one-step builds, and the Joel Test
- by Steve
Working alone on academic research sometimes breeds bad habits. With no one else reading my code, I would write a lot of throw-away code, and I would lose track of intermediate results which, weeks or months later, I wish I had retained.
My recent attempts to make my personal workflow conform to the Joel Test raised interesting questions. Academic research has inherently different goals than industrial software development, and therefore some aspects of the Joel Test become less valid.
Nevertheless, I find these steps to be still valuable for academic research:
Do you use source control?
Can you make a build in one step?
Do you have an up-to-date schedule?
Do you have a spec?
Of particular use is the one-step build. I find myself more organized now that I have implemented the following "one-step build":
In other words, I have a single script, build.py, that accepts Python code, data, and TeX as inputs. The outputs are results, figures, and a paper with all the results filled in. (Yes, I know "build" is probably not accurate in this context, but you get the idea.) By consolidating many small steps into one, I am not backtracking as much as I used to.
...but I'm sure there is still room for improvement.
Question: For research projects, which steps of the Joel Test do you still value? Do you have a one-step build? If so, what does yours consist of, i.e., what inputs does it accept, and what output does it generate?