复审
一种正式的评估方法
复审是一种正式的评估方法。虽然与会者可能独立地准备了一些复审,但复审是以会议形式进行的。 而有时也是在秘密中复审的。在流程活动期间持续不断地监测质量,以防止直到复审才发现隐藏的大量缺陷。在 Rational Unified Process 的每个活动中,参考下面列出的检查点就是为了在这方面有所加强;在非正式的复审会议或日常工作中使用检查点。
复审类型
在 1990 年的标准词汇表中,IEEE 定义了三种复审:
复审
一次正式的会议。在会议上向用户、客户或其他相关各方介绍一个或一组工件,以征求对方的意见和批准。
检查
一种正式的评估方法,将由非制作者本人的个人或小组详细检查工件,以查明是否有错误、是否违反开发标准、是否存在其他问题。
走查
一个复审过程,由某个开发人员领导一个或多个开发团队成员对他(或她)所编写的一段工件进行检查;同时,由其他成员针对技术、风格、可能的错误、是否违反开发标准和其他问题提出问题并发表意见。
跨团队进行实施后,复审还提供了发现其他小组的设计和代码的机会,并且增加检测公共源代码的机会、复用的机会以及泛化关系的机会。复审还提供了在不同的小组之间协调构架风格的方法。
在 Rational Unified Process 中,复审在确保质量维度发挥了重要的辅助作用。在 Rational Unified Process 中,确保质量的主要因素在有关“同事检查”的部分 [ROY98] 中进行了详细说明。然而,此书的确指出了复审在专业开发方面其他有价值的影响:资历较低的工作人员有机会了解专家的工作,并让高级导师对自己的工作进行复审。
计划
我们对复审制定计划,以确定复审的重点和范围,并确保所有参与者理解自己的角色和复审的目标。
在复审之前,通过确定将提出的问题确定复审范围;确定评估的对象及原因。针对可能提出的各种问题,参阅要复审工件的检查点。确切的问题取决于项目所处的阶段:早期复审将关心较广泛的构架问题,而后期复审将更为具体。
确定了复审范围之后,便可以确定复审参与者、议程和进行复审所需的信息。选择参与者时,应该在软件构架专业知识和领域专业知识之间建立平衡。清楚明确地指定协调复审的评估负责人。如果有必要,调用其他团队或组织的其他部分来提供领域专业知识或技术专业知识。
复审员的数目应该大约为七个人或更少。如果选择得当,他们应该完全可以确定构架方面的问题。如果复审员的数量太多,实际上会因为会议时间过长、参与更困难,以及在复审过程中增加了枝节问题和讨论,而降低复审的质量。如果复审员少于四个,则会因为减少了问题的多样性而增加片面性的风险。
复审员应该在要复审的领域拥有丰富经验;对于用例,复审员应该理解问题领域;对于软件构架,复审员还需要具备软件设计技术的知识。缺乏经验的复审员可以通过参与复审了解有关构架的内容,但他们对复审的帮助很小,同时他们的参与还可能会分散复审力量。保持小规模的复审小组;参与者不超过 7 个,但不少于 3 个。复审员数量太少会危及复审的质量,复审员数量太多,就无法进行对于获得质量结果非常重要的交互式讨论。
选择符合以下条件的复审员:
具有相当的背景来理解所介绍的材料
所复审产品或工件的质量与之有利害关系
准备材料
复审之前,应该收集要复审的工件和所有背景材料,并分发给复审参与者。对于复审材料并收集问题的复审员来说,这些工作必须在复审会议之前很好地完成。预先分发足够的复审材料,让复审员有时间准备复审,可以显著提高复审结果的质量。准备复审还会大大提高复审的效率和有效性。
复审员应该在复审之前研究文档、构思问题、确定要讨论的问题。在复审员正常工作量的情况下,几个工作日通常是准备复审所需的最少时间。
复审要素
进行成功的复审有几个关键要素:
理解复审流程
确保复审员理解自己的角色
指定协调员
使复审保持简短,严格按照议程进行
确定问题,而不要解决问题
以下将详细讨论每一条。
理解复审流程
一般来说,复审流程是一个重复进行的循环过程:
复审员提出问题
讨论问题,同时对问题进行了确认
确定缺陷(确定需要解决的地方)
直到没有确定的问题时再继续下一步
为了使这个过程有效进行,每个人都必须理解复审的目标是提高复审工件的质量。应该以发现问题的挑剔眼光来复审工件。这种做法可能很困难,所以所有复审员都必须经常提醒自己将重点放在确定问题上(我们天生就会解决问题,但作为复审员我们必须忘掉这一点)。
我们都强烈地感觉到工作是属于自己的;通常,我们很难接受批评,甚至是建设性的批评。因为这样,我们必须更加努力地工作,以便将注意力集中在复审目标上:使工件的质量更好。
理解复审员角色
为了进行有效的复审,每个人都必须扮演一个角色。更具体地说,必须扮演某些角色,而且复审员不能轻易地转变角色。复审中的基本角色有:
协调员
记录员
介绍员
复审员
协调员确保复审按议程进行,并以当前的主题为重点。协调员应该确保对枝节问题的讨论不会使复审脱离正轨,而且所有复审员都以平等的身份参加讨论。
记录员经常被忽略,但却是复审团队中必不可少的部分。其专职任务是记录所讨论的内容和要采取的行动。将此任务分配给某个复审员,实质上是使其置身于讨论之外。然而,更糟的是,如果没有记录下所决定的事情,就很可能会导致将来再次发生该问题。确保指定一位记录员,并保证这是此人所扮演的唯一角色。
介绍员是复审工件的制作者。介绍员解释工件和理解工件所需的所有背景信息(如果工件不是无需解释的,可能需要做一些工作)。重要的是,复审不能变成“审讯”,因为复审的重点是工件,而不是介绍员。协调员的作用是确保与会者(包括介绍员)记住这一点。讨论开始,介绍员首先发言,回答问题并提供解释说明。
复审员提出问题。一定要侧重于提出问题,而不要耗费大量精力讨论如何解决问题。注重结果,而不是方法。
指定协调员
正如上面所讨论的,协调员对于保持复审不失去重点起到了关键的作用。有一点很重要,协调员的工作重点是使复审不脱离正轨;他不应该具有复审员的职责。协调员的作用是获取讨论,确保大家平等地参与会议,确保争论不会影响大局。这是一个专职的任务。如果不能有效地协调,复审就无法达成预期的结论,而且也无法实现他们的目标。
使复审保持简短
简短而侧重于明确目标的复审是最有效的。因为很难长期保持重点,而且复审员还有其他的工作要做,应该将复审时间限制在两小时之内。如果要进行时间较长的复审,可以将其拆分为几个规模较小、更有重点的复审。如果复审员能保持重点,就会获得更好的结果。
这种作法的关键是制定非常确定的议程和清楚明确的目标。分发复审材料后,应该向大家传达这些目标,而且复审会议开始时,协调员应该强调这些目标。之后,在会议进行期间,协调员还必须经常地(有时是强迫性的)强调这些目标。
确定问题,而不要解决问题
复审会议无法实现预期结果的一个主要原因是,会议很容易变成关于应该如何解决问题的讨论。解决问题通常需要调查和仔细思考;复审的形式对于这种讨论来说不是一个有效的方法。确定了问题之后,确定该缺陷是否必须得到解决,之后将调查和解决的任务分配给某个人。复审会议应该只注重确定问题。
如果问题需要一组人作进一步的讨论,就另外召开一次单独的会议重点讨论该主题。通常,这种会议需要一些调查和准备工作,而且需要一些具备适当工作技能的人员参加。复审应该将重点放在确定其他问题上。协调员经常需要施加相当大的影响,来确保复审会议侧重于这个方向。
复审结果
如果不对复审结果采取行动,那么复审就没有什么价值。复审结束时:
确定问题列表上的优先顺序。
创建缺陷,以追踪问题及其解决办法。
如果需要进行其他调查,将调查问题(而不是解决问题)的任务分配给一个小团队。
对于可以在当前迭代中解决的问题,指派一个人或一个团队解决该问题。
将未解决问题的列表留给未来的迭代计划工作。
参考资料
最新修订时间:2024-11-20 12:28
目录
概述
复审类型
参考资料