1、软件开发中的项目管理 随着信息产业的飞速发展,项目管理对于以应用开发为主的软件企业是一个行之有效的管理方法,在软件开发中项目管理的应用日益受到重视。本文主要通过对项目管理在软件开发中的应用的成因、存在的问题以及相应的解决方案进行了分析和论述。 如果用两个字概括当前社会的特点,那就是 “变化 ”,而这种变化在信息产业中体现得尤为突出,技术创新速度越来越快,用户的需求与市场不断变化,人员流动也大大加快。在这种大环境下,企业需要应对的变化以及由此带来的各种挑战大大增加,也给管理带来了很多问题和挑战。 软件行业是 一个极具挑战性和创造性的新行业,在管理上没有成熟的经验可供借鉴。而项目管理应该说对于软件
2、企业,尤其是那些以应用开发为主的软件企业,是行之有效的管理方法。因此,项目管理在软件开发中的应用日益受到重视。 项目管理的两个问题 1、什么是项目管理? 项目管理是在一定的约束条件下,以高效率地实现项目业主的目标为目的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。 2、为什么要有项目管理? 没有项目管理,项目也有可能成功。但没有管理 的项目,很难保证项目的利润空间,对公司来说,亏损的风险就更大。所以我们要有项目管理,以保证公司在总体上是盈利的,特别注意不是每一个项目都要盈利。 另外,有了项目管理,就有了管理改
3、进的基础,无论刚开始的项目管理是多么的糟糕,只要有了管理,就有了改进的可能性,至于能不能得到改进,以及改进的快慢或好坏,则取决于两个因素:一个是人,特别是各级管理者;另一个是利益。关键是 “利益 ”,准确的说是 “利益的分配 ”,在权责利明确的前提下,人才能充分的发挥作用。还需要指出的是 “利益 ”是多元的,这里的多元不仅指利益的具体形式,而 且指利益的受众是多元的,包括客户方相关人员个人的利益。 3、项目管理的发展与现状 今天,项目管理作为一种现代化管理方式在国际上已经获得了广泛的应用,从最初的国防、航天、建设工程领域,迅速发展到电子、通信、计算机、软件开发、金融等行业以及政府机关的项目管理
4、工作。随着计算机、网络系统的迅速发展,项目管理技术的不断进步,项目管理软件产品层出不穷,其功能、特点、应用对象也各不相同。当前,越来越多的企业和组织在内部推广项目管理的理论方法及管理模式,如果都采用项目管理软件进行管理,效果就更加明显,可以节省大量的资源和 财富。 国外 90%以上的项目管理都采用软件进行,但我国在这方面的应用还不到 30%。新世纪项目管理在中国的迅速兴起,给软件企业的发展带来了前所未有的发展机遇。 项目管理在软件开发中的应用的成因 随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开
5、发活动中,对开发实行有效的管理。从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实 际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。 同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作,每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化
6、管理,专业分工也可以降低对开发人员的要求,从而降低产品研发成本。 软件开发是一项复 杂的系统工程,牵涉到各方面的因素,实际工作中,经常会出现各种各样的问题,甚至面临失败。如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。 早在 20 世纪 60 年代中期,人们就发现软件的生产出现了 “问题 ”,主要表现在生产过程不规范,缺乏管理。后来,人们在软件工程方法学中引入了工程的概念、原理、技术和方法,这种思想在一定程度上解决了软件生产过程中遇到的问题。但是直至 80年代还是没有提出一套管理软件开发的通用原则,软件管理不善的问题依旧在大范围内存在。 目前的软件开发
7、正逐步 趋向于复杂化、多元化,大多数开发团队中都会出现同时开发多个版本、开发 /维护工作并存、多地点同时开发等情况,给软件开发管理带来了前所未有的困难。如果管理不善,必将造成版本混乱,各个开发人员的工作相互交叉、干扰,整个开发团队的工作在一种无秩序的不良状况下运行,严重影响软件产品开发的进度和质量。 因此,随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到 软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,应用开发的项目管理日益受到重视。而项目管理技术的发展与计算机技术的发展是密不可 分的,随着计算机性能的迅速提高,大量的项目管理软件涌现出来。它们可以用于各种商
8、业活动,提供便于操作的图形界面,帮助用户制定任务、管理资源、进行成本预算、跟踪项目进度等。 软件项目管理常见问题及解决方案 对于软件开发项目中,经常出现两种极端情况,一种是创造了新的生产率和质量的纪录;一种则完全是一场灾难,不是被取消就是拖延很长时间。前者如在很短的时间内,为了赶进度,在几乎不可能的时间内开发出一套软件产品,创造了软件开发的记录,满足了上级所要求的上线日期,由于开发时间太短,过于仓促,上线时,问题百出,试运行时 间长达几个月或一年半载的,而且程序一改再改,维护工作量大。后者,如某套系统未弄清楚需求,或因设计问题,开发失败。通过提炼这些成功和失败的例子,软件项目成功或失败的根本原
9、因可能会更清晰一些。 目前我国大部分软件公司,无论是产品型公司还是项目型公司,都没有形成适合自己公司特点的软件开发管理模式,虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制问题。这样导致软件产品质量不稳定,软件后期的维护、升级出现麻烦,同时最终也会损害用户的利益。 分析目前项目管理需要改进的问 题可以从几种相关角色的角度去考虑:项目经理、项目组成员、公司管理人员、市场人员、客户等。 问题一:缺乏项目管理系统培训 (相关对象:项目经理、管理人员) 项目经理在项目管理方面的培训较少或不够系统。项目经理或管理人员不了解项目管理的知识体系和一些常用工具和方
10、法,所以在实际工作中没有项目管理知识的指导,完全依靠个人现有的知识技能,管理工作的随意性、盲目性比较大。在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理(甚至很少是管理专业的),被任命的项目经理主要是因为他们能够在技术上独当 一面,而管理方面特别是项目管理方面的知识比较缺乏。 解决方案: 项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。应实行项目经理知识技能资格考核制度,让项目经理自觉补充学习项目管理的知识和一些常用工具和方法。 问题二:项目计划意识问题 (
11、相关对象:项目经理) 项目经理对总体计划、阶段计划的作用认识不足。项目经理认为计划不如变化快,项目中也有很多不确定的因素,做计划是走过场,因此制定总 体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。没有计划或者是随意的不负责任的计划的项目是一种无法控制的项目。 解决方案: 在高技术行业,日新月异是主要特点,因此计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关各种知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。 问题三、管理意识问题
12、 (相关对象:项目经理) 部分项目经理没有意识到自己项目经理 的角色,从总体上去把握管理整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。 在软件企业中,项目经理大多是技术骨干,技术方面的知识比较深厚,但无论是项目管理知识,还是项目管理必备的技能、项目管理必备的素质都有待补充和提高,项目管理经验也有待丰富。有些项目经理对于一些不服管理的技术人员,没有较好的管理方法,工作不好安排的工作只好自己做。另外由于工作分解结构设计的合理性,项目任务无法有效、合理地分配给相关成员,以达到 “负载均衡 ”。 解决方案: 加强项目管理方面的 培训,并通过对考核指
13、标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。 问题四:沟通意识问题 (相关人员:项目经理、项目组成员) 在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯, 以至于无法及时接收最新的信息。 解决方案: 制定有效的沟通制度和沟通机制,对由于缺乏沟通而造成的事件进行通报作
14、为教训提醒,以提高沟通意识;沟通方式应根据内容而多样化,讲究有效率的沟通;通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如除发送邮件外还要电话提醒、口头提醒、回执等,重要的内容还要通过举行各种会议进行传达。 问题五:风险管理意识问题 (相关人员:项目经理) 项目经理没有充分分析可能的风险,对付风险的策略考虑比较简单。项目经理 在做项目规划时常常没有做专门的风险管理计划文档,而是合并在项目计划书中。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后
15、面的风险防范起不到什么指导作用。 解决方案: 通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的 有效性和可 行性。 问题六:不重视项目经验的总结 (相关人员:项目经理、管理人员) 项目经理在项目结束时有些是因为自身对写文档工作的兴趣或意识,或者是因为紧接着要参加下一个项目,总体对项目总结的重视程度不够。有些是项目总结报告一再拖延,有些是交上来的报告质量较低,敷衍了事。 解决方案: 在制度上鼓励
16、和加强项目经验总结工作,使得项目总结及时并且具有指导意义而不是走过场。 问题七:项目干系人相关问题(相关人员:项目经理、项目成员、客户) 在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有 足够了解以致于无法得到完整需求或最终经权威用户代表确认的需求。由于项目经理的工作问题,客户参与程度不高,客户方相关责任人不明确或对范围和要求责任心不强,提出的要求具有随意性,项目前期对需求的确认不够积极;或者是多个用户代表各说各话、昨是今非但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。 解决方案: 项目的目的就是实现项目干系人的需求和愿
17、望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动 他们对项目的支持,调查并明确他们的需求 和愿望,减小其对项目的阻力,以确保项目获得成功。 问题八:项目团队内分工协作问题 (相关人员:项目经理、项目成员) 项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象,有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰但是各项目成员只顾完成自己那部分任务、不愿意与他人协作。这些现象或多或少地造成了项目团队内部资源的损耗,从而影响了项目的进展。 解决方案: 项目经理应当对项目成员的责任进行合理的分配并 清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。 以上对软件开发项目管理中出现的问题的分析还不够深入,也无法列举所有遇到或将遇到的问题,解决方案也要根据实际情况进行调整,希望引起对这些问题更多的思考和改进。 结束语: 项目管理虽然没有非常高深的理论,但要真正实施起来,也绝非易事。对于软件开发企业而言,这不是一个小的改变,而是一种变革,企业需要为此付出艰苦的努力,宣传并树立公司范围内的项目管理文化十分重要。从而在实践中锻炼提高,解决各种各样的问题,使项目管理工作越做越好。