软件项目管理概述_第1页
软件项目管理概述_第2页
软件项目管理概述_第3页
软件项目管理概述_第4页
软件项目管理概述_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件项目管理概述软件项目管理概述什么是软件项目管理什么是软件项目管理l软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。l软件项目管理的对象是软件工程项目。它所涉及的范围覆盖了整个软件工程过程。l为使软件项目开发获得成功,关键问题是必须对软件项目的工作范围、可能风险、需要资源(人、硬件软件)、要实现的任务、经历的里程碑、花费工作量(成本)、进度安排等做到心中有数。l这种管理在技术工作开始之前就应开始,在软件从概念到实现的过程中持续进行,当软件工程过程最后结束时

2、才终止。本次讲解的主要内容本次讲解的主要内容l软件工程的七条基本原理软件工程的七条基本原理l项目管理的项目管理的“三角链三角链”l软件项目管理中的软件项目管理中的10个误区个误区 软件工程的七条基本原理l1、用分阶段的生命周期计划严格管理l有人经统计发现,在不成功的软件项目中有一半左右是由于计划不周造成的,可见把建立完善的计划作为第一条基本原理是吸取了前人的教训而提出来的。l在软件开发及维护的漫长的生命周期中,需要完成许多性质各异的工作。这条基本原理意味着,应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发及维护工作进行管理。在软件的整个生命周期中应

3、该制定并严格执行六类计划,它们是项目概要计划,里程碑计划,项目控制计划,产品控制计划,验证计划,运行维护计划。l不同层次的管理人员都必须严格按照计划各尽其职地管理软件开发及维护工作,绝不能受客户或上级人员的影响而擅自背离预定计划。软件工程的七条基本原理l2、坚持进行阶段评审l软件的质量保证工作不能等到编码阶段结束之后再进行。这样说有两个理由:第一,大部分错误是在编码之前造成的,设计错误占软件错误的63%,编码仅占37%;第二,错误发现及改正得越晚,所需付出的代价也越高。因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。软件工程的七条基本原理l3

4、、实行严格的产品控制l在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价,但是,在软件开发过程中改变需求又是难免的,用户改变需求是一种客观需要,显然不能硬性禁止,而只能依靠科学的产品控制技术来顺应这种要求。也就是说,当改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理。所谓基准配置,它们是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。基准配置管理也称为变动控制:一切有关修改软件的建议,特别是涉及到对基准配置的修改建议,都必须按照严格的规程进行评审,获得批准以后才能实施修改。绝对不能谁想修改软件(包括尚在开发过程

5、中的软件),就随意进行修改。软件工程的七条基本原理l4、采用现代程序设计技术l从提出软件工程的概念开始,人们一直把主要精力用于研究各种新的程序设计技术。60年代末提出的结构程序设计技术,已经成为绝大多数人公认的先进的程序设计技术。以后又进一步发展出各种结构分析(SA)及结构设计(SD)技术。实践表明,采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。软件工程的七条基本原理l5、结果应能清楚地审查l软件产品不同于一般的物理产品,它是看不到摸不着的逻辑产品。软件开发人员(或开发小组)的工作进展情况可见性差,难以准确度量,从而使得软件产品的开发过程比一般产品的开发过程更难于评价和管理。为

6、了提高软件开发过程的可见性,更好地进行管理,应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。软件工程的七条基本原理l6、开发小组的人员应该少而精l这条基本原理的含义是,软件开发小组的组成人员的素质应该好,而人数则不宜过多。开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。素质高的人员的开发效率高,而且错误少。如果,随着开发小组人员数目的增加,因为交流情况、讨论问题造成的通信开销(经济、时间、理解)也急剧增加。因此,组成少而精的开发小组是软件工程的一条基本原理。软件工程的七条基本原理l7、承认不断改进软件工程实践的必要性l遵

7、循上述六条基本原理,就能够按照软件工程基本原理实现软件的工程化生产,但是,仅有上述六条原理并不能保证软件开发及维护的过程能赶上时代前进的步伐,应把承认不断改进软件工程实践的必要性作为软件工程的第七条基本原理。l科学发展观项目管理中的项目管理中的“三角恋三角恋”l虽然各个项目有其独特性,但都具有三个角色:实施公司、项目团队、客户。l我们分别从“对项目实施过程的期望”和“对项目结果的期望”两个方面来进行讨论。对实施过程的期望l负责项目实施的公司的管理层对项目实施过程会有如下的期望:l1、公司资源被合理有效地利用,没有浪费;l2、和其他项目的实施不产生冲突;l3、参及项目的人员喜欢他们在项目中的工作

8、并能尽力;l4、能随时得知项目的实施情况和问题报告;l5、能随时得知项目团队对项目实施的看法;l6、能随时得知客户对项目实施和项目团队的看法;l7、项目实施过程顺利,时间进度、预算、工作范围等关键指标按计划进行,不需要公司再为项目投入更多的人、财、物等资源;l8、项目经理能够居安思危、未雨绸缪,防范问题的出现;l9、出现问题,项目经理和团队能寻找出最佳的解决方案并妥善解决问题;l10、客户对项目实施满意、没有抱怨;l11、项目经理能使用成熟的项目管理体系管理项目,并得到客户的认可和赏识;l12、项目实施过程能体现本公司员工的专业水平,得到客户和业界的认可。 对实施过程的期望l项目团队成员对项目

9、实施通常会有如下期望:l1、项目目标清晰、有明确的项目计划、知道自己的工作方向;l2、项目经理能提供合适的工作环境和氛围;l3、项目经理的领导风格比较合适,能和项目经理相处愉快;l4、在项目实施过程中的优秀表现能得到适当的认可;l5、有专业的项目管理流程,但是没有繁文缛节的文本工作和文字游戏;l6、有可供参考的模板和历史文件,在需要的时候可以得到资深人员的指点;l7、在项目实施过程中无意犯下的小错误,能得到项目经理和其他人员一定程度的包容和谅解;l8、能切实感受到自己的工作对项目整体目标的贡献作用,在项目实施过程中能得到项目经理、客户和公司高层的注意、重视和认可;l9、能够有和客户直接沟通的机

10、会;l10、有宽松的工作环境和民主的工作氛围,可以坦诚提出自己的意见和建议,并看到自己提出的合理建议得到采纳;l11、项目经理在做决策的时候,能够征求团队成员的意见;l12、能有汇报自己工作成果的机会。对实施过程的期望l客户对项目实施过程通常会有如下的期望:l1、项目的实施由合格的项目经理来负责;l2、项目实施团队成员要技能过硬、态度认真、方法适当;l3、客户可以及时了解项目的进展状况;l4、客户可以比较方便地根据实际情况调整对项目的需求和期望;l5、如果客户提出新的需求或对原需求进行更改时,实施方能迅速反应、采取行动;l6、项目实施过程中,能允许客户方人员的参及和见习,以提高客户方人员的技能

11、水平;l7、项目工作都能按时完成,并能和客户的其他厂商进行密切的配合;l8、对界面不清的工作有一定的包容性,能适量地完成一些分外的工作;l9、不需要客户在项目实施过程中再支出超出预算的人、财、物力等资源;l10、关键任务的完成能请客户参及检查;l11、项目实施过程中遇到的问题能让客户知悉;l12、项目经理和项目团队有能力处理实施过程中发生的意外问题;l13、如果需要客户配合,一定要提前通知客户,并提供详细的工作说明;l14、项目实施过程不要扰乱客户的正常业务;l15、项目的每一个步骤要符合质量要求;l16、对于客户提出的疑问,项目团队要给予毫无保留的解释。对项目结果的期望l公司管理层对项目结果

12、有如下的期望:l1、实现公司对项目的预期利润指标,l2、客户满意,l3、日后的维护成本较低,l4、项目经理和项目团队成员的能力通过参及项目实施得到了提高,l5、公司可以把此项目作为成功案例进行宣传,公司美誉度在市场上因之提高。 对项目结果的期望l项目团队成员对项目结果通常会有如下的期望:l1、项目结果和项目所交付成果得到客户的认可,l2、客户方的相关人员在接受项目所交付的产品之后能够很快熟悉产品的使用和维护,l3、客户方相关人员对项目所交付产品的使用感到非常顺手,l4、客户对项目团队成员提出表扬或表示感谢,l5、客户同意让实施方把该项目作为成功案例进行宣传;l6、客户希望和项目团队成员继续维持

13、友好的关系,l7、客户提出再次购买,l8、公司领导对项目团队提出表彰,项目经理对项目团队成员给予好的绩效评价,l9、团队成员通过参及项目实施成为某一方面的技术高手或专家。 对项目结果的期望l作为IT项目的客户,他们对项目结果的期望和项目实施方的聚焦点会有不同,通常客户对项目结果的期望如下:l1、实现合同签定之时,项目实施方对项目结果和项目所交付产品的书面或口头承诺;l2、实现客户在合同签定之时,对项目所交付产品的预期功能和性能指标的期望;l3、通过使用项目所交付的产品,客户业务的能力或效率有所提高;l4、项目相关资料能够在项目所交付产品移交的时候一起移交给客户,利于客户日后查阅;l5、项目所交

14、付产品易于使用和维护,并且返修次数较低;l6、项目所交付产品有扩展性;l7、项目所交付产品能够升级;l8、项目交付之后,如果项目所交付产品出现问题,实施方能够迅速反应、给予解决;l9、项目实施方对项目所交付产品长期负责;l10、如果在项目所交付产品的使用过程中,有需要咨询的地方,项目实施方可以提供及时的咨询;l11、日后的维护成本低;l12、和别的厂家的系统有兼容性。项目经理项目经理担当的三重责任l第一,项目经理要向公司的管理层负责。公司管理层授权项目经理负责项目的实施,同时对项目的实施寄予了一定的期望。这种期望可能是:赢取既定的利润、赢取期望的市场美誉、为其它项目的实施树立榜样或其它。项目经

15、理有责任通过对项目实施的管理达到公司管理层的期望。l第二,项目经理要向客户负责。在客户签署项目合同的时候,就对项目设置了预期的目标,这种目标可能是:实现项目所交付产品的预期功能和性能,从而提升客户自身的业务能力或效率。项目经理要通过对项目实施的有效管理,使项目实施的最终结果能满足或超出客户的期望。l第三,项目经理要向项目团队成员负责。项目经理需要在项目实施过程中发挥自己的领导能力,为项目团队成员营造合适的工作环境和工作氛围,使团队成员可以高效地发挥自身的潜力,并同时通过参及项目实施进一步提升团队成员的能力。软件项目管理中的10个误区l误区1:在项目的需求分析阶段,开发方及客户方在各种的问题的基

16、本轮廓上达成一致即可,具体细节可以在以后填充。因为无论开始时有多么细致, 以后对需求的修改几乎是必然的。l分析:这是一种非常危险的思想。实际上许多软件项目失败的最主要的原因就是需求阶段对问题的描述不够细致,导致后来预算超出或者时间进度达不到要求。l正确的做法是:在项目需求分析阶段,双方必须全面地尽可能细致地讨论项目的应用背景、功能要求、性能要求、操作界面 要求、及其他软件的接口要求,以及对项目进行评估的各种评价标准。并且,在需求分析结束以后,双方还要建立可以直接联系的渠道,以尽早地对需求变动问题进行沟通。 软件项目管理中的10个误区l误区2:软件项目的需求可以持续不断的改变,而且这些改变可很容

17、易地被实现。l分析:的确,在具体实际中由于种种原因客户方很难在需求分析阶段全面而准确地描述所有问题。随着开发进度的推进,往往会有一些需求的改变。而现代软件工程理论也利用软件的灵活性特点通过各种方式来适应这种情况。不过,这并不表明“软件项目的需求可以持续不断的改变 ,而且这些改变可很容易地被实现”。实践表明:随着开发进度的推进,实现软件需求更改所需要的代价呈指数形式增长。假定在需求分析阶 段实现需求更改需要花费1倍的代价;那么,在系统设计和编码阶段,需要花费1.5-6倍的代价;在系统测试阶段需要花费10-20倍的代价;在软 件版本发布以后,甚至可能要花费60-100倍的代价。由此可见,在项目开展

18、过程中,软件需求的改变应当尽量早地提出。这样才可能花费少, 容易被实现。 软件项目管理中的10个误区l误区3:软件程序主要由代码组成,因此编码阶段是整个软件项目的最重要的阶段,应该给及大量的时间,并且集中主要的资源。l分析:及以前相比,由于软件的规模和复杂度的增加,以及半自动化软件代码开发平台的出现,现代软件项目管理的中心发生了转移-不是 着重编码阶段,而是着重系统总体/详细设计阶段。一般说来,在现代软件项目管理中各种资源的合理分配比例是:项目论证、风险评估阶段3% ,项目需求分析阶段8%,系统总体/详细设计阶段45%,编码阶段10%,系统测试阶段34%。 软件项目管理中的10个误区l误区4:

19、为了便于代码的维护修改,在系统的详细设计阶段文档工作应该做到写出所有程序的伪码。l分析:通常伪码的最大作用是对程序的算法流程进行描述,便于人们深入了解程序的功能和实现过程。可见,在一定程度上伪码的确有利于对 程序代码的维护和修改。但是,我们知道为了保证项目文档和程序代码的一一对应关系,维护程序代码的时候同时需要对项目文档进行维护。伪码和程序代码是非常接近的,对伪码进行维护的话,相当于进行了2倍的程序代码维护。工作量是很大的。所以切合实际的方式应该是对一般 的程序文档做到程序流程图即可,对于涉及了较复杂算法的才需要伪码。 软件项目管理中的10个误区l误区5:既然在项目人员配置中设置了专门的测试人

20、员,那么软件所有的内部测试工作全部应该由测试人员完成。l分析:软件程序测试可以分为“白盒法”和“黑盒法”两种方式。由于使用“白盒法”对测试人员各方面素质的种种要求,在进行程序测试时 测试人员总是最优先使用“黑盒法”。他们的工作方式往往是先对程序进行“黑盒法”测试;如果测试没有通过,不得已这才考虑对程序代码 进行“白盒法”测试。显然,这种对“白盒法”有意无意的“逃避”,对软件的可靠性和稳定性构成了威胁。如何解决这个问题?一方面需要 提高对测试人员的要求,另一方面也需要程序员完成部分的“白盒法”测试(实际上,程序员往往也是进行“白盒法”测试的最佳人选)。 软件项目管理中的10个误区l误区6:软件项

21、目管理只是相关技术部门的事情,及公司其他部门无关。l分析:在竞争日益激烈的今天,软件项目规模大、复杂度高而且时间要求紧迫。要想提高公司的软件项目管理水平,这就需要提高公司的整体 参及意识,需要公司各个部门协同作战。例如需要会计部门协助进行项目预算,财务管理和费用控制;需要研究部门(技术委员会)指派专家 协助进行各种风险评估,提供技术指导;需要后勤部门提供各种保障。 软件项目管理中的10个误区l误区7:在开发进度滞后的情况下,可以聘请更多的程序员加入到开发团队中,通过增加人力资源来赶上进度。l分析:在注重团队开发的时代,开发方应该根据目前的软件项目管理水平慎重考虑这个做法。如果新加入的程序员对目

22、前软件项目的应用行业 有一定了解,并且可以很快适应了开发方的项目管理方式、软件开发风格、团队协作氛围;那么新人的加入是有益的。否则,可能会好 心好意做坏事。因为尽管其个人能力很高,但是为了使其及大家一起协同工作,开发团队不得不分出人手对其进行及项目有关的技术/业务培 训,更重要的(也是难度最大的)是还要引导其融入团队。这可能需要花费开发团队许多时间和精力,很有可能使项目进度更慢。 软件项目管理中的10个误区l误区8:技术骨干应该成为项目的项目经理,项目经理一定是所有项目成员中薪水最高的。l分析:在软件作坊时代,这是一种普遍使用而且效果不错的方法;而在软件工厂时代,这种方法却带来各种问题,有时甚至直接导致 项目失败。究其原因这主要是因为随着现代软件开发分工的细化,对项目经理的要求也发生了根本的改变-最注重的不是其对某项专业技术 的掌握程度,而是其组织、领导、协调开发团队的能力(当然,可以两者均突出最好)。至于项目经理的薪水问题,这和定薪制度有很大关系 。通常,项目经理执行的是管理人员的薪酬体系,而其他人员执行的是技术人员的薪酬体系。项目经理的薪水在项目

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论