在我丰富的空闲时间,我与许多科学家(主要是生物学家)合作,他们开发与他们所做的工作相关的软件、数据库和其他工具。
通常,这些项目是一次性构建的,在内部使用,最终有人决定“哦,这可能对其他人有用”,因此他们发布二进制文件或在其上添加一个 PHP 接口并将其推到网。但是,他们通常不会费心将他们的源代码或数据库转储提供给其他开发人员,因此在实践中,这些项目通常会在为其编写代码的项目结束或失去资金时终止。几个月(或几年)后,其他一些实验室需要相同类型的工具,他们必须重复第一个实验室所做的工作,该项目最终会失败,起泡,冲洗,重复。
对于如何说服主要工作不是编程的人,让他们对自己构建的工具更加开放,这对他们的社区有益,有什么建议吗?
同样,关于如何传达版本控制、错误跟踪、重构、自动化测试、持续集成和其他我们专业开发人员认为理所当然的常见做法是值得花时间研究的好想法的任何建议?
不幸的是,许多科学家似乎认为编程是一种枯燥、必要的恶作剧,他们的研究更为重要,没有意识到现在软件开发是科学研究的一部分,如果社区作为整体来说,提高发展标准的门槛,人人都会受益。
你有没有遇到过这样的情况?什么对你有用?