【问题标题】:Evidence based studies on the topic of best programming practices? [closed]关于最佳编程实践主题的循证研究? [关闭]
【发布时间】:2010-09-09 22:35:23
【问题描述】:

在寻求有关良好编程实践的建议时,典型的答案是敏捷软件开发、测试驱动开发或设计模式的变体。但是,据我所知,这些都没有使用科学方法证明(如果我在这方面有误,请随时纠正我)。

我想知道,关于循证开发实践这一主题有什么好的资源吗?

【问题讨论】:

  • 似乎太笼统了,也许你应该更具体地说明你感兴趣的做法。有一些关于敏捷的实证研究。我认为软件工程中没有任何真正的科学证据,它只是不是一门科学,例如数学。
  • 我不明白为什么不可能。例如,让一组使用旧的瀑布方法解决任务,而另一组使用迭代方法似乎是可行的。然后比较结果。
  • 是的,你可以这样做,有些人在小范围内这样做,但你必须与许多组一起这样做才能获得任何类型的统计有效性,因为总是有其他的除了所使用的方法之外,还有其他变量。
  • & @donroby - 更不用说在行业内实际进行适当数量的这些实验所涉及的成本。我希望看到 PM 向高层管理人员解释两个并行的开发团队将延迟交付。一个团队是因为最初的范围包含一个基本错误,另一个团队是因为设计是一堆 s*#t。或许可以组建第三支团队来共同完成这两项尝试?

标签: design-patterns tdd agile


【解决方案1】:

如果您真的对此感兴趣,那么最好的信息来源是学术期刊或 donroby 提到的 IEEE。如果您拥有大学学位并且仍然是校友会员,那么您可能可以通过大学图书馆访问信息(至少在澳大利亚是这样的。校友可以获得大学图书馆的廉价会员资格并访问很多学生使用的资源。)

编辑: 大多数信息不是实验性的,而是项目和调查研究。在这种事情上你不能真正应用科学方法;它比化学和物理等硬科学更接近社会科学

【讨论】:

  • 调查如何不是实验性的?您认为他们是通过将一些测量设备连接到患者身上来测试止痛药,还是询问/调查疼痛程度?
  • 抱歉,我不会开始其中一场辩论。
【解决方案2】:

已经对特定敏捷实践的影响进行了一些研究,但肯定是粗略的。设计模式可能有类似的工作水平。

我在此处放置的链接绝不是确定性的,但具有一定的价值,并且还参考了其他可能值得关注的研究。

阅读这些内容的部分价值在于了解您提出的问题有多复杂和困难。

如果您被说服尝试其中一些做法,那么您自己的经验将提供最重要的证据。您也很难量化,但您或许可以决定这些做法是否适合您。

【讨论】:

  • +1 @donroby 同样重要的是要注意,仅仅因为它失败或对某人有用,并不意味着它在其他项目或其他人中也会如此。要在这些主题上获得有价值的见解,需要大量的经验 + 强烈的客观思维。
  • @eglasius - 是的!或多或少我试图用“最重要的证据将由你自己的经验提供”来表达。
【解决方案3】:

我所知道的关于软件工程科学证据的最佳综合参考是Facts and Falacies of Software Engineering。这本书简明扼要,引用了原始资料(或者明确表示没有),写得很好,而且不贵。

第二好的参考是Code Complete,但它更长,而且它并没有那么专注于证据本身。尽管如此,它还是一本必读的书。

阅读完这两本书后,还值得一看 IEEE 软件杂志的“证据之声”系列文章。

【讨论】:

    猜你喜欢
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多