□文/陈欣欣
(石家庄经济学院 河北·石家庄)
目前,国内绝大多数软件类企业正或多或少地承受着“项目黑洞”的痛楚:项目无法按期完成、项目合作方的工作难以协调、用户需求经常变动、工作质量难以保证。从项目的执行和控制能力看,有效的项目管理成为改善项目执行的现状、提高核心竞争力的迫切要求。因此,如何对企业、项目、资源实施科学的管理,加强团队能力,实现软件企业的生产规模化、规范化、国际化,是当前我国软件类企业面临的最大挑战。
(一)项目管理的概念。项目管理是通过项目经理和项目组织的努力,运用系统理论和方法对组织的资源进行计划、组织、协调和控制,旨在实现项目的特定目标的管理方法体系。进一步而言,项目管理就是将完成项目所需的资源在适当的时候按适当的量进行合理分配,并且力求这些资源的最优利用,通过项目活动控制,保证项目在规定时间和规定预算内完成规定质量的目标。
从项目管理的概念出发,软件项目管理是根据管理科学理论,结合软件产品开发的实际,为了使软件项目能够按照预定的成本、进度、质量顺利完成,从而对成本、人员、进度、质量、风险和文档等进行分析、管理和控制的一系列活动。项目管理的目标是高质量地按时在预算内完成全部项目范围。成功的软件项目管理能够产生优质的软件产品,因此优质的软件项目管理能够使得企业拥有满意的客户。软件项目管理的目标一般包括以下几项:如期完成项目;保证项目质量;用户需求得到确认和实现;妥善处理用户的需求变动;项目成本控制在计划之内;保持对项目进度的跟踪和控制;顺利实施系统配置管理;保证对第三方产品或服务的控制和协作。
(二)项目管理的内容。项目管理的基本内容包括:第一,项目定义。确定项目的目标、范围和约束;第二,项目计划。项目的各种预先安排(进度、成本费用、劳动力、设备资源等);第三,项目执行。包括人员组织、资源识别、下达任务、执行任务;第四,项目控制。保证项目按计划执行;第五,项目评价。评价项目本身的以及评价项目组成员的价值。其中,项目计划、跟踪、控制是项目管理中不可分割的三个重要环节,要进行项目跟踪,必须先了解控制;要建立控制,又必须先弄清受控对象、内容以及控制如何实现,这又与计划有关。计划-跟踪-控制在项目管理系统中是一个循环,是一个系统过程,是一个以信息为共同核心的相互依赖、相互制约的互动过程。
早在20世纪七十年代中期,美国国防部就组织力量研究软件项目失败的原因,发现在失败的软件项目中,70%是由于管理不善所造成的,因而认为项目管理影响全局,并掀起了研究软件项目管理的热潮。20年后,根据美国三份经典研究报告,这一状况并未得到转变:软件开发与维护仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付。其中一份报告指出:在17个影响软件项目成败的主要因素中,与项目管理直接有关的有6个(软件度量、工作量估计、项目规划、进展报告、需求变化、风险管理),间接有关的有3个(系统架构、开发方法、配置管理)。
目前,软件项目管理中,存在的问题主要为以下一些方面,而这些问题基本上是国内绝大多数软件项目管理中存在的通病:
(一)软件质量不可控。与具体软件开发人员的个人能力直接相关。开发人员如果技术精湛,则开发出来的软件可能是精品软件;开发人员如果技术低微,则开发出来的软件可能是垃圾软件。而且极易存在一个技术骨干离职,则技术就被带走的现象(尤其对于小企业,影响更为明显),从而导致小则项目无法延续,大则企业可能面临倒闭。
(二)开发过程中,因人员调动,没有留下有用文档,致使接手者无法继续开展工作。文档还容易造成恶性循环,延续下去,对项目后续开展带来极大危害。没有规范的文档管理的项目,注定是一个失败的项目。
(三)软件开发过程由于缺乏有效的项目管理,处于一种混沌的状态。软件开发的性质,使得项目问题缺乏可视性,导致许多问题难以暴露出来,因此许多问题直到给用户实施时才显现出来,其后果是直接影响了客户的满意度。
(四)项目管理过程中,对于风险的预防措施和缓冲资源没有进行合理的规划和事先的预测。
(五)项目控制中,对于团队人员之间的沟通和交流、与客户的经常沟通和意见交换不够重视,觉得是浪费时间。
(六)需求的不断变化和更新,使得项目逐步失控。需求方可能由于相关技术或知识的缺乏,对于自己的需求经常是走一步算一步,不断提出新的需求和更改需求。但对于这些需求是否合理、影响范围有多大、是否应该变更等问题,没有恰当的人来控制,因而对需求缺乏控制必然导致项目的延期、甚至失败。
针对以上问题,给出以下对策:
(一)制定周密的项目计划。所有资源和工作都是按照项目计划进行分配和执行的,管理人员应该依据项目计划跟踪和监督项目进展情况,所以制定合理、准确、细致的项目计划是进行项目管理的基础。有效的计划有利于增强项目组成员的紧迫感,减少互相的等待时间。
(二)提高计划执行的准确率。树立全面、系统观点,正确评价和改善项目管理系统。项目管理评价进程的一个误区是将评价的重点放在人的方面,而忽视了很多项目问题在于管理系统本身这个事实。人员的敬业谨慎和能力不够只占项目失败原因的10%左右,90%的原因来自于项目管理系统的架构与流程等方面。建立基于统计分析的评价系统,不仅有助于改进项目管理系统,更有助于员工有意识地去收集数据和对数据进行分析,以便提高项目计划的准确度。
(三)合理组织人力资源。人是决定软件开发质量的最关键、最活跃又最难以控制的因素。要想充分组织和调度人力资源,必须做到:合理配备,各尽其才;落实责任,责权均衡;及时交流,培养团队精神;强化专业分工,实现分类管理,实现人力资源的动态调度。
(四)明确的定义用户需求,明晰项目价值和目标。实施软件项目管理,最终目标需要保证用户满意。正确理解用户需求的多样性,用户的需求包含多个方面,其中既有对项目成果特性的要求,又有用户在感情等方面的需求。可以分为三类:第一类是如果缺少了就不能实现项目基本目的的成果特征;第二类是用户希望得到的能够丰富项目成果的东西;第三类是对用户和项目而言属于多多益善的东西。对于用户的重要性而言,这三类需求是递减的。
(五)加强项目过程控制。项目管理的指导思想不仅关注项目的成果,还要关注项目的过程。项目管理是一种典型的系统管理,也是一种典型的变化管理。项目过程控制的目标在于对项目成果的可预见、项目资源的可调度、项目问题的可追溯、项目组绩效的可评价等几个方面。项目经理和高层管理者必须在对项目各种活动的变动全面了解的基础上,才能确定工作的焦点。
(六)良好的信息沟通。沟通是监督、控制的基础,是推动项目执行的基础,更是减少冲突的良方。项目经理应该周期性地向机构管理层和用户报告项目的技术、进度、费用、质量方面的状况,与用户建立和维持友好和开放的关系,为项目沟通积极创造环境,保证会议的高效率。
进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明企业的软件生产越趋向于成熟,企业越能稳定发展。管理是影响软件研发项目全局的因素,而技术只影响局部。在关系到软件项目成功与否的众多因素中,软件度量、工作量估计、项目规划、进度控制、需求变化和风险管理等都是与项目管理直接相关的因素。项目管理是软件开发成败的关键。从系统工程的观点看,项目管理普遍涉及到多个目标的要求,一个优秀的项目管理人员,应该注重实践中的分析问题能力,结合理论知识,形成一套行之有效的管理方法,并通过实践来检验它的科学性。正如我们通常所说的,项目管理是一门科学,更是一门艺术。
[1]Php Met zger,John Boddi e.软件项目管理——过程控制与人员管理[M].北京:电子工业出版社,2002.
[2]Larry L.Const ant i ne.超越混沌——有效管理软件开发项目[M].北京:电子工业出版社,2005.
[3]胡英培.软件项目管理探讨[J].软件导刊,2007.7.
[4]林海燕.项目管理在软件开发项目中的应用[J].计算机系统应用,2003.
[5]黄叔武,张晓军.软件项目计划管理[J].计算机系统应用,2010.10.
[6]王景山.研发项目组合管理[J].项目管理,2009.5.