第16章技术评审技术评审(TechnicalReview,TR)的目的是尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而有效地提高产品的质量。技术评审的过程是SPP模型的重要组成部分。本规范阐述了技术评审过程域的3个主要规程:☆制定技术评审计划[SPP-PRO-TR-PLANNING]。☆正式技术评审[SPP-PROC-TR-FTR]。☆非正式技术评审[SPP-PROC-TRITR]。上述每个规程的“目标”、“角色与职责”、“启动准则”、“输入”、“主要步骤”、“输出”、“完成准则”和“度量”均已定义。本规范适用于国内IT企业的软件研发项目。建议拥护根据自身情况(如商业目标、研发实力等)适当地修改本规范,然后推广使用。16.1介绍技术评审最初是由IBM公司为了提高软件质量和提高程序员生产率而倡导的。技术评审方法已经被业界广泛采用并收到了很好的效果,它被普遍认为是软件开放的最佳实践之一。技术评审能够在任何开发阶段执行,它可以比测试更早地发现并消除工作成果中的缺陷。技术评审的主要好处有:☆通过消除工作成果的缺陷而提高产品的质量。☆越早消除缺陷就越能降低开发成本。☆开发人员能够及时地得到同行专家的帮助和指导,无疑会加深对工作成果的理解,更好地预防缺陷,在一定程度上提高了开发生产率。可见技术评审有助于“提高质量、提高生产率、降低成本”,符合软件过程改进的根本目的。技术评审有两种类型:☆正式技术评审(FTR)。FTR比较严格,需要举行评审会议,参加评审会议的人员比较多。☆非正式技术评审(ITR)。ITR的形式比较灵活,通常在同伴之间展开,不必举行评审会议,评审人员比较少。理论上讲,为了确保产品的质量,产品的所有工作成果都应当接受技术评审。现实中,为了节约时间,允许人们有选择地对工作成果进行技术评审。技术评审方式也视工作成果的重要性和复杂性而定。技术评审过程域有3个主要规程:“制定技术评审计划”、“正式技术评审”和“非正式技术评审”。如图所示。确定技术评审计划正式技术评审图16-1:技术评审过程域示意图技术评审的注意事项:☆评审人员的职责是发现工作成果中的缺陷,并帮助开发人员给出消除缺陷的办法,而不是替开发人员消除缺陷。☆技术评审应当“就事论事”,不要打击有失误的开发人员的工作积极性,更不准搞人身攻击(如挖苦、讽刺等)。☆在会议评审期间要限制过多的争论,以免浪费他人的时间。技术评审过程域产生的主要文档有:☆整个项目的《技术评审计划》,模板见[SPP-TEMP-TP-PLAN]。☆《技术评审同通知》,模板见[SPP-TEMP-TR-NOTES]。☆《技术评审报告》,模板见[SPP-TEMP-TR-REPORT]。☆常用的《技术评审检查表》见[SPP-TEMP-TR-CHECKLIST]。16.2制定技术评审计划16.2.1目的确定需要评审的工作成果、评审方式,预定评审时间、地点以及相关人员。16.2.2角色与职责项目的技术负责人(或技术骨干)制定《技术评审计划》。项目经理审批《技术评审计划》。16.2.3启动准则《项目计划》已经制定。16.2.4输入《项目计划》16.2.5主要步骤[STEP1]确定需要评审的工作成果如果项目的时间充足,为了确保产品的质量,应当对产品的所有工作成果都进行技术评审。如果项目的时间不充足,为了节约时间,可以选择一些重要的工作成果进行技术评审。非正式技术评审[STEP2]确定技术评审方式根据工作成果的重要性和复杂性确定技术评审方式。将重要性、复杂性各分“高、中、低”3个等级。重要-发杂性组合与技术评审方式的对应关系如表所示。表16-1:重要性-复杂性组合与技术评审方式的对应关系重要性-复杂性组合技术评审方式(FTR,ITR)高高FTR高中FTR高低FTR或者ITR均可中中FTR或者ITR均可中低ITR低低ITR[STEP3]预定评审时间、地点以及相关人员根据《项目计划》中的进度表,预定评审时间和地点。根据工作成果的特征预定评审主持人和其他评审员。[STEP4]审批计划项目经理根据《项目计划》以及现实情况(如可以支配的人力资源),审批《技术评审计划》。项目的技术负责人(或技术骨干)应根据项目经理的批示修正《技术评审计划》。16.2.6输出《技术评审计划》16.2.7结束准则《技术评审计划》已经制定并被项目经理批...