我的书《基于证据的软件工程》现在可以买到了;pdf可以在这里、这里和这里下载,还有所有的代码和数据。在此报告任何问题。我正在调查打印版本的可能性。
从10年前开始,这本书的最初目标已经实现,即,基于对所有公开可用的软件工程数据的分析,讨论目前关于软件工程的已知内容,并使pdf+data+代码可以免费下载。“所有公共数据”的定义一开始是“所有”,但随着更大、更高质量的数据被发现,相应的定义被忽略了。
目标受众一直是软件开发人员和他们的经理。假设有一些构建软件系统的经验。
有多少数据?数据目录包含1142个CSV文件和985个R文件,该书引用了895篇有数据可用的论文,其中556篇以附图说明引用;有628幅图。我现在引用的是600+这个数字来表示‘数据量’。
从分析中可能学到的东西已经在之前的帖子中讨论过了,这些章节包括:人类认知、认知资本主义、生态系统、项目和可靠性。
对现有数据的分析就像拼图一样,只不过600多个点没有编号,其中一些实际上是灰尘的规格,很多点很可能会丢失。软件工程研究的未来是将点结合在一起,以建立对构建和维护软件系统所涉及的过程的理解;还需要工作来复制一些点,以确认它们不是灰尘的规范,并发现丢失的点。
一些缺失的点是非常重要的。例如,几乎没有关于软件使用的数据,但可以有大量关于故障经验的数据。没有软件使用数据,就不可能估计软件是非常可靠(即,每一次使用经历的故障很少)还是非常不可靠(即,每一次使用经历很多故障)。
该书将软件系统的创建视为发生在一个或多个生态系统内的出于经济动机的认知活动。算法现在是大宗商品,不会被讨论。认识者的劳动是软件系统的生产资料,这是讨论的焦点。
现有的书籍将软件的创建视为一项手工艺活动,由开发人员应用通过个人实践经验获得的技能和诀窍。手工方法得以幸存下来,是因为构建软件系统一直是一个卖方市场,客户支付了所需的费用,因为潜在的好处远远大于成本。
软件开发是否正在从卖方市场转变为买方市场?在一个竞争激烈的开发工作和员工市场上,付钱让人们从其他许多人已经犯过的错误中吸取教训是一种负担不起的奢侈品;从证据中得出的工程方法比工艺开发更具成本效益。
一如既往,如果你知道任何有趣的软件工程数据,请让我知道。