组织的角色
一个角色是一项已定义的职责,它可能安排给一个或多个个人。在关键实践中常用以下
角色的描述:
经理(manager)
经理履行的任务包括:对在经理职责范围内进行作业和活动的个
人提供技术和管理方面的指导并进行控制。经理的传统职能包括
在其职责范围内进行策划、资源分配、组织、指导和控制。
|
高级经理(senior manager)
高级经理在组织的足够高的层次上履行管理任务,主要关注组织
的长期生存力,而不短期原项目和合同关心的事项及压力。一般
讲,一个高级工程经理负责多个项目。高级经理也提供和保护用
于软件过程长期改进的资源(例如,软件工程过程组)。
高级管理者,当用在
CMM
中时,能表示满足上述描述的任何经
理,直到且包括整个组织的头。当用在关键实践中,术语高级管
理者应该按关键过程区域及考虑中的项目和组织的上下文加以解
释。为实现关键过程区域的目标必须完成一些十分重要的领导和
监督任务:这里的意图就是要特别包括那些履行这些十分重要的
任务所必须的高级经理。
|
项目经理(Project manager)
项目经理履行的任务是对整个项目的总体业务负责;项目经理是
指导、控制、管理和调整项目进行构造软件或硬件嫩件系统工作
的个人,项目经理是最终向顾客负责的个人。
在面向项目的组织机构中,工作在同一个项目的大多数人应向项
目经理报告,尽管某些科目可能有一个矩阵式的报告关系。而在
矩阵式的组织机构中,可能仅业务职务只向项目经理报告,而工
程组则有一个矩阵式的报告关系。
|
项目软件经理(Project softWare manager)
项目软件经理履行的任务是对项目的全部软件活动总负责。项目
件经理是项目经理按软件约定与其打交道的个人,且是控制一
个项目的所有软件资源的个人。
一个项目的软件工程应向项目软件经理报告,尽管某些活动——
例如工具开发——可以有一个矩阵式的报告关系。
在大型项目中,项目软件经理多半是二线、三线或四线经理。在
小型项目或只有单个项目的部门中,项目软件经理可能是一线软
件经理或可能在更高层次。
|
一线软件经理(Firat-lineSoftware manager)
一线软件经理履行的任务是对由软件工程师和其它有关人员组成
的一个机构单位(例如,一个部门或者项目组)的人员配置和活
动负直接管理责任(包括提供技术方向及对人员和薪金进行管理
的功能)。
|
软件作业领导(Software Task leader)
一个软件作业领导履行的任务是充当特定作业的技术组的领导
者,负有技术责任并向工作在该作业的职员提供技术方向。
软件作业领导通常和其它工作在该作业的人员一样向同一个一线
软件经理报告。
|
职员、软件工程职员、个人(Staff,software staff,individuals)
在
CMM
的不同的关键实践中描述了不同的技术角色,在
CMM
中采
用几个术语去指示履行这些不同技术任务的个人。职员是包括作
业领导的一些个人,他们负责完成一项指派的功能,例如软件开
发或软件配置管理,但他们不是经理。
软件工程职员是软件技术人员(例如分析员、程序员和工程师),
包括软件作业领导,他们进行项目的软件开发和维护活动,但他
们不是经理。术语“个人”,当用在关键实践中时,由该词出现
处的上下文未定性和限定(例如参与管理软件子合同的个人)。
|
对于其它的工程组,例如系统工程组或系统测试组,也能对其角色作了类似的分解。
在一个具体的项目或组织中,在这些角色和个人之间不必—一对应。一个人能完成多个
角色,或者一个角色可由若干个人承担。
例如,对于一个小的纯软件项目,一个人可以承担多到六个角色:系统工程的一线经理,
项目的系统工种经理,软件的一线经理、项目的软件经理、项目经理和软件配置管理经理。
对于略大一点的项目,一个人可以担当:系统工程的一线经理、项目的系统工种经理和
项目经理,而另一个人可以既是一线软件经理又是项目的软件经理。这两位经理可以在同一个二线机构中,也可以在不同的二线机构中。
对于大项目,许多岗位,特别是管理岗位,多半由不同的个人承担。