一、研究背景
在这几年的软件项目管理中,一些失败的软件项目给我留下了深刻的印象。后来,我们结合项目管理的知识(参加了信产部《集成系统项目经理》的培训及美国PMP项目管理的学习),开始反思,吸取教训,总结经验,并根据公司的实际情况,结合PMP的五大过程九个知识领域及CMMI的相关要求适当裁减进行项目管理,顺利完成了上海浦东国际机场、青岛流亭国际机场、武汉天河国际机场等国内各大中型机场安检信息管理系统的实施,为2008北京奥运的成功举办提供安全保障。因此,本文主要讨论在软件项目的项目管理问题。
二、项目管理的两个问题
如果用两个字概括当前社会的特点,那就是“变化”,而这种变化在信息产业中体现得尤为突出,技术创新速度越来越快,用户需求与市场不断变化,人员流动也大大加快。在这种环境下,企业需要应对的变化以及由此带来的挑战大大增加,也给管理带来了很多问题和挑战。软件行业是一个极具挑战性和创造性的新行业,管理上没有成熟的经验可供借鉴。而项目管理应该说对于软件企业,尤其是那些以应用开发为主的软件企业,是行之有效的管理方法。因此,项目管理在软件开发中的应用日益受到重视。
项目管理的两个问题: 什么是项目管理?为什么要有项目管理?
项目管理是在一定的约束条件下,以高效率地实现项目业主的目标为目的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。
没有项目管理,项目也有可能成功。但没有管理的项目,很难保证项目的利润空间,对公司来说,亏损的风险就大。所以我们要有项目管理,以保证公司在总体上是盈利的,注意不是每一个项目都要盈利。
另外,有了项目管理,就有了管理改进的基础,无论刚开始的项目管理多么糟糕,只要有管理,就有了改进的可能性,至于能不能得到改进,以及改进的快慢,则取决于两个因素:一个是人,特别是各级管理者;另一个是利益。关键是“利益”,准确的说是“利益的分配”,在权责利明确的前提下,人才能充分的发挥作用。还需要指出的是“利益”是多元的,这里的多元不仅指利益的具体形式,而且指利益的受众是多元的,包括客户方相关人员个人的利益。
今天,项目管理作为一种现代化管理方式在国际上已获得了广泛的应用,从最初的国防、航天、建设工程领域,迅速发展到电子、通信、计算机、软件开发、金融等行业以及政府机关的项目管理工作。随着计算机、网络系统的迅速发展,项目管理技术的不断进步,项目管理软件产品层出不穷,其功能、特点、应用对象也各不相同。
软件开发是一项复杂的系统工程,牵涉到各方面的因素,软件开发正逐步趋向于复杂化、多元化,大多数开发团队中都会出现同时开发多个版本、开发/维护工作并存、多地点同时开发等情况,给软件开发管理带来了前所未有的困难,甚至面临失败。如果管理不善,必将造成版本混乱,各个开发人员的工作相互交叉、干扰,整个开发团队的工作在一种无秩序的不良状况下运行,严重影响软件产品开发的进度和质量。如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。
三、如何衡量软件项目成功与否
软件项目如何衡量其成功与否,一直是业内争论很久的话题。从我们对项目的定义,可以知道信息化项目的关键要素只有三个,即时间、成本、质量。即项目有没有在进度上超出计划?项目在成本上有没有超出预算?项目在质量上有没有满足需求?后者还可以进一步分解成更细的标准,如:系统的功能是否符合需求计划?系统的信息处理和运行方式是否合适?项目的整体运行状态是否适应企业的运营体系?等等。然而,软件本身是一个复杂的管理系统工程,以什么样的指标体系去衡量,如何衡量,确实是个大难题。软件项目的失败,具体分析可能会发现很多种原因。
四、软件项目管理常见问题及解决方案
对于软件开发项目中,经常出现两种极端情况,一种是创造了新的生产率和质量的纪录;一种则完全是一场灾难,不是被取消就是拖延很长时间。前者如在很短的时间内,为了赶进度,在几乎不可能的时间内开发出一套软件产品,创造了软件开发的记录,满足了上级所要求的上机日期,由于开发时间太短,过于仓促,上机时,问题百出,试运行时间长达几个月或一年半载的,而且程序一改再改,维护工作量大。后者,如某套系统未弄清楚需求,或因设计问题,开发失败。通过提炼这些成功和失败的例子,软件项目成功或失败的根本原因可能会更清晰一些。
分析目前项目管理需要改进的问题可以从几种相关角色的角度去考虑:项目经理、项目组成员、公司管理人员、市场人员、客户等。
问题一:缺乏系统的项目管理培训(相关对象:项目经理、管理人员)
项目经理在项目管理方面的培训较少或不够系统。项目经理或管理人员不了解项目管理的知识体系和一些常用工具和方法,在实际工作中,没有项目管理知识的指导,完全依靠个人现有的知识技能,管理工作的随意性、盲目性比较大。在一些软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理(甚至很少是管理专业的),被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。
解决方案:项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。
项目实践:我司陆续安排项目经理或储备经理,分别参加了信产部的《集成系统项目经理》,美国PMP项目管理及较具实战性的《清华总裁班项目管理实战》的培训学习,让项目经理深入学习项目管理的知识体系、常用工具和管理方法。
问题二:项目团队内分工协作问题(相关人员:项目经理、项目成员)
项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象,有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己那部分任务、不愿意与他人协作。这些现象或多或少地造成了项目团队内部资源的损耗,从而影响了项目的进展。
解决方案:项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。
项目实践:公司专门聘请清华总裁班高级讲师黄瑞生对全公司人员进行《高绩效团队打造》培训,本课程全面讲授打造高绩效团队的方法和技巧,内容涵盖团队的概念、团队的发展阶段和不同的领导方法、挑选团队成员方法、有效的团队目标的制定方法等诸多方面。同时还绍了打造高绩效团队的七大技巧:团队沟通技巧、团队激励技巧、团队冲突处理技巧、团队决策技巧、团队成员训练技巧、召开团队会议的技巧等等,还组织了余世伟主讲的《赢在执行》视频讲座。从而大大提高项目团队成员间相互配合、协调能力和执行能力。
问题三:沟通意识问题(相关人员:项目经理、项目组成员)
在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;没有明确的沟通媒介,以至于无法及时接收最新的信息。特别是项目经理无法精确的传达公司决策,项目运营,无法合理的激发团队,势必影响项目效率,
解决方案:提高项目经理演讲能力,制定有效的沟通制度和沟通机制,对由于缺乏沟通而造成的事件进行通报作为教训提醒,以提高沟通意识;沟通方式应根据内容而多样化,讲究有效率的沟通;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。
项目实践:公司安排项目经理参加了清华总裁班高级讲师黄瑞生主讲的《TTT培训师》培训,不仅有效的提高了项目经的演讲能力,并为后来组织的民航安检交流会的成功演讲奠定了基础。
问题四:质量管理问题(相关人员:质量经理,项目经理,项目团队)
有些公司未建立有效的质量管理标准,项目经理没有充分的质量规划,甚至有些项目经理没有充分意识到质量管理的重要性,项目在开发过程未加强对项目质量,配置管理的监督和审核,造成项目维护成本高等问题。
解决方案:通过学习质量管理体系知识,掌握质量规划、质量保证、质量控制。研究和学习质量控制的工具和方法,掌握项目质量管理所必备的知识。质量管理包括:质量计划编制、质量保证和质量控制三个过程域。质量计划是质量管理的第一过程域,它主要结合各个公司的质量方针,产品描述以及质量标准和规则通过收益、成本分析和流程设计等工具制定出来实施方略,其内容全面反应用户的要求,为质量小组成员有效工作提供了指南,为项目小组成员以及项目相关人员了解在项目进行中如何实施质量保证和控制提供依据,为确保项目质量得到保障提供坚实的基础。质量保证则是贯穿整个项目全生命周期的有计划和有系统的活动,经常性地针对整个项目质量计划的执行情况进行评估、检查与改进等工作,向管理者、顾客或其他方提供信任,确保项目质量与计划保持一致。质量控制是对阶段性的成果进行检测、验证,为质量保证提供参考依据,它是一个PDCA循环过程。
项目实践:公司根据现运行ISO体系,结合CMMI3的相关要求,制定《项目过程管理指南》,有效的指导项目经理进行质量管理,并邀请上海漫索林锐博士对产品部和市场部进行《软件研发和项目质量管理》课程培训,还有针对选择适合公司需要的集成化管理平台,确保项目在开发实施过程中的组织过程资产,得到有效的跟踪和管理,让项目管理更清楚,更条理化。
问题五:风险管理问题(相关人员:项目经理,项目团队)
项目经理没有充分分析可能的风险,对付风险的策略考虑比较简单。项目经理在做项目规划时常常没有做专门的风险管理计划文档,而是合并在项目计划书中。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。
解决方案:通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。
项目实践:专门建立了项目风险管理流程,加强在项目立项等各过程的技术评审,风险识别,风险跟踪,风险应对的监督和管理。
问题六:项目计划意识问题(相关对象:项目经理)
项目经理对总体计划、阶段计划的作用认识不足。项目经理认为计划不如变化快,项目中也有很多不确定的因素,做计划是走过场,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。没有计划或者是随意的不负责任的计划的项目是一种无法控制的项目。
解决方案:在高技术行业,日新月异是主要特点,因此计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关各种知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。
项目实践:通过合理利用项目进度管理工具Project,加强项目变更、变更评审和变更审核机制,为新项目提供参考和借鉴。
问题七、管理意识问题(相关对象:项目经理)
部分项目经理没有意识到自己项目经理的角色,从总体上去把握管理整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。在软件企业中,项目经理大多是技术骨干,技术方面的知识比较深厚,但无论是项目管理知识,还是项目管理必备的技能、项目管理必备的素质都有待补充和提高,项目管理经验也有待丰富。有些项目经理对于一些不服管理的技术人员,没有较好的管理方法,工作不好安排的工作只好自己做。另外由于工作分解结构设计的合理性,项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。
解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。
项目实践:公司对产品部的生产和运营进行管理创新,从原来运行的项目型管理向矩阵型管理转变,筹建管理、技术、业务三个中心和加强团队协作、实现自我价值两个基本点,为客户提供适当质量的产品和服务。各中心目标:管理中心形成一致管理思想,贯彻组织任务、进行项目集管理;业务中心打通业务知识、分享行业经验,逐步形成业务、质量、客服、实施等过程资产,产生业务专家、销售顾问;技术中心进行核心业务研发与技术难点攻关,组建实验室,形成核心组件管理。还专门组织技术中心成员参加微软MSUP《系统架构师》培训及业务中心成员参加《WCF技术》培训。
问题八:不重视项目经验的总结(相关人员:项目经理、管理人员)
项目经理在项目结束时有些是因为自身对写文档工作的兴趣或意识,或者是因为紧接着要参加下一个项目,总体对项目总结的重视程度不够。有些是项目总结报告一再拖延,有些是交上来的报告质量较低,敷衍了事。
解决方案:在制度上鼓励和加强项目经验总结工作,使得项目总结及时并且具有指导意义而不是走过场。
问题九:项目干系人相关问题(相关人员:项目经理、项目成员、客户)
在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以致于无法得到完整需求或最终经权威用户代表确认的需求。由于项目经理的工作问题,客户参与程度部不高,客户方相关责任人不明确或对范围和要求责任心不强,提出的要求具有随意性,项目前期对需求的确认不够积极;或者是多个用户代表各说各话、昨是今非但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。
解决方案:项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。
以上对软件开发项目管理中出现的问题的分析还不够深入,也无法列举所有遇到或将遇到的问题,解决方案也要根据实际情况进行调整,希望引起对这些问题更多的思考和改进。
项目管理虽然没有非常高深的理论,但要真正实施起来,也绝非易事。对于软件开发企业而言,这不是一个小的改变,而是一种变革,企业需要为此付出艰苦的努力,宣传并树立公司范围内的项目管理文化十分重要。从而在实践中锻炼提高,解决各种各样的问题,使项目管理工作越做越好。