本书3.1节介绍了项目组中的成员,那么本节就用一张示意图来展示项目组成员与需求之间的关系,如图3-1所示。
图3-1 项目组成员与需求之间的关系
(1)有一个A用户,由于A用户的员工较多,为方便管理员工的信息,A用户需要一个人力资源管理软件来管理员工的档案信息,也就是说需求是来自用户的。
(2)A用户有了这个原始需求后,就会把这个原始需求提交给项目组的产品人员,随后项目组的产品人员依据A用户提供的原始需求,制订出一份更为规范的软件需求规格说明书(以下简称“需求文档”)。(说明:用户的需求称为原始需求,用户提供的原始需求是比较简单和模糊的,毕竟用户本身不是专业的软件设计人员,他们只能提供一些原始想法,而后由专业的产品人员根据用户的原始需求设计出规范化的需求文档。产品人员在制订需求文档时不能偏离用户的原始需求,在制订需求文档的过程中还要不断地和用户进行交流确认,直至用户满意为止,可见在项目中,产品人员主要是制订需求文档的。)
(3)产品人员把制订好的需求文档分别发给开发人员和测试人员。
(4)开发人员按照需求文档开展相关的开发工作,开发出相应的软件产品。
(5)测试人员会测试开发出来的软件产品是否符合需求文档里的要求。
以上便是一个软件项目所经历的简要流程,而产品人员也经常被称作需求人员,下文将统一采用产品人员这一说法。
(1)一般情况下,一个软件项目组由开发人员、测试人员、产品人员组成。当一个项目启动时,公司就会从产品部抽调出熟悉此款产品的产品人员进驻这个项目组,从开发部抽出熟悉这款产品研发的开发人员加入这个项目组,同时也会从测试部抽调出相关的测试人员参与到这个项目中,三方人员要对这个项目负责到底。
(2)测试人员要经常与开发人员进行沟通,因为一旦测试过程中发现了问题就要反馈给开发人员,并要推动开发人员去修复问题,既相互配合,又相互监督。
(3)测试人员也需要同产品人员打交道,需求文档中有不清楚或有歧义的地方,需要向产品人员确认。
(4)开发人员和测试人员通常是不需要与用户直接沟通的,主要是产品人员和销售人员与用户打交道。
(5)产品经理:组织产品人员开展需求设计、需求变更等相关工作,安排产品人员的工作。
(6)测试经理:负责测试技术、测试计划、测试总结等相关工作,安排测试人员的工作。
(7)开发经理:负责开发技术等相关工作,安排开发人员的工作。
(8)项目经理:本项目的负责人,负责整个项目中重大问题的决策、沟通、协调、进度、交付等工作,对产品人员、开发人员、测试人员三方负责。一般情况下软件的项目经理都是有开发技术背景的。