大型软件项目中的组织环境
 

2009-12-04 作者:陈和兰 龚少文 来源:网络

 

[摘要]:众所皆知,项目管理的三大主要任务就是:计划、组织和控制。在这三大任务中,组织是其中的核心和钮带。所以要使一个项目获得成功,良好、高效的组织环境是成功的第一要素。据统计,在我们软件开发项目中,项目失败有一个很主要的原因就是由于项目组织结构设计不合理,责任分工不明确,组织运作效率不高等造成的。然而在大型的软件开发项目中,要如何才能设计和营造一个良好的组织环境呢?是每一位项目经理和项目管理人员必须首先要解决的问题。

[关键字]:PM(项目经理)、CSA(软件架构师)、SA(设计师)、TestManager(测试经理)、Tester(测试员)、Developer(程序员)、Customer(客户代表)、Consultant(咨询顾问)

一、项目组织概述

项目组织是保证项目正常实施的组织保证体系,就项目这种一次性任务而言,项目组织建设包括从组织设计、组织运行、组织更新到组织终结这样一个生命周期。项目管理要在有限的时间、空间和预算范围内将大量物资、设备和人力组织在一起,按计划实施项目目标,必须建立合理的项目组织。

1、项目组织结构设置原则

(1)目的性原则

项目组织机构设置的根本目的,是为了产生组织功能实现项目目标。从这一根本目的出发,就应因目标设事,因事设岗,因职责定权力。

(2)精于高效

大多数项目组织是一个临时性组织,项目结束后就要解散,因此,项目组织应精干高效,力求一专多能,一人多职,应着眼于使用和学习锻炼相结合,以提高人员素质。

(3)项目组织与企业组织一体化原则

项目组织往往是企业组织的有机组成部分,企业是它的母体,项目组织是由企业组建的,项目管理人员来自企业,项目组织解体后,其人员仍回企业,所以项目的组织形式与企业的组织形式密切有关。

2、常见的项目组织结构类型有:

(1)职能组织型:

该结构呈金字塔形,高层管理者位于金字塔的顶部,中层和底层管理者则沿着塔身向下分布。公司的经营活动按照设计、生产、营销和财务等职能划分成部门;一个项目可以作为公司中某个职能部门的一部分,这个部门应该是对项目的实施最有帮助或最有可能使项目成功的部门,例如开发一个新产品项目可以被安排在技术部门的下面,直接由技术部门经理负责。

(2) 矩阵组织型:

现代大型项目中应用最广泛的新型组织形式,它是职能组织型和项目组织型的结合,将职能组织型的纵向优势和项目组织型的横向优势有效结合起来。一个矩阵组织型由垂直的职能部门和水平的不同项目组结合而成一个矩阵,把集权和分权结合起来,从而加强了各职能部门同各项目之间的协作关系。

(3) 项目组织型:

在这种组织形式中,每个项目就如同一个微型公司那样运作,项目组的成员来自不同的部门,完成每个项目所需的资源完全分配给这个项目,专门为该项目服务。这种组织在大型软件开发中应用较多。

下面,我们将三种常见组织类型进行一个全面比较(见表一),以便更好地根据自己企业和项目的特点,选择和设计项目的组织结构。

3、项目组织结构类型的选择

前面介绍的是项目组织经常采用的几种组织结构形式,除了这几种常见的组织结构之外,还可能存在其他组织结构形式。通过前面的介绍,大家可以看出,每一种组织结构形式都有其优点、缺点和适用条件,没有一种万能的,最好的组织结构形式。对不同的项目,应根据项目具体目标、任务条件、项目环境等因素进行分析、比较,设计或选择最合适的组织结构形式。一般来说,部门控制式(职能式)的组织结构适用于项目规模小、专业面窄、以技术为重点的项目;如果一个组织经常有多个类似的、大型的、重要的、复杂的项目,应采用项目式的组织结构;如果一个组织经常有多个内容差别较大、技术复杂、要求利用多个职能部门资源时,比较适合选择矩阵式组织结构。下图为影响项目组织类型选择的因素对照表。

二、大型软件项目的组织类型选择

1、大型软件项目的特点

对于大型应用软件开发项目,如中国移动的BI系统(见附件一),中国电信的BSS系统,中国移动的BOSS系统、中国联通的运营支撑系统等,尤其是中国移动BI项目。都有几个非常明显的特征:

(1)、需求不确定性,客户早期对项目的认知比较低,不同用户对项目目标有不同意见,对项目的人员投入较少。

(2)、应用目前国际先进新技术多:数据仓库技术(DataWarehouse)、多维分析(OnLine Analysis Process)、数据挖掘(Data Mining)、系统稳定性要求高。

(3)、系统结构复杂、工作量大、风险大、项目周期长、投资效益周期长。

(4)、项目规模大,涉及的项目干系人多,如湖北移动经营分析系统项目相关的项目有:湖北移动经营分析系统与BOSS系统接口项目,新疆移动BI工程项目、青海移动BI工程项目,湖北移动BOSS扩容改造项目,湖北移动经营分析系统系统集成项目,硬件厂商,中间件提供商,客户各部门单位。

(5)、项目组人数多且流动性大,新员工较多,技术风险大。

(6)、项目时间紧迫。

2、大型软件项目组织类型的选择

根据自身项目的特点,在大型软件开发项目中一般都有用户需求不明确,技术日新月异,时间紧迫(一般是限定工期)、复杂度高等特点。要完成项目的目标。这就要求项目组织要能高效运作,对外部需求要能做出迅速响应,对关健问题要能准确决策。所以项目型组织是优先选择。

项目型组织示意图如下:

三、大型软件项目的组织设计

项目组织类型选择完了以后,只能说是从理论上选定了一个组织的方向,但并不能马上生硬的运用到项目中。这里就需要对项目组织进行合理的设计了。特别对于参与人数和参与方都比较多的项目,项目组织设计的优劣,直接影响到项目的进度、费用和质量。乃至项目的成功与否。

在大型软件项目组织设计中,例如,在湖北移动BI项目组织设计中,我们充分结合了该项目的管理特点(详见附件二)。基于此我们要考虑以下几个原则:

1、组织结构扁平化原则,以利于项目组内的相互沟通;

2、组织划分要专业化原则,以利于技术问题的解决;

3、组织设计灵活性原则,以利于人员的正常流动;

3、整体组织与内部组织相结合原则,以利于统筹兼顾。

在大型应用软件开发项目组织设计中,我们首先要从整体考虑项目组织的组成,然后再重点考虑项目内部组织的结构。从整体上考虑,可分分为若干个按项目小组,如:用户代表组,管理组、开发组、质量保证组、支持组等。如下图所示:

*用户组中一般包括:用户方的项目经理、用户方技术工程师、最终使用用户、咨询顾问等。如下图所示:

图四:用户组角色组成图

说明:在较大型的软件开发项目中,用户一般都会聘请一些有经验的咨询顾问,以提供项目指导。咨询顾问包括技术顾问和管理顾问。如在2002年福建移动和江苏移动的BOSS项目中,就请了HP作为该项目的咨询顾问。

* 管理组中一般包括:高层经理(或项目总监)、项目经理、项目管理人员等。如下图如示:

例如:2003年,中国移动公司的BI项目中,开发组中的小组设置就是在架构师的统一规划下,编码实现分为四个开发小组:数据仓库小组、联机分析小组、数据挖掘小组、元数据开发小组。

* 质量保证组一般包括:测试经理、QA经理、测试员等。如下图如示:

那么,从项目实际运作的角度来考虑,项目组织更多指项目实施方的组织,在项目实施方组织结构必需包含项目组内部的管理层次和工作的汇报关系等信息,即我们通常所说的项目内部组织结构图。如下图所示:

图九:项目内部组织结构图

项目组织结构设计完成后,相当于人的一个基本骨架基本形成。紧接着还必须为项目组织中各种角色的岗位职责进行清晰描述,这样才能构成一个完整的机体。在软件项目中,主要角色和职责描述如下:

高层经理:

  • 审核批准项目实施计划;
  • 负责项目实施过程中的重大事件的决策;
  • 根据项目过程中的进度、质量、技术、资源、风险等实行宏观监控;
  • 协调项目组织中各相关方的工作关系。

项目经理:

  • 根据项目进展及工作要求整合工作计划,并监督实施,控制进度;
  • 协调项目组内人员的分工合作,资源分配;
  • 向公司汇报项目状况,提出建议及改进措施;
  • 与用户进行有效的沟通协调,并争取关健用户的支持。

软件架构师:

  • 负责用户需求汇总和分析;
  • 负责系统总体设计;
  • 指导设计师的详细设计;
  • 配合系统的集成测试。

测试小组:

  • 负责计划和实施对软件的单独系统测试,以确定其软件产品是否满足其需求;

质量小组:

  • 负责计划和实施项目的质量保证活动,以确保软件开发活动遵循软件过程规程和标准。

配置经理:

  • 负责计划、协调和实施项目的正规配置管理活动。

系统工程师:

  • 负责说明系统需求,分配系统需求到硬件、软件和其他部件,规格说明硬件、软件和其他部件之间的接口,并监督这些部件的设计和开发,以确保符合规格。

客户代表:

  • 负责项目原始需求的收集;
  • 参与需求评审和需求变更控制;
  • 负责系统确认测试的实施。

注:在中型、小型的软件项目组织中,部分角色可以兼任,但是SQA和系统测试小组应保持其独立运行。SQA组(质量小组)可越过项目经理向高层经理直接进行报告;测试小组也可不依赖软件开发人员,来计划和准备系统验收测试用例以及测试规程。另外,角色种类还要依据具体项目而定,例如在有的软件开发项目中,还有设置有产品经理角色。

四、软件项目生命周期及参与角色

软件开发项目中,有几种常见的生命周期模型,如瀑布模型、增量模型,螺旋模型、原型开发、倒V模型等。不同生命周期的应用要根据项目所处的环境而定。在本文中,将以倒V模型为例进行说明。

倒V模型按软件生命周期共分为10个阶段,分别为:需求搜集;需求分析;系统分析;概要设计;详细设计;编码和单元测试;组件测试;集成测试;系统测试;验收。示例图如下:

图十:软件生命周期-倒V型图

从上图中可以出倒V型图中的左边活务与右边活务是有着一种对应关系,也即左边的输出为右边的输入条件。从投入产出角度来分析,左边为投入,右边为产出。整个过程就构成了一个完整的生命周期模型图。

项目组织结构的设置,首先依赖于软件项目各阶段的活动类型及参与人员。下面就将各阶段的主要活动,及所需角色归类如下:

表二:软件开发周期与角色对照表

从上面的表格中,我们可以清晰的看出,软件开发中不同角色分工是不一样的。对于一个软件开发项目来说,前四个阶段是至关重要的,所以总体架构师CSA一般都要参加,在第四、五、六阶段一般程序员参加较多,在后面测试阶段测试员参加较多。从整体来看PM和CSA是项目中的两个重要角色,在项目前和项目收尾时都有参加。这也正体现了软件开发过程中开头和收尾是两个控制重点。

另外,项目经理要要按不同阶段适时运用人员,恰当掌握用人标准。一般来说,软件项目不同阶段不同层次技术人员的参与情况是不一样的。下图是典型的软件开发人员参与情况曲线:

五、项目经理(PM)与总体架构师(CSA)的职责区别

作为软件项目管理中的两个重要角色PM与CSA两者缺一不可。从管理上应该是CSA服从PM的领导,CSA应该给PM提供技术支持。从技术上来说,CSA是项目的总负责,同时CSA也行使部分管理权力,如对开发小组长的管理。CSA可以理解为技术经理的角色。但PM与CSA在软件项目实施过程当中到底分工如何呢?我们将用下面一个表格进行说明。

六、大型软件项目的公司组织体系和项目组织建设

(一)、公司项目管理组织体系

任何项目组织的有效实施均离不开公司组织的支持体系。就湖北移动BI项目的组织建设和管理,与公司的组织体系的设置相关紧密。我公司的项目管理组织体系为:

项目管理部以分管领导为核心,项目管理部经理及项目经理、项目信息管理员、项目成本管理员组成。

A、具体组织支持体系分工与职责如下:

1.项目分管领导负责项目经理任命,项目基准计划变更的审批。

2.项目管理部经理

2.1执行行业公司内各项目的具体工作:由销售经理发起销售项目的立项,合同签订后经项目分管领导批示实施项目立项,确定项目经理的项目立项工作并报送公司运营管理中心审批备案;

2.2监督项目经理、项目管理部成员的日常各项工作;(审核周报、月报等工作,及时协调项目实施出现的问题,发现异常情况要及时处理并向分管领导汇报)

2.3对外沟通工作,建立和保持对外接口,上、下级信息承上启下沟通;

2.4员工沟通工作,要深入项目,同项目成员交流,了解员工心态,做好项目成员的思想工作,帮助解答员工在工作上的困惑和难题,营造健康积极工作氛围;

2.5项目管理中的临时事件,对工作中非程序化的突发必要工作。

3.项目经理

3.1项目经理在接受该项目7日内,编写项目信息即项目章程、项目管理实施规范细则,送信息管理接口人员抄送有关人员,并提请评审。

3.2项目经理在完成项目章程、项目管理实施规范细则之后15日内(是在评审通过后的15日内),编写项目实施计划(整个项目的里程碑计划及第一阶段的详细计划)和预算计划,(实施计划和预算计划均要评审)提交给公司项目管理接口人员抄送有关人员。(项目经理要将各阶段产生的文档提交评审,如:概要设计、需求文档、测试计划等,在此要明确哪类项目应提交哪些文档进行评审,所有评审要形成文档,参与者要签字并签署意见。)

3.3在项目执行过程中,项目经理按时提交项目进展周报(统一模板编写)、项目月工作总结、项目理程碑总结报告,及项目问题管理报告、风险管理报告等送项目管理部接口人员。

3.4 项目经理参加项目的绩效评估。

3.5 对于公司内部的需求协助一个工作日内必须给予反馈。

4.项目信息管理员

4.1 进度信息管理

4.1.1每周根据项目周报收集项目进度信息,汇总项目进度形成周管理汇报(可用甘特图);

4.1.2每月根据项目进度计划及实际进度情况提交月项目进度报告;

4.1.3根据项目进度计划、项目里程碑总结报告提供项目阶段进度考核数据。

4.1.4对项目经理提供的信息按时、完整性等情况在项目员工绩效中评分。

4.2 文档管理

4.2.1对项目在不同阶段所产生文档进行归档,及时放入公司KM库。

4.2.2公司信息管理系统对信息中心接口及系统维护工作。

5.项目成本管理员

5.1每周根据项目周报信息统计项目人力资源成本及实际费用;

5.2每月根据周人力资源成本及实际费用汇总提交项目月人力资源成本实际费用情况报告;

5.3根据项目资源计划、项目预算及实际人力资源成本、费用情况,提供项目阶段成本考核数据。

5.4对项目经理提供的信息及时、完整等情况在项目员工绩效中评分。

完整的健全的公司项目管理组织体系,除了体现通畅的指挥载体之外,更重要的是明晰了接口关系和沟通通路,是各项目组织设计的基础。

(二)大型软件项目组织建设

在软件开发项目中,项目经理不但要有计划、领导、沟通、交际、应变的能力,还必须具备较强的组织能力。组织,顾名思义就是将来自不同部门的人员有效的组织起来,为实现一个共同的目标而努力。但如何将项目成员组织起来,如何发挥他们的工作效率,如何增强团队的凝聚力等,是项目经理必须考虑的问题。下面提几点建议:

1、 “集中作战室”原则

“集中作战室”就是将项目组中最主要的成员全部或大部分集中到同一工作地点,例如安排项目成员在同一座办公楼或同一间办公室,以增强团队的能力。虽然现在通信技术和现代化办公设施已先进到可以远程办公,管理层也完全可以遥控管理,但通常项目组人员的集中工作更容易使团队成员全身心的投入到项目中来,比分散工作效率更高。另外,作为一个大型的软件开发项目,里面涉及的人员很多、相互之间的沟通信息非常之大,而且要及时准确表达信息的最有效方法,就是面对面的沟通。所以在大型软件开发项目中,选择“集中作战室”是非常好的一种方法。另外,还可在作战室显著的位置挂上项目的“作战图”-项目进度计划,并且定期对计划进行更新,这样不仅能让所有成员都非常清楚当前项目所处的状态;而且也有利于让管理者及时发现项目中的问题,并纠正偏差。

2、 建立奖励和表扬体系

在项目中,必须将员工的工作绩效与奖励紧密联系起来。以使得项目团队成员将自己的期望和项目的要求紧密结合,以达到团队成员激励的目的。大家多劳多得、赏罚分明。

这样有利于团队成员朝着一种积极向上方向发展,而且有利于在项目中形成优胜劣汰、竞争与共享的氛围。

3、 项目团队活动建设

在软件项目组中,由于需求不明确、技术日新月异、项目工期紧等客观原因,导致项目组每个成员压力都很大,而且要经常加班加点的工作。在这种高压环境下工作久了,很容易给项目组成员一种压抑感,甚至产生尽早脱离项目组的想法。在这种情况下,项目经理应多与项目组成员进行面谈,听取他们在工作中存在的困难和困惹,帮助他们减轻思想压力;并且定期组织一些业余活动。在关键里程碑完成的时候,进行总结和庆祝,对项目成员的士气起到很大的鼓舞作用,对下一阶段工作有序的开展也提供帮助。如组织野外活动、卡拉OK、项目组聚餐,组织与客户共同进行体育比赛等。这样不仅有利于大家放松紧张的心情;而且有利于小组之间的相互理解和支持,有利于增强团队的凝聚力和战斗力。

结束语:

项目的组织是实施项目管理的一个基本手段,也是开展项目管理工作的基础。在项目实战中,没有千篇一律的项目组织形式,项目管理者必须针对具体的项目特点和实施要求,以及实施阶段选择合适的组织结构,发挥积极的组织能力是至关重要。另外,还要清晰的设计出组织中各种角色的岗位职责,以便每个团队成员都能在其岗、尽其才。并通过高效发挥团队运作的能量,最终实现项目的目标。

附件一:湖北移动BI项目背景介绍

为适应日趋激烈的市场竞争环境,提升中国移动公司的核心竞争力,应充分利用业务支撑系统产生的大量宝贵的数据资源,尽快建立移动经营分析系统,实现对信息的智能化加工和处理,为市场经营工作提供及时、准确、科学的决策依据。

中国移动经营分析系统利用数据仓库、联机分析、数据挖掘技术对客户、帐务、计费、网管、客服等业务数据进行多层次、多角度、多种方式的统计分析和挖掘,揭示客户、业务的内在规律和发展趋势,形成极具价值的战略决策信息,使决策者能始终把握大局,从容应对纷繁复杂、快速多变的通信市场。

我公司中标湖北移动、青海移动、新疆移动的经营分析系统软件集成商。为了能够签订并履行经营分析系统的合同,占领移动BI市场,迫切需要一个比较成熟的经营分析系统的核心产品和一批能够开展软件开发,以及工程实施的技术人才和业务人才。在如此大型项目的实施中,项目组织的构建无疑将是项目得以顺利达成目标的保障。

经营分析系统作为电信运营商的核心支撑系统之一,我公司十分需要数据仓库应用软件产品积累方面有个新的突破,能够为电信运营商提供全面的IT支撑。

为此,我们设定了项目目标如下:

在2003年12月31日之前,建立一个经营分析系统的通用运行平台,包含完善的数据仓库管理、完善的报表管理、完善的KPI指标管理,业务主题多维分析的管理。

以湖北移动的业务需求作为依据,进行软件产品的开发和演进,为湖北移动、青海移动、新疆移动的工程服务提供核心移动经营分析系统产品。

积累产品研发的项目管理经验,培养高效的项目管理团队和优秀的项目经理、产品经理、测试经理等。

经过项目成员的共同努力,在2003年10月25日,系统正式上线,进入试用阶段。经过2个月的试运行和不断的优化和完善,于2003年12月25日项目基本上达到预期目标,获得客户的认可和表扬,成功的完成了项目的建设。

附件二:湖北移动BI项目管理的特点

1.项目的组织结构采用甲方(客户)、乙方(我公司)共同组建项目组的方式进行,甲方派出一个项目经理,乙方也任命一个项目经理,双方通过项目经理来正式沟通和协调来制定项目计划,并解决项目执行过程的问题。

2.湖北移动的项目相关人对项目的组织结构有不同意见,对矩阵式的组织结构理解不够,没有给甲方项目经理充分授权;乙方对项目管理的理解有比较深的认识,委任的项目经理具有PMP认证,对项目管理有深刻理解和丰富的经验。

3.该项目有较多的相关项目,都对项目的建设产生很大的影响,需要这些相关项目的项目经理经常的沟通,减少意见的分歧,控制各种项目的质量和进度。

4.项目对范围的控制:通过2个多月的需求调研,并结合中国移动集团公司的相关规范,编写了《湖北移动经营分析系统需求规格说明书》,该文档详细描述了项目的功能范围、接口约定、性能要求等。

5.项目计划的制定:项目组根据需求规格说明书,通过技术核心小组的充分讨论,采用头脑风暴法,对项目进行详细工作分解结构,并对各个工作包工作量采用PERT评审技术进行估计。然后根据工作包的关联关系和项目的人员情况,进行进度计划的制定。项目的里程碑计划如下:

  • 启动阶段(2003/2/25,项目启动会召开);
  • 需求阶段(2003/2-2003/5,需求确认会);
  • 开发阶段(2003/5-2003/9,应用软件开发);
  • 系统集成阶段(2003/6-2003/8,系统平台搭建);
  • 工程实施阶段(2003/8-2003/9,数据仓库平台搭建,应用软件实施和联调);
  • 试运行阶段(2003/9/25-2003/12,系统移交、培训、试运行和维护);
  • 验收阶段(2004/1-2004/2,系统初验,系统维护);
  • 优化和完善阶段(2004/1-2004/3,不断推出高级应用,优化和完善报表、客户流失预测、客户分群等应用)。

6.项目的跟踪和控制:项目跟踪采用“双周滚动计划”方法,即项目每周都对前一周的工作进行总结,并对下2周的工作计划进行细化,并通过项目周报进行信息发布。

7.项目风险和问题的管理:项目每周对项目的旧风险进行重新评估,对新风险进行标识和量化,通过风险管理列表进行跟踪和管理,应用TOP法原则重点关注项目的前7个风险。对所有在项目执行过程中遇到的问题也进行跟踪和管理,并通过讨论,分析问题的解决方案,指定问题的解决人,明确解决时限,并对问题的解决情况进行跟踪和管理。定期发布风险和问题的解决情况给项目相关人。

8.项目的沟通:项目每周召开项目周例会,并通过周报对项目的进度、质量、成本、问题和风险进行信息发布。项目每月进行项目小结,并发布项目总结报告。项目在每个里程碑结束时,对阶段里程碑进行总结和评审,跟踪前一阶段的工作情况对下一里程碑的工作量和进度进行重新的评估,细化和调整下一里程碑的工作计划,并把结果发布给项目相关人。

参考文献:

  • HP资深咨询师蔡强 《软件架构师培训》 HP提供的软件架构师培训 2002/10
  • http://www.project.net.cn/dynamic/index.htm  
  • http://info.news.sinobnet.com/HTML/001/002/009/006/5720.htm  中国慧聪网 
  • http://www.e-works.net.cn/ewkArticles/Category112/Article7673.htm 中国制造业信息化门户网站 刘易勇
火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。

资源网站: UML软件工程组织