需求与设计评审角色
1.角色角度构成
需求与设计评审需要的角色首先要有评审组长,即这个项目的整个评审工作的组织者,需要有管理、评审及会议主持等工作经验。
其他除了文档的作者及记录人员之外,主要的角色就是评审人员,这一角色可以由具有以下不同角度知识技能经验的人员构成。
① 项目管理专家:具备项目管理知识与经验,主要是为了检查需求或设计对项目管理的可能影响,现行项目管理工作与这些文档中所提要求的符合性。
② 质量管理专家:掌握过程与文档相关规范,这些规范可以是行业内部通用的,也可以是企业内部制定的。
③ 软件工程专家:掌握软件工程、需求和设计建模方法,能够对文档中表达方法的正确性进行判断。
④ 相关行业专家:具备丰富的行业业务经验,一个好的系统分析员也应该是好的业务专家。对于需求评审来说,有客户或所建系统相关行业专家的参与是至关重要的。
⑤ 企业资产库管理者、中间件和平台专家:“永远别重新发明轮子”,软件开发一般是将系统建立在某种平台之上或者使用某些中间件。而每个企业针对自己使用的开发方法都会有一定的积累,如类库、系统框架、用户管理、系统管理、信息代码管理和界面管理等都是可以复用的资源,不需要从头开发。
⑥ 相关系统开发人员:在后面提到的前后左右相关的项目成员。
⑦ 内部后继环节人员:包括编程语言及工具专家/数据库专家、界面设计师/美工和测试人员和维护人员等,他们一方面对需求与设计文档进行熟悉;另一方面也可以检查文档是否可以被理解,也可以其知识和经验进行判断。
⑧ 某类硬件专家:与硬件系统较密切的软件开发项目,如电梯、手机、机器人和驱动等,需要对这些硬件的性能和接口较熟悉的人员。
⑨ 产品经理、类似产品和竞争对手分析人员。
⑩ 最终用户、客户和行业标准制定人员。
全球化专家/用户所在国文化专家:对外包或外销软件开发项目而言。
以上只是提供一个较为全面的角色选项,不是每种角色都有一个人,而是一个人可以兼多个角色。评审组成员的构成也不是一定都需要里面的所有角色,具体项目要具体考虑,选择其中必要的角色进行搭配。
2.角色构成因素
评审人员的选择是评审效果的关键,需要考虑以下因素。
① 项目重要性:项目重要性是决定角色构成的最重要的因素,评审角色的构成因素首先要根据项目的重要性而定。这与需要投入的成本有关,对于重要的项目一般会更多地投入资源,提高评审级别。
② 项目复杂度:项目的复杂度也是决定角色构成的因素之一,根据温伯格的公式,项目管理的复杂度相当于功能规模的平方数。笔者认为还应该考虑技术复杂度、技术新鲜度和文档复杂度等因素。
③ 项目组成员的能力成分和水平:评审角色构成还应当根据项目团队成员本身的各项技术水平,特别是分析和设计的技术水平如何,行业领域知识是否丰富来进行搭配。
除了团队内部自己进行评审之外,评审团队最好是一些独立于项目团队之外的成员构成。Bhuvan Unhelker在《基于UML的软件项目的过程质量保障》中说:“要保持质量职能的独立性,只有通过指定项目以外的人员来承当角色才起作用”,测试工作也有“独立性”的要求。
应当注意的原则是人数要少而精,一个人可以兼多个角色,但要覆盖各项人员需求。需要说明的是,不具备评审能力的不应参加,可以通过旁听来提高水平。
3.基本角色职责
① 评审组长:制定评审计划、确定或制定各项评审准则、必要时组织评审人员进行培训、组织必要的资源、进行评审分工、确保正式评审准备充分、分发待评审文档、必要时召开并主持评审会议、向有关领导报告评审结果,并且跟踪评审错误的改正。
② 评审人员:必要时参加与评审有关的培训、按评审计划阅读待评审材料、保证对待评审材料的理解、与待评审材料作者讨论,并且指出和记录问题。
③ 文档作者:按评审计划准备并按时提交待评审材料、必要时对材料进行解释、必要时参加评审会议,并且在确定需要改进时按时完成修改。
④ 记录人员:评审会议中记录评审人员提出的问题及相关讨论。
⑤ 项目经理:制定保证评审和改正的项目进度计划,还要确保评审准备时间、评审会议时间及错误的改正时间。而且评审安排及结果与所有项目成员沟通,必要时参加评审会议、阅读评审报告、分析缺陷原因,并且改进项目质量。