项目管理在软件开发中的应用策略研究Word格式文档下载.docx
《项目管理在软件开发中的应用策略研究Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《项目管理在软件开发中的应用策略研究Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
四、软件研发项目管理的策略与重点6
(一)人员组织管理7
1.合理分工7
2.沟通7
3.激励和表扬7
(二)规避需求风险8
(三)减少设计风险8
(四)进度控制9
(五)项目风险管理10
1.风险识别10
2.风险量化10
3.风险应对计划制定10
4.风险监控10
(六)加强项目绩效分析11
1.成本偏差(CV)=EV-AC11
2.进度偏差(SV)=EV-PV11
3.成本绩效指数(CPI)=EV/AC11
4.进度绩效指数(SPI)=EV/PV12
五、项目管理常见的问题与解决方案12
(一)缺乏项目管理系统培训12
(二)沟通意识问题12
(三)项目计划意识问题13
(四)没有花时间来确定项目范围。
13
(五)漠视变更管理13
(六)风险管理意识问题14
(七)项目干系人问题14
(八)项目团队内分工协作问题14
六、结束语15
参考文献15
中文摘要
随着信息产业的飞速发展,软件产品的规模也越来越大,个人单打独斗的作坊式开发方式已越来越不适应发展的需要,人们越来越多的认识到项目管理对于以应用开发为主的软件企业是一个行之有效的管理方法,从而项目管理在软件开发中的应用日益受到重视。
本文根据本人在项目开发过程当中的一些经验教训,对项目管理进行了相应的总结,并对项目管理在软件开发中的应用的存在的问题以及相应的解决方案进行了分析和论述。
关键词:
软件开发项目管理风险管理问题解决方案
Abstract
Withtherapiddevelopmentofinformationindustry,softwareproductsarebecomingeverlarger,individual-styledevelopmentmethodsworkshoptogoitalonenolongermeettheneedsofdevelopment,itismoreandmorerecognizedthatprojectmanagementtoapplyfordevelopmentofsoftware-basedenterpriseisaneffectivemanagementapproachtoprojectmanagementinsoftwaredevelopmentapplicationsreceivedincreasingattention.InthispaperIoftheprojectdevelopmentprocess,someoftheselessonslearned,theprojectmanagementofthecorrespondingsummary,andprojectmanagementinsoftwaredevelopmentproblemsintheapplicationandthecorrespondingsolutionsareanalyzedanddiscussed.
Keywords:
softwaredevelopmentprojectmanagement,riskmanagementsolutions
一、引言
如果用两个字概括当前社会的特点,那就是“变化”,而这种变化在信息产业中体现得尤为突出,技术创新速度越来越快,用户需求与市场不断变化,人员流动也大大加快。
在这种环境下,企业需要应对的变化以及由此带来的挑战大大增加,也给管理带来了很多问题和挑战。
软件开发行业是一个极具挑战性和创造性的新行业,管理上没有成熟的经验可供借鉴。
而项目管理应该说对于软件企业,尤其是那些以应用开发为主的软件企业,是行之有效的管理方法。
因此,项目管理在软件开发中的应用日益受到重视,项目管理体系在一些大的软件企业也逐步得到推广应用。
(一)项目管理的两个问题
项目管理是在一定的约束条件下,以高效率地实现项目业主的目标为目的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。
没有项目管理,项目也有可能成功。
但是没有管理的项目,很难保证项目的利润空间,对公司来说,亏损的风险就大。
所以我们要有项目管理,以保证公司在总体上是盈利的,注意不是每一个项目都要盈利。
另外,有了项目管理,就有了管理改进的基础,无论刚开始的项目管理多么糟糕,只要有管理,就有了改进的可能性,至于能不能得到改进,以及改进的快慢,则取决于两个因素:
一个是人,特别是各级管理者;
另一个是利益。
关键是“利益”,准确的说是“利益的分配”,在权责利明确的前提下,人才能充分的发挥作用。
还需要指出的是“利益”是多元的,这里的多元不仅指利益的具体形式,而且指利益的受众是多元的,包括客户方相关人员个人的利益。
二、项目管理的概述
(一)项目定义
项目是为完成某一独特的产品和服务所做的一次性努力,具备二个明显的的特性:
一次性和独特性。
1.一次性
项目有明确的开始时间和结束时间。
当项目目标已经实现,或因项目目标不能实现而项目被终止时,就意味着项目的结束。
2.独特性
项目所创造的产品或服务与已有的相似产品或服务相比较,在有些方面有明显的差别。
项目要完成的是以前未曾作过的工作,所以它是独特的。
(二)项目管理定义
项目管理是通过项目各方干系人的合作,把各种资源应用于项目,以实现项目的目标,满足项目干系人的要求。
满足和超过项目干系人的需求和期望需要平衡下列各方面的矛盾:
1)范围、时间、费用和质量
2)有不同要求和期望的项目干系人
3)已明确的需求和未明确的期望
三、项目管理流程
项目管理从项目启动,组建项目组开始,直至整个项目结束的生命周期过程。
其简要的流程图如下所示。
(一)项目启动
项目启动是项目管理工作的第一个环节。
这个环节非常重要,包括项目意向提出、需求分析、可行性方案制定,并在这个阶段进行项目经理的任命。
1.意向提出
意向提出阶段要对业务部门提出的业务需求进行统筹规划,保证系统建设的整体合理性。
2.需求分析
调研业务需求,形成需求分析规格说明书,并进行评审,确保双方理解的一致性,减少偏差。
3.可行性方案制定
本阶段是项目启动的关键阶段,主要任务是通过需求分析,制定管理体系和系统技术架构,评估项目的投入产出。
即从管理上、技术上、实现上对难点进行的阐述,可以有效地开展项目。
(二)项目计划制定
项目启动之后,首要的任务为计划以及项目运作过程当中各项制度的制定,项目计划的制定,可以借助目前常用的项目管理软件,如project工具辅助进行计划的制定。
1.计划制定
制定整体计划、里程碑阶段计划、质量保证计划、配置管理计划、度量计划等,并明确对计划完成情况的检查流程。
2.制度制定
制定项目运作过程中的例会制度、进度通报制度、考核制度、变更管理制度、文件管理制度、费用管理制度、各类编码规范、测试要求等。
有了相应的计划和制度,在项目管理过程中才能做到有的放矢,心中有数,对项目的成功完成大有裨益。
(三)项目执行
执行阶段即按照项目最初制定的时间计划以及各项规章制度有条不紊的开始工作。
执行过程中一定要按预先制定要的时间计划和规章制度进行,千万不能由于计划安排有问题而抛开计划,随意进行,使得项目启动阶段的计划成为一纸空文。
执行过程中处理好“计划”中的变化,是项目成功与否的关键因素。
计划虽然只是项目启动阶段制定的一个基准,但它的制定是按照科学的方法和正确的方向进行的,执行过程中与计划安排有所偏离是在所难免的,出现偏离,一定要按照相关的变更管理制度下进行,要进行相关记录并及时修正,以保证项目按时完成。
(四)项目过程控制
项目过程控制的主要目标是项目的质量控制、进度控制、成本控制。
从项目建设的意义上来说这同时也是项目管理的三大主要方面:
时间、质量、资源。
过程控制贯穿项目管理的启动、计划、执行整个过程。
(五)项目结束
项目或阶段的正式接收并达到有序的结束。
其中,项目的中间过程(计划、执行、控制)是一个循环反复的过程。
项目计划是计划执行和计划控制的基准;
计划执行的结果受到计划控制的监控;
计划控制根据比较计划执行的结果与项目计划的偏差,以及各种因素引起的变化,对项目计划进行修正,从而形成下一个循环的项目基准。
它们之间的流程如图2所示。
图2项目控制过程
项目结束阶段是一个清理的阶段,也是一个总结、收获的阶段。
有人认为项目结束就大功告成了,不需要再做什么工作了。
其实不然,项目结束后,要认真对项目进行总结、分析,编写项目总结报告。
项目总结报告并不是一种形式上的东西,它主要是为了大家能在项目的整个运作过程当中总结经验教训,以便对以后的项目起到一定的指导作用。
四、软件研发项目管理的策略与重点
项目管理过程控制和风险管理在项目管理中占有非常重要的地位。
有效的过程控制和风险管理可以提高项目的成功率,增加团队的健壮性。
与团队成员一起进行风险分析可以让大家对困难有充分估计,对各种意外有心理准备,大大提高组员的信心,从而稳定队伍,也增强了团队的凝聚力和战斗力。
同时,有效的过程控制和风险管理可以帮助项目经理抓住工作重点,将主要精力集中于重大风险和关键过程,将工作方式从被动救火转变为主动防范。
对于软件开发工作,项目管理的重点主要是过程控制和风险管理。
两者均主要表现在需求、技术、成本和进度几个方面。
本文根据以往开发项目的经验,主要从需求、进度、人员、设计、沟通几个方面进行探讨。
(一)人员组织管理
一个软件开发项目中,需要很多方面的人员:
需求分析人员、设计人员、编码人员、测试人员、SQA、SCM等。
对项目组成员合理分工、安排,有效组织管理,对项目成功至关重要。
1.合理分工
项目经理应当对项目成员的岗位及责任进行合理清淅定义,并对成员的工作分配并清楚地说明,同时强调不同分工、不同环节的成员应当相互协作,共同完成任务,避免由于责任不明造成的工作上互相推诿、互相推卸的现象,影响工作进度。
2.沟通
定时通报各个小组的工作进度,按照例会制度定时召开项目组沟通会议,进行有效沟通;
项目关键里程碑完成时,要召开评审会议,对前阶段的内容进行总结及决定是否进入下一阶段等;
负责组织相关集体活动等,使得项目组成员及时了解其他小组进度,并在思想上相互理解和支持,增强团队凝聚力和战斗力。
3.激励和表扬
将员工的工作绩效与奖励紧密联系起来。
使项目团队成员将自己的期望和项目的要求紧密结合,以达到激励团队成员的目的。
(二)规避需求风险
需求开发和管理是软件开发的重中之重,国内很多企业需要把本企业的业务流程计算机自动化,但是,大多数企业提供给软件开发方的业务需求很不全面,这就导致很多项目设计已经完成,编码阶段已经开始,业务需求还在不断发生变化。
最大限度的规避需求风险,就要在业务调研阶段不拘泥于用户提出的要求,要到生产现场,用眼、用心去看实际工作需要,用户想到的项目组想到,用户想不到的也要想到,不仅了解用户提出的明示的需求,还有了解用户潜在的需求。
完成需求分析之后,反复与用户进行沟通,并对需求进行评审,及同用户进行需求的确认,双方形成对需求的一致理解,将后期的需求变更减到最小。
同时,还要制定有效的需求变化管理机制,比如:
需求跟踪矩阵等,遇到不得已的需求变更,要有需求变更机制保证,最大限度的减少对后续工作的影响。
需求分析是介于系统分析和软件设计阶段之间的重要桥梁。
要想做好需求工作,首先要对其有正确的了解和认识。
做好软件需求开发是一项系统工作,而不是简单的技术工作,只有系统的了解和掌握需求的基本概念、方法、手段、评估标准、风险等相关知识,并在实践中中加以应用。
才能真正做好需求的开发和管理工作。
其次,要想做好需求工作还需要建立一个有效的工作机制,只有建立了工作机制,才能保证需求工作按照既定方案执行,需求开发和需求管理的参与者才会在一种有序的状态下工作。
这佯才会充分运用工作机制和个人能力去获取问题、分析问题、编写需求文档和进行需求管理。
(三)减少设计风险
设计是项目具体实施过程的关键步骤,特别是详细设计,用来指导具体编码。
概要设计和详细设计一定要有相关的评审机制,由相关人员(包括业务人员)组成评审组对设计反复评审,最大限度避免由于设计缺陷导致的后续工作返工。
在设计上重点考虑把握的一些原则:
系统的可扩展性、系统的可移植性、系统的耦合度等。
(四)进度控制
在项目开展中往往存在两种常见的情况:
一种是项目一开始就偏离了进度计划,于是认为计划不合理,不再按照制定的计划进行,开始老太太擤鼻涕,到哪儿算哪儿;
一种是制定了计划就不再检查、过问在项目快要结束时,才发现时间和质量都无法保证。
遇到上述情况,项目组成员一般会认为软件开发与其他工作不同,其中存在很多变化比如业务需求更改、设计考虑不全面、开发工具选择不合理等。
避免这种情况出现,就要实行良好的进度控制,实行良好进度控制关键在于:
1)严格执行项目计划,尽量避免项目需求变更和人员变更。
如果出现不可预知的因素导致项目变更,必须及时调整项目目标、项目计划。
2)出现进度变更时,必须走相应的变更管理流程,要及时提交变更报告,包括变更对进度安排的影响和要求。
3)项目经理应根据项目计划的关键路线图,在项目执行过程中应关注关键路线的执行情况。
对项目的关键路径尽可以确实不变更,针对项目变更通常采用补救、更新计划等处理方式。
项目控制的基础是项目计划,项目计划的基础是项目目标。
因此,项目管理的第一步是要明确项目同标。
软件开发项目目标应该包括软件系统的范围、质量、进度、成本、市场或政治目标。
其次,是根据目标分析自身的资源状况,资源包括人力资源,设备、资金、信息等。
其实,对于项同开发类项目的成本主要就是人力。
有了从项目规模估算的规模(工时)表推导出的人力投入情况表,项目经理可以很容易的算出项目的整体成本,也可以通过及时地释放人员来降低成本。
在项目发生变更时,也能够快速得到项目成本变化的趋势,找到项目成本控制的办法,从而达到成本管理的目的。
第三步是根据项目目标和资源约束来制定项目计划,然后就是项目计划的实施。
在项目计划实施过程中要持续跟踪监控项目进展情况,并与项目计划比较,发现偏差,分析原因,及时采取纠正、预防措施,随时解决项目中需要解决的问题,包括项目团队的沟通和冲突问题。
项目内外各种因素具有不确定性,同时项目相关环境中存在一定的干扰,因此项目的实施难以完全按照项目计划进行。
出现偏差是小可避免的。
良好的项目控制可以保证项目按照计划稳定地完成项目目标,就是说可以及时地发现偏差、有效地缩小偏差、迅速地纠正或预防偏差,使项目始终按照合理的计划推进。
(五)项目风险管理
项目风险管理是指为了最好的达到项目的目标,识别、分配、应对项目生命周期内风险的科学与艺术。
项目风险管理的目标是使潜在机会或回报最大化,使潜在风险最小化。
风险管理涉及的主要过程包括:
风险识别,风险量化,风险应对计划制定和风险监控。
风险识别在项目的开始时就要进行,并在项目执行中不断进行。
就是说,在项目的整个生命周期内,风险识别是一个连续的过程。
1.风险识别
风险识别包括确定风险的来源,风险产生的条件,描述其风险特征和确定哪些风险事件有可能影响本项目。
风险识别不是一次就可以完成的事,应当在项目的自始至终定期进行,并及时更新风险跟踪列表。
2.风险量化
涉及对风险及风险的相互作用的评估,是衡量风险概率和风险对项目目标影响程度的过程。
风险量化的基本内容是确定那些事件需要制定应对措施,主要进行风险的定量和定性分析。
3.风险应对计划制定
针对风险量化的结果,为降低项目风险的负面效应制定风险应对策略和技术手段的过程。
风险应对计划依据风险管理计划、风险排序、风险认知等依据,得出风险应对计划、剩余风险、次要风险以及为其它过程提供得依据。
4.风险监控
涉及整个项目管理过程中的风险进行应对。
该过程的输出包括应对风险的纠正措施以及风险管理计划的更新。
项目的风险管理得当是项目是否顺利达到目标的前提,各个企业一般都有一套相应的风险跟踪及处理办法,比如风险跟踪列表、风险应对计划等,贯穿项目的整个生命周期内。
(六)加强项目绩效分析
挣值分析是测量工作绩效的常用方法,挣值分析法又称偏差分析法,是一种分析目标实施与目标期望之间差异的方法好,挣值法的优点是能同时判断项目预算和进度计划的执行情况,以预算和费用来衡量工程的进度,挣值分析是在对范围、进度和成本进行综合测量的基础上评价项目绩效的一种方法。
它涉及每项工作的3个关键值:
1)计划值(PV)在规定的时间内在工作上将要花费的获得批准的成本估算部分
2)实际成本(AC)在规定时间内完成工作所花费的实际成本(直接和间接成本的总额)
3)挣值(EV)实际完成工作的价值
通过成本偏差(CV)\进度偏差(SV)\成本绩效指数(CPI)\进度绩效指数(SPI)四个常用的指标,综合反映项目绩效的整体情况:
1.成本偏差(CV)=EV-AC
1)当CV为负值时,表示执行效果不佳,即实际消耗人工(或费用)超过预算值即超支。
2)当CV为正值时,表示实际消耗人工(或费用)低于预算值,即有节余或效率高。
3)当CV等于零时,表示实际消耗人工(或费用)等于预算值。
2.进度偏差(SV)=EV-PV
1)当SV为正值时,表示进度提前;
2)当SV为负值时,表示进度延期。
3.成本绩效指数(CPI)=EV/AC
1)当CPI>
1,表示低于预算,即实际费用低于预算费用;
2)当CPI<
1,表示超出预算,即实际费用高于预算费用;
3)当CPI=1,表示实际费用与预算费用正好吻合。
4.进度绩效指数(SPI)=EV/PV
4)当SPI>
1,表示进度提前,即实际进度比计划进度快;
5)当SPI<
1,表示进度延误,即实际进度比计划进度慢;
6)当SPI=1,表示实际进度等于计划进度。
五、项目管理常见的问题与解决方案
(一)缺乏项目管理系统培训
问题:
在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理,被任命的项目经理主要是因为他们能够在技术上独当一面,而被提升起来作项目经理,对技术细节比较重视,而管理方面特别是项目管理方面的知识比较缺乏。
解决方案:
项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平,或有条件的大企业一般会成立项目管理部或称项目管理办公室对项目经理进行系统的培养和选拔,并对项目进行整体的管理。
(二)沟通意识问题
在项目中一些重要信息没有进行充分和有效的沟通。
在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关项目干系人的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;
有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。
制定有效的沟通制度和沟通机制,提高沟通意识;
采取多种沟通方式,提高沟通的有效性。
(三)项目计划意识问题
项目经理对总体计划、里程碑阶段计划的作用认识不足,而且可能缺少以往项目的历史经验数据,凭自已的经验值进行估算及计划安排,因此制定总体计划时比较随意,不少事情没有仔细考虑;
阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。
计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。
提高项目经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、里程碑阶段计划的有效性进行事前事后的评估,以确保整体进度不至于大的偏差。
如果业务和lT部门事先没有明确项目的范围,项目到头来很可能会失控。
另外,lT部门也缺乏按时按预算完成项目、满足业务部门预期目标所需的明确方向办法。
在项目立项后,首要的必须进行项目范围的确认,并形成用户需求规格说明书,以此形成双方理解及明确项目的范围,针对定义不明确的项目,最好的办法就是拿出商业方案、确定项目范围,只有在大范围明确的前提下进行项目才具有可控性。
(五)漠视变更管理
在项目开发实施生命周期中,随时都有可能出现项目的变更,比如需求的变更,导致后续设计、编码、等一系列的进度的变更,可能影响整个项目的交付及里程碑的延迟,如果没有很好的变更管理办法,将导致进度的延迟,产品质量的下降、用户满意度的下降等等。
项目规划阶段,事先抽出时间考虑项目可能会在哪些方面遇到阻力,并且考虑好应对阻力的一整套变更管理办法。
还要找出哪些利益相关者的工作会受到新功能的影响,并且计划好如何向他们说明流程和工作流方面出现的变化。
我们应该明白,不是所有变更都是不好的。
(六)风险管理意识问题
有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。
通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法,掌握项目风险管理所必备的知识。
通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。
(七)项目干系人问题
在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以至于无法得到完整需求或最终经权威用户代表确认的需求;
或者是多个用户代表各说各话、昨是今非,但同时又要求项目尽早交付;
项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。
项目的目的就是实现项目干系人的需求和愿望。
项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。
(八)项目团队内分工协作问题
项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象;
有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己那部分任务,不愿意与他人协作。
这些现象都将造成项目组内部资源的损耗,从而影响项目进展。
项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。
六、