软件开发9大角色分析

发表于:2015-06-18 15:35:30
【内容导读】随着软件公司规模的不断膨胀和软件开发技术的发展,软件开发的分工和组织也变得越来越复杂,如何合理的...

 

随着软件公司规模的不断膨胀和软件开发技术的发展,软件开发的分工和组织也变得越来越复杂,如何合理的组织和分工越来越成为能否成功软件开发的一个决定性因素。

对一个软件或者一项软件工程来说,参与角色通常包括如下几种: 高级经理,软件产品经理或软件项目经理,软件开发经理,设计师,测试经理,软件开发人员,测试人员,软件项目实施人员

高级经理 具体参与软件项目或软件产品的时间并不多,但对软件项目的成败却起到了至关重要的作用。通常高级经理参与软件项目过程中各个关键环节的活动,关注软件产品软件开发的进度,对风险控制、资源提供做出决策。

软件产品经理 (软件项目经理)作为客户方和公司内部交流的纽带,对软件项目过程进行监控,对软件项目的进度、质量负责。软件产品经理应该是软件工程领域内的专家,但不一定是业务领域内的专家。软件产品经理的基本活动包括:制定计划、协调资源、关注和控制计划进度、控制客户期望值。其中控制客户期望值这一项在工程性质的软件项目中尤其重要。

软件开发经理 是具体软件开发过程的领导者,必需由熟悉业务和软件开发技术的专家担任。软件开发经理的职责是界定需求,确定适当的技术构架和体系,保证软件按照设计的标准软件开发。

设计师 是软件蓝图的设计者。通常设计师可以分需求分析师、构架设计师、业务设计师三种,在小规模的软件开发团队中,这三个角色通常由一个人承担。设计师一定是业务领域和技术领域内公认的专家,具有丰富的软件项目经验,能够准确把握客户需求并提供可行的实现思路。设计师的基本活动包括:进行需求分析、进行构架设计和功能设计,按照规范编写相应的文档,将设计思路传播给软件开发人员、测试人员。

测试经理 是测试活动的领导者,是公司内部认定的软件产品质量责任人(软件项目经理是对外的软件质量责任人)。测试经理的责任是计划和组织测试人员对目标软件产品进行测试,发现 bug 、跟踪 bug 直到解决 bug ;计划和组织用户培训工作。

软件产品经理、软件开发经理、设计师、测试经理作为一个软件项目的高层,对软件项目的成败起关键作用。

软件开发人员 根据设计师的设计成果进行具体编码工作,对自己的代码进行基本的单元测试。通常 3 4 个软件开发人员组成一个软件开发小组,由一个 team leader 带领进行软件开发活动。软件开发小组 team leader 由小组内技术和业务比较好的成员担任。 team leader 通常还负有进行详细设计和走查小组成员代码的职责。考虑到 team leader 需要进行详细设计、编写文档,和小组成员进行沟通,因此一个 team leader 的软件开发任务不能超过软件开发人员的平均任务量。对软件开发人员而言,必需具备软件产品软件开发所需要基本技术、技能,比如编程语音、数据库应用软件开发经验等。如果发现软件开发人员不完全具备这些技能,软件开发经理和软件项目经理应该提供必要的内部或外部、培训,以使软件开发人员具备这些必要的技能。

测试人员 根据测试经理的计划和测试总体方案对目标软件产品进行测试,编写测试 case 和测试代码,发现和跟踪 bug ;编写用户手册;进行用户培训和教育。测试人员介入软件项目的时机从理论上讲越早越好,但考虑到测试人力资源,通常在需求分析确定后介入比较合适。对测试人员而言,除了要求和软件开发人员相同的技术技能外,还应该熟悉测试理论和测试方法,尽可能做到总是站在使用者的角度观察和思考问题。

软件项目实施人员 是针对工程性质的软件项目必需的人员配置。软件项目实施人员负责软件系统安装配置、系统割接、运行期间的维护工作。

软件项目开始前,软件项目成员必需明确自己所在的岗位和需要承担的责任。软件项目组织的过程中,必需遵循的一个原则是软件项目组尽量小型化、灵敏化,保证沟通顺畅和高效,通常一个小型软件项目组的成员不超过 20 人。对大型软件项目,应该进行更详细、精确的拆分,保证一个软件项目经理管辖的成员不超过 20 人。