浔之漫智控技术(上海)有限公司
主营产品或服务:西门子PLC , 西门子变频器 , 西门子数控系统
西门子电源(全国)授权经销商

西门子电源(全国)授权经销商

复汇报不总是容易的事。在近期的一次系统性评审中,我和我的同事们必须找出重复的样本量,也要找出重复作者的名单,以便确认对同一篇研究的重复汇报[52]。在其他系统性评审中,问题会更微妙,因为不同的研究者使用同样的数据组来调查同样的数据分析方法,但不总会清楚地指出他们所使用的数据组[31]。

医疗标准要求系统性评审由一个研究团队来执行。这是因为许多流程依赖人的主观判断,特别是:在初始搜索或是运用包含和排除的标准时,决定一篇论文是否成为原始研究的候选;回答质量评估的问题;从每篇原始研究中抽取数据。

让多个研究者来执行系统性评审是希望能削弱个人判断造成的偏差。一开始,我和我的同事们建议采取一个抽取员流程和一个检查员流程,那样也许比两个人独立抽取数据和评估质量效率高但*后,这被证明是个错误的选择然而,有时系统性评审必须由单个研究者来完成,比如为研究生学位做研究,或者当人手有限的时候。举个例子,我9项在大学环境下展开。

关于系统性评审和非正式评审的区别,Dybå和Dingsøyr报告称发现了5篇在2003年及以前发表的论文,并未在2004年发布的两篇非正式评审中包含。出于对高质量证据的需求,他们否决了两次非正式评审中所汇报的所有论文,因为它们要么研究了结对编程并开展了一次元分析来集合研究结果。如果你对如何做元分析感兴趣的话,这篇论文提供了可靠的介绍。他们的系统性评审确定了18项原始研究,全部都是实验。18项研究中,4项实验只涉及专业对象,1项同时涉及专业人员和学生,其他13项用学生做研究对象。Hannay等人调研了3种不同的结果:质量、持续时间和工作量(虽然不是每项研究都处理了所有结果)。他们的初始分析显示,使用结对编程有以下效果:对质量的少许正面影响;对持续时间的中等正面效果;对工作量的中等负面效果。

这些结果似乎支持对结对编程影响的标准观点。然而,结果也指

西门子电源(全国)授权经销商

识别出不同的人群。

Hannay等人在调查发表偏倚的可能性时发现了更多问题。这指表现出显著效果的论文比未表现出显著效果的论文更有可能被接受发表。他们的分析指出了发表偏倚的可能性,并发现如果根据可能的偏倚做出调整的话,那对质量的效果就完全抹去了,对持续时间的效果会从中等变成少许,但是对工作量的效果会有一点增加(虽然这仅发生在一项特别的分析模式中)。

他们指出,混杂性和可能存在的发表偏倚可能是由干扰变数(也就是造成不同研究结果之间差异的变数)的存在所导致的。为了研究可能的干扰变数的影响,他们仔细查看了一项研究。那是迄今为止*大的一项研究,涉及295个对象,使用了三个级别的专业软件工程师(**、中级和初级)。他们总结,任务的复杂性和结果之间可能存在相互作用。所以很复杂的任务可能在使用结对编程时能以大工作量为代价达到高质量,而低复杂度的任务可能以低质量为代价迅速完成。他们推荐研究者在将来的原始研究中关注干扰变数。是经验学习的论文,要么就是针对单个实践的研究,而并没有与其他可选方法比较所关注的技巧。

Dybå和Dingsøyr发现,虽然一些研究汇报了XP存在的问题(在大而复杂的项目背景下),大多数讨论XP的论文发现它容易引入而且在不同环境下都运作良好。至于XP的局限性,他们发现有一些原始研究汇报了现场客户这个角色从长期来看不可行。

然而,他们从敏捷方法的实证研究中找出了许多局限性。大部分研究只关心XP,而Scrum和精益软件开发分别只有1篇论文讨论到。而且,只有一个研究小组(被包含的原始研究中有4篇是他们完成的)检测了成熟团队使用敏捷方法的情况。

此外,从不同角度评估了现存证据的质量,包括研究设计的严谨性、单个原始研究的质量(在基本设计的约束下)、不同研究的结果一致程度、以及研究对真实软件开发的代表性。他

西门子电源(全国)授权经销商

严谨的方法在时间紧迫和资源有限的情况下,自己完成了一项初步图谱研究[22]。在这种情况下,研究者应该使用一些技巧来评估主观决定的准确性,如Fink所建议的测试-再测试的流程[17]。

*后,关于质量标准,我发现很少有软件工程的系统性评审真正评估了各个单项研究的质 量[33][34]。然而,质量判断是系统性评审的流程中不可缺少的元素,它对适当地集合原始研究的结果和解读结果都非常重要。在一次*近针对顺势疗法疗效的系统性评审中,我们可以找到低质量对研究结果影响的例子[46]。如果所有的研究都被包含的话,这种方法将项目分成三个阶段:项目前期、项目生命周期和项目后期。它基于9个原则:用户必须持息让我学习到了独立开发这样一个大型系统的经验。我发现Knuth介绍的很多错误类型在我自己编程的时候也有,不过也发现了很多不曾见过的问题,这些都让我可以更好地思考我的代码出问题的原因。作为一个研究员,我还从这篇文章中学习到了软件开发背后的人为因素,即:我们如何思考,我们的记忆是如何工作的以及我们如何做计划以及进行推理。这些都是影响软件质量的重要因素。和这篇文章类似的还有一些,它们把我引领到了一条研究人为因素的职业道路上,让我可以通过研究更好的编程语言、工具以及流程来改善软件的质量。

不过,在阅读之后马上就学到东西的情况并不多见。我也是在读完之后的几个月中逐渐在自己的工作中意识到Knuth所描述的错误种类,而除了这篇文章之外,还有很多文章都引起了我的研究兴趣。

你不认同的结论就把整篇文章都作废,那么你可能会错过所有其他有用的启示,而想要得到这些启示你必须要认真而持续的对研究的结果进行反思。整天,看看他们在做什么。这样你就能直接观察到他们决定放弃新系统,使用旧系统的那一瞬间。

当然,想要直接观察到开发人员的这些瞬间通常是不现实的。人不喜欢被监视,而且经常会调整自己的行为以保护隐私、避免尴尬或者解除焦虑情绪。此外,由于你是唯一的观察者,你很可能会把你自己的偏见也带进来。在了解了什么是定性研究方法之后,我们现在将介绍一下如何来解读定性研究(包括这本书中将出现的各种定性研究的成果)。我们将涉及一些问题,比如这个研究让我们学到了什么?在什么情况下你才能相信这些研究的结论?在什么情况下你可以把这个研究的结论推广应用到更多的项目中?为了解答这些问题,我们可以参考一下图灵奖获得者输入、执行和输出。(听起来就像软件测试,不是吗?)我就以Knuth的研究为例来讨论一下这几个层面。

首先,你信任Knuth的研究的输入吗?比如说,你认为TeX是一个典型的程序吗?你认为Knuth是一个典型的程序员吗?你信任Knuth本人吗?上面这些因素可能会影响你对研究的看法,比如:Knuth的15种分类是否全面,是否典型,在数十年之后是否仍然会在工作中发生。假如你认为Knuth无法代表其他的程序员,那么要是换成别人来做这个研究,结果会有怎样的不同呢?比如说,我们可以假设Knuth和很多的学界人士一样,是个心不在焉的教授。也许这可以解释为什么有那


发布时间:2023-04-03
展开全文
优质商家推荐 拨打电话