当寻求关于良好编程实践的建议时,典型的答案是敏捷软件开发、测试驱动开发或设计模式的变化。然而,据我所知,这些方法都没有使用科学方法证明过(如果我在这方面有误,请随时纠正我)。 我想知道,是否有关于基于证据的开发实践的好资源?
如果您真的对此感兴趣,最好的信息来源将是学术期刊或IEEE,正如donroby所提到的那样。如果您拥有一所大学的学位并且仍然是校友会成员,则可以通过大学图书馆访问信息(至少在澳大利亚是这样运作的。校友可以以较低的价格获得大学图书馆的会员资格,并获得许多学生使用的资源。)编辑:大多数信息不会是实验性的,而是项目和调查研究的研究。在这种情况下,您无法真正应用科学方法;它更接近社会科学,而不是像化学和物理学这样的硬科学。
有一些关于特定敏捷实践影响的研究已经进行,但是它们肯定不够完整。设计模式可能也有类似的工作水平。我在这里提供的链接绝不是决定性的,但具有一定价值,并且还参考了其他值得查看的研究。- IBM和NCSU关于TDD的研究 - IEEE Transactions on Software Engineering上发表的有关配对编程的研究 阅读这些的价值部分在于理解你所提出的问题的复杂性和困难性。真正重要的证据将由您自己的经验提供,如果您被说服尝试其中一些实践。这也将是难以量化的,但您可能能够决定这些实践是否适合您。
我所知道的关于软件工程科学证据最好的综合参考资料是《软件工程的事实与谬误》。这本书简明扼要,引用了原始来源(或者直接说明没有),写得很好,价格也不贵。第二好的参考资料是《代码大全》,但它更长,并且不太专注于证据本身。尽管如此,这仍然是一本必读的书。一旦你阅读了这两本书,值得看一下IEEE软件杂志上的“证据之声”系列文章。