软件开发过程中的团队成员角色及其所需技能探讨.ppt
软件开发过程中团队成员角色及所需技能,滕化南,地址:北京市海淀区学院路40号大唐电信测试空间楼联系电话:010-62303223 62303260 62303230,目录,一、团队组织,组织结构类型及特点定义项目的组织结构项目组各阶段人员配置,1、项目的组织类型,职能型组织结构项目型组织结构矩阵型组织结构组合型组织结构,a、职能型组织结构,职能型组织结构特点,专业分工、专业化程度高;部门拥有职权,生产人员接受多方指挥,不易造成大的失误和损失。但是,职能组织的结构机制是多头领导,职责不易分明,容易引起管理混乱,部门之间难以协调;职能组织的行为机制偏重行政命令,容易产生官僚主义行为,不易发挥人的主观能动性,难以对其环境问题作出及时的反应。,b、项目型组织结构,项目型组织结构特点,各个职能部门的综合,各类专业人员的交融,是一个摆脱官僚主义行为的舞台;它有利于任务运作的协调,能调动人的积极性,对环境变化有一定的适应性。但是,项目组织是以横向的项目或产品结构组织,与垂直的职能结构缺乏直接联系,专业水平难以提高,业务水平受到影响;另外,在项目组织中人员调动频繁,给管理增加了难度,对项目经理提出了更高的要求。,c、矩阵型组织结构,弱矩阵型组织结构 均衡矩阵型组织结构 强矩阵型组织结构,弱矩阵,均衡矩阵,强矩阵,矩阵型组织结构特点,矩阵式组织的特点是具有职能组织和项目组织的综合优点,是项目管理中一种有效性和高效率的组织形式。,d、组合型组织结构,.,e、选择因素,f、组织类型对项目的影响,.,2、确定项目组织结构,从职位、团队、职责和分层结构等方面定义项目的组织结构。选择什么样的项目组织结构取决于项目特征和客观约束。因此,要预先确定这种结构有一定困难,因为哪一种结构有效在很大程度上取决于具体条件。关于需要考虑的事项,在项目指南、项目计划中有详细说明。在不同阶段,项目组织的形式和规模都有所不同,3、确定项目组人员配置,定义项目所需人员的数量、类别(技能和领域)、经验和才能。根据项目的预计工作量、预期的进度、所选的组织结构和人员配置,由项目经理确定该项目所需的人员配置 要估计一个项目的工作量,当然离不开团队规模、经验、技能、才能等因素。人员的能力和经验是决定工作量的主要因素,一旦选定了可接受的总工作量和可行的时间表,人员的配备情况即随之确定。,二、项目组的成员及职责,项目经理架构师需求分析师系统分析师数据库工程师(DBA)开发人员测试人员实施人员美术设计师,项目经理主要职责,1、计划:a)项目范围、项目质量、项目时间、项目成本的确认。b)项目过程/活动的标准化、规范化。c)根据项目范围、质量、时间与成本的综合因素的考虑,进行项目的总体规划与阶段计划。d)各项计划得到上级领导、客户方及项目组成员认可。,项目经理主要职责,2、组织:a)组织项目所需的各项资源。b)设置项目组中的各种角色,并分配好各角色的责任与权限。c)定制项目组内外的沟通计划。(必要时可按配置管理要求写项目策划目录中的项目沟通计划)d)安排组内需求分析师、客户联系人等角色与客户的沟通与交流。e)处理项目组与其它项目干系人之间的关系。f)处理项目组内各角色之间的关系、处理项目组内各成员之间的关系。g)安排客户培训工作。,项目经理主要职责,3、领导:a)保证项目组目标明确且理解一致。b)创建项目组的开发环境及氛围,在项目范围内保证项目组成员不受项目其它方面的影响。c)提升项目组士气,加强项目组凝聚力。d)合理安排项目组各成员的工作,使各成员工作都能达到一定的饱满度。e)制定项目组需要的招聘或培训人员的计划。f)定期组织项目组成员进行相关技术培训以及与项目相关的行业培训等。g)及时发现项目组中出现的问题。h)及时处理项目组中出现的问题。,项目经理主要职责,4、控制 a)保证项目在预算成本范围内按规定的质量和进度达到项目目标。b)在项目生命周期的各个阶段,跟踪、检查项目组成员的工作质量;c)定期向领导汇报项目工作进度以及项目开发过程中的难题。d)对项目进行配置管理与规划。e)控制项目组各成员的工作进度,即时了解项目组成员的工作情况,并能快速的解决项目组成员所碰到的难题。f)不定期组织项目组成员进行项目以外的短期活动,以培养团队精神。,系统架构师:1、系统架构师是软件项目的总体设计师,是软件组织新产品的开发与集成、新技术体系的构建者。2、系统架构师是在技术上对所有重要事情做出决定的人。3、需求阶段,软件架构师负责理解和管理非功能性系统需求,比如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等。审查客户和市场人员所提出的需求,确认开发团队所提出的设计;组织开发团队成员和开发过程的定义;协助需求分析师完成用户需求说明书、需求变更说明书。4、设计阶段,架构师负责对整个软件架构、关键构件、接口的设计。协助系统分析师完成系统概要设计说明书 5、编码阶段,架构师则成为程序员的顾问,并且经常性地要举行一些技术研讨会、技术培训班等;6、测试及实施阶段,随着软件开始测试、集成和交付,集成和测试支持将成为软件架构师的工作重点;,需求分析师 1、在项目前期根据需求调研计划对客户进行需求调研。2、收集整理客户需求,负责编写用户需求说明书。3、代表项目组与用户沟通与项目需求有关的所有事项。4、代表客户与项目组成员沟通项目需求有关的所有事项。5、负责用户需求说明书得到用户的认可与签字。6、负责将完成的项目模块给客户做演示,并收集对完成模块的意见。7、完成需求变更说明书,并得到用户的认可与签字。8、并协助系统架构师、系统分析师对需求进行理解,系统分析师 1、协助需求分析师进行需求调研。2、分析、解析用户需求说明书,将系统需求整理成软件需求规格说明书;3、负责解决软件需求规格说明书被评审后发现的问题;4、在分析系统前,负责向架构设计师解释软件需求规格说明书的内容。5、协助架构设计师进行架构设计,并协助其完成系统架构说明书。6、根据系统架构说明书对系统进行建模;7、系统分析及建模完成后,负责将建模成果转化为系统概要设计;8、协助数据库设计师按系统概要设计说明书进行数据库逻辑设计和物理设计,完成数据库CDM及PDM图,并协助其完成数据库设计说明书 9、协助软件设计师按系统概要设计说明书进行系统详细设计说明书。10、指导软件工程师按系统详细设计说明书进行代码实现。11、负责重点代码检查;12、协助项目经理进行配置管理,并提供优化改进建议;13、定期对项目组成员进行技术方面的培训。,数据库设计师 1、根据系统架构说明书与系统架构师、系统分析师一同进行数据库建模。2、根据数据库建模结果,绘制数据库CDM与PDM图。3、根据数据库PDM图进行数据库建库。4、对数据库进行维护、备份、恢复、同步。5、负责客户数据的导入导出。6、对数据库进行初始化操作。7、协助软件设计师完成系统详细设计说明书中与数据库相关的部分。8、根据系统详细设计说明书编写对应的视图、存储过程、函数、触发器等。9、对项目组其它成员进行SQL方面的指导。10、定期对项目组其它成员进行数据库方面知识的培训。11、为测试经理及测试工程师建立测试数据。,软件设计师1、根据系统概要设计说明书编写分模块的系统详细说明书。2、负责对软件工程师讲解系统详细设计说明书内容。3、协助软件工程师按系统详细设计说明书进行代码实现。4、控制本模块的开发进度。,软件工程师 主要职责:1.根据系统详细设计说明书进行代码实现;2.对自己代码进行复查,并进行简单的测试;,测试经理 主要职责 1.独立编写测试计划;2.独立编写测试用例;3.协调测试团队内部的工作以及与开发团队之间的工作;4.完成“执行测试”的工作;5.掌握较深层次的测试方法、测试技术和较复杂的业务流程;6.负责测试过程工具的研究、推广与维护,负责测试数据库维护工作;7.负责编写用户手册、操作手册和相关培训教材;8.负责项目的质量审查。,测试工程师 主要职责1.在测试经理的安排和指导下,编写测试用例;2.在测试经理的安排和指导下,完成“执行测试”的工作;3.在测试经理的指导下,按测试计划进行测试工作;4.按测试用例进行测试工作。5.负责被分派项目的质量审计。6.了解项目的基本流程,可以熟练的进行项目中各种流程的操作。,实施经理 主要职责 1.负责制定项目实施计划;2.在项目实施计划的约束下,协调项目组相关资源,完成系统实施相关工作(包括系统安装、用户培训、系统上线、系统试运行等);3.在项目实施阶段,跟踪、检查实施人员的工作质量;5.负责协助用户进行“用户确认测试”和编写确认测试报告。,实施工程师 主要职责:1.在实施经理安排和指导下,执行项目用户现场实施任务;2.参与编写用户手册、操作手册和相关培训教材;3.参与进行“用户确认测试”和编写确认测试报告。,美术工程师1.负责完成软件设计师安排的功能界面设计。2.负责对项目整体色彩的调配。3.向系统分析师提出项目美化的建议。4.为BS 项目提供一套或几套CSS样式表及HTML结构表 5.为CS项目提供符合项目内容的静态、动态图片。6.并为软件设计师提供界面指导。,三、人员技能要求,软件架构师,1、必须具有丰富的软件设计与开发经验2、要具有领导能力与团队协作技能3、具有很强的沟通能力4、业务知识5、快速的学习能力,需求分析师,1、必须具有丰富的软件设计与开发经验2、项目的业务知识3、具有很强的沟通能力4、学习能力,系统分析师,1、必须具有丰富的软件设计与开发经验2、业务建模(uml)3、具有很强的沟通能力4、学习能力,具备的技能,1、复合型人才2、较强的专业知识3、具有很强的沟通能力4、学习能力5、适应能力,四、软件开发流程(公司实例),软件开发过程项目组成员的基本构成主要职责,1、软件开发过程,项目立项项目计划需求分析概要设计详细设计编码阶段测试阶段实施及试运行阶段验收交付阶段,2、项目组成员的基本构成,项目经理分析设计人员开发人员测试人员实施人员质量保证人员配置管理人员,3、成员的职责,项目经理:负责整个项目的组织,进度的安排、资源调配、任务分配、组织对成果物的评审、控制项目的实施分析设计人员:负责系统的需求分析、概要设计及详细设计开发人员:系统的编码与实现测试人员:系统的单元测试、系统/集成测试;实施人员:现场安装、调试,用户的培训;质量保证人员:负责监督项目进度、软件的评审、软件测试、保证程序、规范的执行;配置管理人员:负责项目的配置管理、变更管理及成果物的备份,谢谢!,