程序小组的构成

来源:互联网 发布:怎么编程判断题 编辑:程序博客网 时间:2024/04/19 20:41

程序小组的构成

程序小组指软件开发过程中人员的集合,它是软件生命周期内一定时间段内软件开发的所有参与者的集合。所包括的角色有:

项目经理(Leader

市场人员(Product Descriptor

系统分析员(System Analysiser

软件/硬件设计师(Software/Hardware Desinger

测试人员(Tester

用户(Customer

软件开发人员组织结构举例

文献中能找到的人员组织主要有两类,一是协作式组织,另一种是领导式组织。

协作式组织特点是有多个地位相当的开发团队,例如软件组,测试组和质量保证组,他们相互协助,又相互制约,同时团队有一定的自主权,在团队内部事务包括设计和工作方式上相对灵活。领导式组织的特点是软件开发的具体事务都由一个人或几个人共同形成的领导者负责。其它团队完成领导者的任务。从这个角度上说协作和领导是相辅相成的,不存在绝对的协作式组织和绝对的领导式组织。划分这两类组织结构的标准是看在软件开发过程中是协作占主要地位,还是领导占主要地位。

领导式组织的典型是“外科手术式”团队。团队由一个主要设计师(Primary Designer)担任领导者(Leader),一个次要设计师做为Leader的备份和参谋,一个助手负责日常管理事务,一到二个资料员和若干辅助程序员构成。它的特点是权责明确,效率高。缺点是不利于发挥个人的创造力,对Leader能力的要求很高。

另一种常见的领导式组织是“分层管理”。团队由一个总负责人领导,团队由多个由高级程序员领导的小组构成。这种结构的团队,常按职能划分小组,比如软件组,硬件组;也有按事务划分,形成模块开发小组。小组间协作由总负责人协调。

协作式组织的典型是“自由软件”开发模式。由于自由软件的开发者是事先不能确定的,所以领导者的职能(分配任务)也就不存在。自由软件中的领导者(Maintainer)实际上只是一个管理员和强力的程序员。他的地位和职能可能在协作过程上发生变化。自由软件的开发模式看似混乱,毫无章法,但是常常能产生十分高效的开发团队。这也是软件开发人员互相协作,互相协调步伐的必然产物。这种组织模式的缺点很明显。软件开发的风险很高。团队能否有效的工作依赖于团队自我调节的能力,这种调节在时间和成本上几乎都不可预见。它的优点是能充分发挥软件开发人员的创造力,软件团队比较有活力。

有领导干预的协作组织常见于商业的开发团队,它是分层管理的一种变体。在这里,领导者的职责减少,减少的这一部分职责由分组之间的讨论和协调完成。或者没有总领导者,完全由小组之间的协调来决策。可以说它的是在领导式组织基础上的协作,但协作是主导的。
原创粉丝点击