项目管理 – 学术研究项目的工作流程,一步式构建和Joel测试[已关闭]

在学术研究上独自工作有时会滋生不好的习惯。没有人读我的代码,我会写很多丢弃代码,我会失去中期结果的踪迹,几个月或几个月后,我希望我保留。

我最近尝试使我的个人工作流程符合Joel Test提出了有趣的问题。学术研究本质上与工业软件开发的目标不同,因此Joel Test的某些方面变得不太有效。

然而,我发现这些步骤对于学术研究仍然是有价值的:

>你是否使用源代码控制?
你可以一步一步建造吗?
>你有最新的时间表吗?
>你有规格吗?

特别使用的是一步式构建。我发现自己更有组织了,我已经实施了以下“一步一步的建设”:

One step build. http://up.stevetjoa.com/onestepbuild.jpg

换句话说,我有一个脚本,build.py,它接受Python代码,数据和TeX作为输入。输出结果,数字和填写所有结果的论文(是的,我知道“构建”可能在这种情况下可能不准确,但你会得到想法。)通过将许多小步骤整合到一个中,我不像以前那样回溯。

…但我确定还有改进的余地。

问题:对于研究项目,您仍然重视Joel Test的哪些步骤?你有一步建造吗?如果是这样,你的组成是什么,即它接受什么输入,它产生什么输出?

最佳答案
我发表的大部分文章都是关于软件的,或者是通过软件实现的。但是,一个年终测量的软件项目与支持整篇文章的软件项目有一个很大的区别,一个学生的夏季项目,如果幸运的话提交到一份论文。

有了这个序言,这里是我对Joel测试的回应:

Do you use source control?

总是。即使是论文。比较简单的比较简单的git和darcs的工具比较简单的CVS和RCS的不好的旧时代。

我从一开始就没有源头控制的最后一个项目是noweb,1989年开始是一年级的研究生,1991年才进入源代码管理,形成了一个科学的基础纸。

Can you make a build in one step?

对于大多数项目而言,是的,但是直到该项目已经有几个月的时间才能实现。当软件分发时,或者当我与机构以外的人进行协作时,会变得更加困难。

当我在玩狼时,经常是几个月之前,我甚至知道我的意思是什么。

当一个项目成熟时,我们不仅需要一步一步的建设,还要进行一步一步的建立和运行回归测试。如果没有它,就无法生存。

Do you make daily builds?

不,我每天做的一个项目是Quick C–.日常生成服务器在两年前死了,我们从来没有发现足够的价值,值得更换。

我只会为真正的用户进行一个大项目的日常生活。在这一点上,不可能再“孤狼”了。

Do you have a bug database?

通常不会。有几个例外,但是我们很难找到一个满足Linux用户需求的错误数据库。
我们将在http://community.haskell.org再次尝试。

Do you fix bugs before writing new code?

有时。我们得到报酬来发现新的发现,而不是建立工作软件。也就是说,工作软件让我们有信誉。但是,如果项目足够小,我是唯一一个正在开发的项目,那么只有在需要修复的时候才能修复错误。

Do you have an up-to-date schedule?

决不。 (除非您计算下一个纸张截止日期。)

Do you have a spec?

决不。

Do programmers graduate students have quiet working conditions?

是。

Do you use the best tools money can buy?

不,不幸的是,这个决定不会对我们产生太大影响,因为Haskell或Lua或ML的工具通常不会出售。但是当我从事C编译器的研究人员时,我们买不起Plum-Hall测试套件。

Do you have testers?

没有。

Do new candidates write code during their interview?

不是根据研究潜力聘请研究生。博士后是根据研究成果聘用的。

Do you do hallway usability testing?

还不够但是很难在大厅里抓住一个人,让他们尝试你的新语言或新的代码生成器:-)

转载注明原文:项目管理 – 学术研究项目的工作流程,一步式构建和Joel测试[已关闭] - 代码日志