This position paper argues that decisions on processes, tools, techniques and software artifacts (such as user manuals, unit tests, design documents and code) for scientific software development should be driven by science, not by personal preference. Decisions should not be based on anecdotal evidence, gut instinct or the path of least resistance. Moreover, decisions should vary depending on the users and the context. In most cases of interest, this means that a longer term view should be adopted. We need to use a scientific approach based on unambiguous definitions, empirical evidence, hypothesis testing and rigorous processes. By developing an understanding of where input hours are spent, what most contributes to user satisfaction, and how to leverage knowledge produced, we can determine what interventions have the greatest value relative to the invested effort. We will be able to recommend software production processes that justify their value because the long-term output benefits are high compared to the required input resources. A preliminary definition of productivity is presented, along with ideas on how to potentially measure this quality. We briefly explore the idea of improving productivity via an approach where all artifacts are generated from codified knowledge.
翻译:这份立场文件认为,关于科学软件开发的程序、工具、技术和软件工艺(如用户手册、单位测试、设计文件和代码)的决定应该由科学而不是个人偏好驱动。决定不应该以传闻证据、直觉本能或阻力最小的途径为基础。此外,决定应该因用户和背景的不同而有所不同。在大多数感兴趣的情况下,这意味着应该采用更长远的观点。我们需要采用基于明确定义、经验证据、假设测试和严格程序的科学方法。通过了解投入时间的用在何处、最有助于用户满意的程度以及如何利用所创造的知识,我们可以确定哪些干预措施与所投资的努力相比具有最大的价值。我们将能够建议能够证明其价值的软件生产过程,因为与所需投入资源相比,长期产出效益高。提出了生产力的初步定义,并提出了如何衡量这一质量的想法。我们简要探讨了通过一种方法提高生产率的想法,即所有艺术品都是从编纂的知识中产生的。