项目管理在软件行业运用

时间:2022-07-19 04:09:52

项目管理在软件行业运用

软件行业从萌芽到如今的迅猛成长,只用短短十几年的时间。在这期间,软件开发的需求和终期目标也日趋成熟,随着互联网的兴起,人们已经不再满足于一个小小的单机管理系统或者简单的静态网页,而是开始追求办公系统网络化和动态的网页宣传平台。这一系列的需求更造就并产生了ERP产业的蓬勃发展。在这种环境下,企业不仅需要应对竞争不断提升的软件功能性和实用性以适应客户频繁的需求变化所带来的风险,还需要处理软件开发过程中这样那样的管理问题。虽然很多管理理念应运而生,但并不是一套理念可以完全地适应一个企业的具体管理环境的,找到一套行之有效的项目管理方法成为每一个软件企业最迫切的需要,因此,项目管理在软件开发中的成功应用日益受到重视。这里需要先明确项目管理的几个问题:1.何为项目管理?项目管理就是将知识、技能、工具与技术应用于项目活动,以满足项目的要求。2.何谓成功的项目管理?从业务的角度来说,企业从高级管理层到基层都做好准备,同时软件完全符合企业的事业环境因素,在这两个基础上进行的有效实施;从纯粹的项目管理角度来说,按时完成,能够满足必须的功能,并且费用完全控制在预算以内的项目可以被认为是成功的项目管理。3.项目管理的目的是什么?很多从事项目管理的人容易走进这样一个误区,那就是:认为所谓的项目管理就是一成不变地套用一系列模板、流程和工具。当所有的流程结束了,那项目也就完结了。其实不然,项目管理的主要目的是要发现项目过程中存在的漏洞,或者欠妥的工作方法和安排,不断地修正最终达到保证质量、成本、进度范围的要求,使得系统投入产出最佳化。目前的软件业的项目管理现状是怎样的呢?下面就我的亲身体验谈一两点看法:1.组织规划之间的信息共享的缺陷由软件系统反应出来。一些企业在发展的过程中意识到了软件开发的重要性,于是组建了自己的IT部门去开发自己企业的业务管理系统,但大多数企业被各个部门或分公司的行政因素所制约,形成了各部门/分公司有部门/分公司相对应的系统,却忽略了各部门/分公司之间相关数据的系统资源共享。很多时候,会错误地把原因归咎到IT部门,但实际上,这中间的很大一部分原因在于部门/分公司领导者之间的沟通和共享信息的需求。2.IT资源外包趋势凸显了项目经理的重要性。还有一些企业出于节约成本的考虑,把IT资源外包或请一些IT公司的顾问来处理和解决内部软件系统问题。这是越来越多的企业所趋向的一种形式。正是这种形式,更凸显了企业内部指定项目经理的重要性,这个角色起到沟通内外,上传下达的作用。3.大型企业管理软件系统的实施。有一些大型企业往往会因为业务的多样性和大量的数据记录存储的需求,而购买企业的大型软件系统的解决方案,这种解决方案往往会涉及到企业的每一步业务流程。这种情况下,不仅销售方要指定项目经理去安排顾问进行企业内部业务沟通和相应客户化的开发工作,同时,企业内部也需要一位或多位项目经理进行内部业务梳理和人员沟通分配以配合外部顾问的工作,推进项目的有效、顺利进行。按照PMI组织倡导的九大知识领域去分析项目管理需要改进的一些问题如下:整合管理问题:如何阐述项目经理在项目生命周期内的角色。项目经理应该在尽可能短的时间内阐述整个项目管理的中心内容,因为概述性的内容本就不容易引起团队成员的注意,所以要尽量在他们的注意力集中的期间进行解释,理想的时间是30分钟。为了介绍核心要点,可以准备幻灯片或者其他视频资料来描述这三重约束。这是一个等边三角形,三个顶点分别是时间、成本和范围。位于这个等边三角形中心的正是项目质量。用这样一个几何图形来代表要完成的项目工作正是为了说明,增加三条边中的任意一边的长度都会迫使其他两条边(或至少其中的一条边)发生变化。而且,这种改变也会影响到项目的质量。主要的方面说完了,就可以就以下部分进行叙述:团队成员的参与以及对项目计划制定的帮助;项目风险的识别、规避和应对,讨论计划的监督和实施;每个团队成员要完成的具体任务;各任务之间的依赖关系,团队成员如何更好的为之配合;项目经理在保证项目依计划进行的基础上,应肩负的职责;项目经理协调团队成员沟通方面的计划;项目定期会议的安排计划;展示初稿的工作计划或工作大纲。范围管理问题:如何应对经常发生改变的范围。如果正在盖楼,你不可能在进展的中间宣布:“为了满足各方面的最大利益和满意,我们建造40层,而不再按照计划盖60层。等以后有时间再继续盖完剩下的20层。”但是对于项目软件,很容易因为计划改变而缩减范围,比如只支持两个操作系统,其他操作系统等以后有时间再说。基于软件的开发本质,我们不可能避免这种情况的发生,所以能做的只有:具体地计划范围。识别出“最好具有”的功能,以及它们一开始就有的相关性,因为删除“最好具有”的功能时可能会同时改变与“必须具有”的功能相关的开发架构。如果你在开始时就计划项目范围可能缩减,那么在有必要缩减范围时,你就会很容易决定缩减什么以及如何缩减。时间管理问题:如何在有限的时间内,完成客户最需要的系统。这个问题是一度困扰IT界的难题,很多项目因为需求的不断变更导致开发人员精疲力竭,而最终也没有真正达到客户的满意。但是,任何问题都是有解决办法的,于是敏捷开发的方式应运而生。这种方法简单说就是,按照功能对于客户的重要程度在最短的时间循环内一一完成。每进行完一个循环,都要和客户一起检查功能的实施情况,并重新确认其余功能的重要程度。这样就可以实现已开发部分的系统是客户最需要的,而每一循环的检查又可以保证已开发的功能是符合客户实际要求的。

成本管理问题:项目预算如何得到最好的利用。每一个项目开始,项目经理都会或多或少地获得一部分的预算控制权。用这些预算获得最大的收益和符合客户最大的希望值成为了衡量自己是否称职的标准,如何能最大程度的做好呢?首先,要充分地运用专业知识定义项目的范围,建立工作分解结构,把项目分解成一个个可管理的小块,根据每一个小块要达到的质量参数,制定项目计划并计算所需资金,在项目的过程中尽量的把控项目沿着自己的计划进行。同时,在遇到紧急情况时,要考虑到时间和范围,从而决定是由项目组成员加班完成还是聘请外部顾问,这些都是成本管理的必修课题。质量管理问题:质量不是在交付的时候才需要重视的。很多项目到最终交付的时候会集中爆发大量的BUG,项目开发团队为之手忙脚乱,但真正交付后,还是会被揪出各种各样的错误,以至于客户并不满意最终的产品,所以,质量控制是应该贯穿在软件程序开发的各个阶段的。首先,在项目之初,就应该明确客户对交付产品的需求点,并将交付产品分解成为一个个的代码包,每一个代码包的交付都要经过团队成员之间的严格检验;其次,设定检查点,在每一个检查点上根据基线和趋势分析对关键绩效指标和度量标准进行评估,以明确差异;最后,在即将到达产品交付点的时候,可以先组织一小部分有代表性的客户进行测试和部署,这样可以在最终交付之前提前发现问题并对问题进行纠正。

人力资源管理问题:软件项目的执行者是团队成员,调动他们的积极性也是成功的关键。众所周知,当人有压力的时候,工作效率就会下降,甚至会敷衍,这些对于项目的进度和质量都是很危险的,所以为了项目顺利进行,项目经理有义务保持团队成员的精神饱满,所以这就涉及到对于每个人的观察并积极对话去管理好他们的工作环境,为他们免除压力或者将压力的影响降到最小。沟通管理问题:细节的沟通决定成败。很多项目经理在项目中每天面对很多人,忙得团团转,但是他们发现虽然自己很累,但是收获却并不大。原因在于,沟通没有到位。项目经理不能当传话筒。成员A对于开发细节上需要与成员B的部分有接口的探讨,很多成员的习惯很可能是问项目经理,于是项目经理就去问B,然后再返回来告诉A,这一个过程就会出现信息丢失或信息误读,结果与真实的情况就会有所差异,正确的做法是,收集团队成员的问题,根据问题的紧急程度适时开一个临时会议,让相关的人坐在一起,当面进行沟通,这样来,很可能会引出更深的问题进行讨论,也才能让团队成员对问题理解得更透彻;发挥足够的影响力。比如客户说,需求就是这样的,不可以更改,一部分人的做法可能是,立刻研究如何针对这个需求克服技术上的困难去满足;但是,另一部分人可能会亲自到客户那里,面对面地沟通不可更改的原因,并提供折中方案,最终达到客户接受方案,同时,也不花费太多的时间和人力在技术实现的问题上。

风险管理问题:面对风险的策略。项目和风险是普遍意义上共存的,所以也是所有项目经理都需要面对的,做到以下几点应该会让风险大大降低:定期召开会议,用头脑风暴的方式对风险进行预估,尤其在项目的关键阶段,这样的会议就更加重要;记录每一个可能的风险,并制定出应对策略;定期检查并更新风险记录,保证记录永远是最新的;对于每一个可能的风险,安排相应的负责人进行跟进;风险管理计划有清晰的内部及外部沟通策略。采购管理问题:合同的管理要满足“双赢”。针对每一个项目都会有一份合同,当拿到这份合同的时候,项目经理也需要考虑是不是需要约见客户并对合同进行进一步严谨的修改。

当合同对自己一方明显有利的时候,要考虑客户是不是真的清楚完成项目所必须要做的工作,一旦他们意识到自己的付出大于所得,他们很有可能要求重新协商或者干脆放弃这个项目。避免产生纠纷的最好方式就是保证合同的公平公正。打个比方,如果合同约定了违约金,那就一定要约定奖金,让双方感觉到他们各自的得失是平等的。只有通过双赢的方式,让客户觉得你们是为了项目更好完成而一起合作的搭档,那么很多问题的解决上也会容易很多。

项目管理不是简单的看几篇文章就能融会贯通的一门学问,他需要时间和经验的积累,也许会经历失败,但是软件行业的项目管理终究会走向成功,而且会出现更多更好的管理经验和方法论,让我们努力让项目管理在软件开发领域创造更美好的明天。