


软件工程软件工程软件项目管理软件项目管理651主要讲解内容主要讲解内容1 1、项目管理定义、项目管理定义2 2、项目管理培训、项目管理培训3 3、项目经理职责、项目经理职责4 4、项目经理工作流程、项目经理工作流程5 5、项目经理对程序员的要求、项目经理对程序员的要求6 6、项目管理的经验、项目管理的经验7 7、项目管理原则、项目管理原则8 8、软件企业文化、软件企业文化2 软件项目管理软件项目管理导读导读:对对IT企业来说,项目管理太重要了项目管理起始于项目企业来说,项目管理太重要了项目管理起始于项目立项,终止于项目交付在宏观上说,软件工程的整个内容,立项,终止于项目交付在宏观上说,软件工程的整个内容,实际上都在论述项目管理,或者说都跟项目管理有关不同实际上都在论述项目管理,或者说都跟项目管理有关不同的是,本章是项目管理的专述,是在微观上论述项目管理的是,本章是项目管理的专述,是在微观上论述项目管理它从项目的定义、项目管理的重要性开始,直到项目经理的它从项目的定义、项目管理的重要性开始,直到项目经理的7项职责和项职责和10项工作程序、项目经理对程序员的项工作程序、项目经理对程序员的9条要求、项目条要求、项目经理抓好项目的经理抓好项目的7条经验,最后总结出条经验,最后总结出IT企业高层经理管理项企业高层经理管理项目的目的10大原则。
下面列出了读者在本章学习中要了解、理解大原则下面列出了读者在本章学习中要了解、理解和关注的主要内容和关注的主要内容3 软件项目管理软件项目管理本章对读者的要求本章对读者的要求要求要求具体内容具体内容了解了解1)1)项目和项目管理的概念项目和项目管理的概念2)2)项目管理的认证体系项目管理的认证体系3)3)项目管理的重要性项目管理的重要性理解理解1)1)项目经理对程序员的项目经理对程序员的9 9条要求条要求2)2)项目经理抓好项目的项目经理抓好项目的7 7条经验条经验关注关注1)项目经理的职责和量项目经理的职责和量1010项工作程序项工作程序2)2)软件企业高层经理管理项目的软件企业高层经理管理项目的1010大原则大原则4 项目管理定义项目管理定义 项目管理是一种广泛应用于各种工程中的技术管理过程项目管理是一种广泛应用于各种工程中的技术管理过程项目是一次性多任务工作,它具有确定的开始日期、结束日期、项目是一次性多任务工作,它具有确定的开始日期、结束日期、工作范围、经费预算、质量标准,以及特定的功能、性能和接工作范围、经费预算、质量标准,以及特定的功能、性能和接口要求项目管理常常是决定产品或企业能否成功的最重要指标之项目管理常常是决定产品或企业能否成功的最重要指标之一。
项目管理的能力已成为软件企业的关键能力项目管理的能力已成为软件企业的关键能力1)(1)“项目项目”是什么是什么?(2)(2)“项目管理项目管理”是什么是什么?(3)(3)项目管理的重要性表现在什么地方项目管理的重要性表现在什么地方?(4)(4)谁去管理项目?谁去管理项目?(5)(5)怎么管理项目怎么管理项目?(6)(6)人们在管理项目的过程中有什么经验与教训人们在管理项目的过程中有什么经验与教训?5 项目管理培训项目管理培训项目管理项目管理 项目管理提供了解决问题的思路和方法,告诉人们在团队项目管理提供了解决问题的思路和方法,告诉人们在团队合作的过程中,如何加强个体之间横向和纵向的衔接合作的过程中,如何加强个体之间横向和纵向的衔接目前,在我国的目前,在我国的ITIT行业中,一大批技术人才掌控着公司,行业中,一大批技术人才掌控着公司,刚开始的时候他们没有认识到管理的重要性,不进行规范管理刚开始的时候他们没有认识到管理的重要性,不进行规范管理还勉强可以生存后来,随着公司壮大,没有规范管理就会给还勉强可以生存后来,随着公司壮大,没有规范管理就会给公司动作带来困难有技术背景的员工,要他们自己在技术工公司动作带来困难。
有技术背景的员工,要他们自己在技术工作中作中“以身作则、埋头苦干以身作则、埋头苦干”肯定没问题然而要他们领导一肯定没问题然而要他们领导一个项目,就不是那么容易了因为项目管理主要是要求别人干,个项目,就不是那么容易了因为项目管理主要是要求别人干,指挥人家去做,这与自己个人干不一样指挥人家去做,这与自己个人干不一样要想使技术人员上升到管理层,项目管理培训是必须的要想使技术人员上升到管理层,项目管理培训是必须的通过项目管理的培训,可以给技术出身的中高层领导换脑子,通过项目管理的培训,可以给技术出身的中高层领导换脑子,改变他们只重技术忽视管理的思想事实上,高层领导的决策改变他们只重技术忽视管理的思想事实上,高层领导的决策失误,多数表现在管理上,而不是在技术上失误,多数表现在管理上,而不是在技术上6 项目经理职责项目经理职责 项目经理是软件项目管理的实施人和带头人,在软项目经理是软件项目管理的实施人和带头人,在软件工程管理中,项目经理的职责是件工程管理中,项目经理的职责是“七抓七抓”:一、抓需求获取确认;一、抓需求获取确认;二、抓计划制定与执行;二、抓计划制定与执行;三、抓团队分工与工作;三、抓团队分工与工作;四、抓后勤供应与保障:四、抓后勤供应与保障:五、抓产品测试与交付:五、抓产品测试与交付:六、抓开发标准与规范;六、抓开发标准与规范;七、抓员工考核与奖励。
七、抓员工考核与奖励7 项目经理工作流程项目经理工作流程项目经理的工作要遵守如下项目经理的工作要遵守如下1010项工作流程项工作流程 1 1、软件项目要先立项,后开发软件项目要先立项,后开发立项工作原则上由销售部门负责,立项书的形式有:立项工作原则上由销售部门负责,立项书的形式有:(1 1)、评审并批准的立项建议书)、评审并批准的立项建议书 (2 2)、下达指令的任务书)、下达指令的任务书 (3 3)、签订的合同书或委托书)、签订的合同书或委托书(订单订单)立项后由软件研发部门组建项目组,任命项目经理立项后由软件研发部门组建项目组,任命项目经理(必必要时增加技术经理及产品经理要时增加技术经理及产品经理),项目经理要认真看懂与仔,项目经理要认真看懂与仔细分析立项书的内容细分析立项书的内容8 项目经理工作流程项目经理工作流程 2 2、项目经理根据立项书制定初步的软件开发计、项目经理根据立项书制定初步的软件开发计划和需求分析完成后,再修改并细化软件开发计划划和需求分析完成后,再修改并细化软件开发计划软件开发计划的内容要包括项目描述、功能和性能软件开发计划的内容要包括项目描述、功能和性能特点、资源需乎计划、人员计划、进度计划、配置特点、资源需乎计划、人员计划、进度计划、配置训计划、质量保证计划、测试计划、评审计划、风训计划、质量保证计划、测试计划、评审计划、风险分析等。
险分析等软件管理部门对软件开发计划进行评审评审软件管理部门对软件开发计划进行评审评审通过后,项目经理根据人员计划,进行组成员具体通过后,项目经理根据人员计划,进行组成员具体分工9 项目经理工作流程项目经理工作流程 3 3、以系统分析师为主,对软件项目进行需求调研、获取、以系统分析师为主,对软件项目进行需求调研、获取用户需求,形成用户需求报告用户需求,形成用户需求报告用户需求报告的内容要包括系统的业务流、资金流、人用户需求报告的内容要包括系统的业务流、资金流、人流、物流,要用数据流来集中反映出这流、物流,要用数据流来集中反映出这4 4个流程,归纳整理个流程,归纳整理出系统的功能表、性能点列表、外部接口列表出系统的功能表、性能点列表、外部接口列表要请用户确认并签字,以此作为用户验收测试的依据要请用户确认并签字,以此作为用户验收测试的依据 软件研发管理部门对用户需求报告进行评审,直至不符软件研发管理部门对用户需求报告进行评审,直至不符合项为零即通过评审与审计,产生该项目的第合项为零即通过评审与审计,产生该项目的第1 1根基线项目经理根据用户需求报告,可以再次修改项目开发计项目经理根据用户需求报告,可以再次修改项目开发计划,并要求对修改后的开发计划进行评审与冻结。
划,并要求对修改后的开发计划进行评审与冻结6510 项目经理工作流程项目经理工作流程 4 4、系统分析师将用户看不懂的、设计师又、系统分析师将用户看不懂的、设计师又必须知道的内容,加到用户需求报告中去,形必须知道的内容,加到用户需求报告中去,形成完整的目标系统业务模型和功能模型,并形成完整的目标系统业务模型和功能模型,并形成初步的数据模型,从而产生出软件需求规格成初步的数据模型,从而产生出软件需求规格说明书要求对此规格说明书进行内部评审,通过要求对此规格说明书进行内部评审,通过后作为软件设计的基线后作为软件设计的基线11 项目经理工作流程项目经理工作流程 5 5、以系统设计师为主的进行概要设计以系统设计师为主的进行概要设计主要内容包括:体系结构设计、命名规则设计、功能模主要内容包括:体系结构设计、命名规则设计、功能模块设计块设计(内含构件的提取内含构件的提取)、数据库设计、接口设计等内容数据库设计、接口设计等内容以由高级程序员为主的详细设计以由高级程序员为主的详细设计 主要内容包括:类库和构件库基本建设的设计、存储过主要内容包括:类库和构件库基本建设的设计、存储过程实现设计、触发器实现设计、数据处理算法实现设计、菜程实现设计、触发器实现设计、数据处理算法实现设计、菜单界面实现设计、查询统计实现设计、报表实现设计、通信单界面实现设计、查询统计实现设计、报表实现设计、通信传输实现设计等,列出功能点列表、性能点列表、外部接口传输实现设计等,列出功能点列表、性能点列表、外部接口列表在设计实现中的对应关系,便于进行测试。
列表在设计实现中的对应关系,便于进行测试软件管理部门对概要设计和详细设计文档进行评审,直软件管理部门对概要设计和详细设计文档进行评审,直至不符合项为零即通过评审与审计,成为该项目的编程基线至不符合项为零即通过评审与审计,成为该项目的编程基线12 项目经理工作流程项目经理工作流程 6 6、按照详细设计说明书,以高级程序员为、按照详细设计说明书,以高级程序员为主,组织程序人员进行编程、单元测试和集成主,组织程序人员进行编程、单元测试和集成测试源程序文档应结构清晰、层次分明、注解源程序文档应结构清晰、层次分明、注解行充分,便于阅读和维护,测试后的源程序成行充分,便于阅读和维护,测试后的源程序成为该项目的基线为该项目的基线13 项目经理工作流程项目经理工作流程 7 7、按照功能点列表、性能点列表、外部接口、按照功能点列表、性能点列表、外部接口表的内容,软件测试人员对系统进行功能测试、表的内容,软件测试人员对系统进行功能测试、性能测试、接口测试和验收测试,形成测试报告性能测试、接口测试和验收测试,形成测试报告文档测试组向项目组提交发现的问题单,直至改测试组向项目组提交发现的问题单,直至改正为止最后,提交一份经评审后通过的测试报正为止。
最后,提交一份经评审后通过的测试报告,成为该项目的基线告,成为该项目的基线14 项目经理工作流程项目经理工作流程 8 8、项目经理组织项目组成员书写用户指南,、项目经理组织项目组成员书写用户指南,(使用手朋、安装手册使用手朋、安装手册)根据需要,还可能书写根据需要,还可能书写系统管理员手册和其他有关培训手册,并对维护系统管理员手册和其他有关培训手册,并对维护人员和销售人员进行培训人员和销售人员进行培训同时对软件项目或产品进行包装,制作母盘,同时对软件项目或产品进行包装,制作母盘,形成公司对外发布和保存管理的形成公司对外发布和保存管理的BetaBeta版本,作为版本,作为该项目的最后一根基线该项目的最后一根基线15 项目经理工作流程项目经理工作流程 9 9、在上述工作程序中,项目经理每周还要对项目、在上述工作程序中,项目经理每周还要对项目开发计划和员工个人计划进行跟踪、监督、考核和调开发计划和员工个人计划进行跟踪、监督、考核和调整员工在每个周末以电子文档的形式,总结本周个员工在每个周末以电子文档的形式,总结本周个人划的执行情况,制定下周进度计划,并报告给项目人划的执行情况,制定下周进度计划,并报告给项目经理。
经理员工周而复始地总结本周的计划执行情况,制定员工周而复始地总结本周的计划执行情况,制定下周的进度计划,接受项目经理的考核,直至项目组下周的进度计划,接受项目经理的考核,直至项目组工作结束为止工作结束为止项目组对开发计划做大的调整项目组对开发计划做大的调整(基线计划变更基线计划变更)前,前,都要事先提出申请,经过软件管理部门评审,并报高都要事先提出申请,经过软件管理部门评审,并报高层经理批准后才能执行变更层经理批准后才能执行变更16 项目经理工作流程项目经理工作流程1010、软件项目内部验收或用户验收完毕后,项目、软件项目内部验收或用户验收完毕后,项目经理应召开项目工程总结会,书写项目总结报告经理应召开项目工程总结会,书写项目总结报告从企业文化、经验积累、技术长进等方面进行全从企业文化、经验积累、技术长进等方面进行全面总结,向软件管理部门提供详细资料,由管理面总结,向软件管理部门提供详细资料,由管理部门将此资料追加到软件过程数据库上部门将此资料追加到软件过程数据库上17 项目经理对程序员的要求项目经理对程序员的要求 一般地讲,目经理领导若干名一般地讲,目经理领导若干名(最多不超过最多不超过1010名名)程序员程序员(或软件蓝领或软件蓝领)。
项目经理不但要给程序员分配项目经理不但要给程序员分配工作和检查质量与进度,而且要培养和提高他们的水工作和检查质量与进度,而且要培养和提高他们的水平和素质平和素质项目经理要对程序员充满爱心,不但要认识到一项目经理要对程序员充满爱心,不但要认识到一个优秀程序员的生产效率可能是一个普通程序员的数个优秀程序员的生产效率可能是一个普通程序员的数1010倍,为了全面提高程序员的素质,项目经理要从以倍,为了全面提高程序员的素质,项目经理要从以下几个方面对程序员进行严格训练和要求下几个方面对程序员进行严格训练和要求18 项目经理对程序员的要求项目经理对程序员的要求 1 1、团队协作精神的训练和要求、团队协作精神的训练和要求 任何个人的力量都是有限的,一旦进入一些大任何个人的力量都是有限的,一旦进入一些大型型ITIT企业的研发团队,担负商业化和产品化的软件企业的研发团队,担负商业化和产品化的软件开发任务,缺乏团队协作精神就是不合格的员工开发任务,缺乏团队协作精神就是不合格的员工现在的软件开发不再是个人英雄主义打天下的现在的软件开发不再是个人英雄主义打天下的时代,尤其是大的软件公司,一个软件都是由几百时代,尤其是大的软件公司,一个软件都是由几百人甚至几千人共同合作完成的,没有团队精神是无人甚至几千人共同合作完成的,没有团队精神是无法想象的。
所以用人之道是法想象的所以用人之道是“人品、智慧、团队精人品、智慧、团队精神神”三要素,可见团队精神的重要性三要素,可见团队精神的重要性19 项目经理对程序员的要求项目经理对程序员的要求 2 2、数据库和数据结构分析与设计能力的训练和、数据库和数据结构分析与设计能力的训练和要求要求 程序员不但要学会看懂数据库和数据结构,而程序员不但要学会看懂数据库和数据结构,而且要逐渐学会分析与设计数据库和数据结构只有且要逐渐学会分析与设计数据库和数据结构只有这样,初级程序员才能逐渐成长为高级程序员,高这样,初级程序员才能逐渐成长为高级程序员,高级程序员才能逐渐成长为系统分析员否则,在级程序员才能逐渐成长为系统分析员否则,在ITIT企业,蓝领阶层很难进入白领阶层要知道,程序企业,蓝领阶层很难进入白领阶层要知道,程序员这个职业是青年人的职业,尽管超过员这个职业是青年人的职业,尽管超过4040岁的软件岁的软件人员还要继续写代码,但是再当程序员就不太合适人员还要继续写代码,但是再当程序员就不太合适了20 项目经理对程序员的要求项目经理对程序员的要求 3 3、文档习惯的训练和要求、文档习惯的训练和要求 良好的文档是正规研发流程中非常重要的环良好的文档是正规研发流程中非常重要的环节,作为程序员,节,作为程序员,3030的工作时间写技术文档的工作时间写技术文档(例如,源程序中的文档和用户指南例如,源程序中的文档和用户指南)是很正常是很正常的,而作为高级程序员和系统分析员,这个比的,而作为高级程序员和系统分析员,这个比例在例在7070以上。
正规以上正规ITIT企业,对文档有严格要企业,对文档有严格要求,这些要求体现在书写文档的参考模板或指求,这些要求体现在书写文档的参考模板或指南之中21 项目经理对程序员的要求项目经理对程序员的要求 4 4、规范化代码编写能力的训练和要求、规范化代码编写能力的训练和要求 作为作为ITIT企业的规矩,要求程序员进行企业的规矩,要求程序员进行“无私程序无私程序设计设计”,即程序代码的风格与程序员个人的性格无,即程序代码的风格与程序员个人的性格无关程序代码的变量命名、程序代码内注释格式、关程序代码的变量命名、程序代码内注释格式、甚至嵌套中行缩进的长度和函数间的空行数字都有甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定明确规定良好的编写习惯,不但有助于代码的移植和纠良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作代码具有错,也有助于不同技术人员之间的协作代码具有良好的可读性,是程序员的基本工作要求没有规良好的可读性,是程序员的基本工作要求没有规范化和标准化的代码习惯,全球的研发协作是绝对范化和标准化的代码习惯,全球的研发协作是绝对不可想象的不可想象的22 项目经理对程序员的要求项目经理对程序员的要求 5 5、复用性能力的训练和要求、复用性能力的训练和要求 经常可以听到一些程序员有这样的抱怨,经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练的软件蓝领,每天写了几年程序,变成了熟练的软件蓝领,每天都是重复写一些没有任何新意的程序代码。
其都是重复写一些没有任何新意的程序代码其实这是最大的浪费,一些重复性工作变成了熟实这是最大的浪费,一些重复性工作变成了熟练程序员的主要工作,而这些是完全可以避免练程序员的主要工作,而这些是完全可以避免的23 项目经理对程序员的要求项目经理对程序员的要求 复用性设计、模块化思维,就是要程序员在完成复用性设计、模块化思维,就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的参数否可以脱离这个系统存在,是否可以通过简单的参数修改方式,在其他系统和应用环境下直接引用,这样修改方式,在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作如果一个软件组织就能极大避免重复性的开发工作如果一个软件组织或项目组能够在每一次研发过程中都考虑到这些问题,或项目组能够在每一次研发过程中都考虑到这些问题,那么程序员就不会在重复性的工作中耽误太多时间,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投入到创新的代码工作中去。
就会有更多时间和精力投入到创新的代码工作中去24 项目经理对程序员的要求项目经理对程序员的要求 6 6、写构件能力的训练和要求、写构件能力的训练和要求 软件复用思想是构件思想的源头具有一定规模软件复用思想是构件思想的源头具有一定规模的软件企业,都有自己的类库、构件库、中间件库的软件企业,都有自己的类库、构件库、中间件库程序员不但要学会使用这些库,而且要学会生产这程序员不但要学会使用这些库,而且要学会生产这些库中的元素,使这些库的内容不断得到充实加强些库中的元素,使这些库的内容不断得到充实加强软件企业自己的构件库强大与否,主要决定于该企软件企业自己的构件库强大与否,主要决定于该企业程序员素质的高低业程序员素质的高低当然与项目经理的组织和引导也有极大关系当然与项目经理的组织和引导也有极大关系25 项目经理对程序员的要求项目经理对程序员的要求 7 7、测试习惯的训练和要求、测试习惯的训练和要求 对软件企业而言,专职的测试部门是不可少对软件企业而言,专职的测试部门是不可少的,这并不是说有了专职的测试部门,程序员的,这并不是说有了专职的测试部门,程序员就可以不进行自测事实上,白盒子测试主要就可以不进行自测。
事实上,白盒子测试主要是指程序员对自己的代码进行执行路径测试,是指程序员对自己的代码进行执行路径测试,静态测试也是程序员自己或程序员互相之间进静态测试也是程序员自己或程序员互相之间进行测试的方法行测试的方法6526 项目经理对程序员的要求项目经理对程序员的要求 软件研发作为一项工程而言,一条很重要的规律就软件研发作为一项工程而言,一条很重要的规律就是是BugBug问题发现的越早,解决问题发现的越早,解决BugBug问题的代价就越低,问题的代价就越低,因为软件中的错误在开发过程中呈发散性地传播程因为软件中的错误在开发过程中呈发散性地传播程序员在每段程序代码、每个构件或每个子模块完成后序员在每段程序代码、每个构件或每个子模块完成后进行认真的测试,就可以尽量将一些潜在进行认真的测试,就可以尽量将一些潜在BugBug问题尽早问题尽早地发现和解决,这样对整个开发进程将会有很大的促地发现和解决,这样对整个开发进程将会有很大的促进测试工作需要考虑两个方面,一方面是正常调用测试工作需要考虑两个方面,一方面是正常调用的测试;另一方面是异常调用的测试的测试;另一方面是异常调用的测试27 项目经理对程序员的要求项目经理对程序员的要求 8 8、学习和总结能力的训练和要求、学习和总结能力的训练和要求 程序员是很容易被淘汰、很容易落伍的职业,程序员是很容易被淘汰、很容易落伍的职业,因为一种技术可能仅仅在两三年内具有领先性,程因为一种技术可能仅仅在两三年内具有领先性,程序员如果想安身立业,就必须不断跟进新技术,学序员如果想安身立业,就必须不断跟进新技术,学习新技能。
善于学习,对于任何职业而言,都是前习新技能善于学习,对于任何职业而言,都是前进入是必需的动力对于程序员,这种要求就更加进入是必需的动力对于程序员,这种要求就更加高了善于总结,也是善于学习的一种体现,每次高了善于总结,也是善于学习的一种体现,每次完成一个研发任务,完成一段程序代码,都应当有完成一个研发任务,完成一段程序代码,都应当有目的地跟踪该程序的应用状况和用户反馈,随时总目的地跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,逐步提高自己结,找到自己的不足,逐步提高自己28 项目经理对程序员的要求项目经理对程序员的要求 9 9、引导程序员奋进、引导程序员奋进 科学技术上的发明、创造和成功,一半来科学技术上的发明、创造和成功,一半来自于童心童趣,一半来自于奋发图强自于童心童趣,一半来自于奋发图强好奇、喜欢、兴趣,是一个人前进的最大好奇、喜欢、兴趣,是一个人前进的最大动力,因为喜欢才有激情,兴趣就是动力项动力,因为喜欢才有激情,兴趣就是动力项目经理要引导程序员对编程工作的爱好,将程目经理要引导程序员对编程工作的爱好,将程序设计作为一门艺术、一种生命、一项永无止序设计作为一门艺术、一种生命、一项永无止境的追求。
境的追求29 项目经理对程序员的要求项目经理对程序员的要求 要鼓励程序员将编程的实践经验上升到软要鼓励程序员将编程的实践经验上升到软件的抽象理论,又将软件的抽象理论返回到编件的抽象理论,又将软件的抽象理论返回到编程实践这样日积月累,逐步由量变发展到质程实践这样日积月累,逐步由量变发展到质变于是,一位优秀的程序员可能就这样成长变于是,一位优秀的程序员可能就这样成长起采了,一位著名的软件大师可能就这样诞生起采了,一位著名的软件大师可能就这样诞生了这不是天方夜谭,而是有可能发生的奇迹这不是天方夜谭,而是有可能发生的奇迹30 项目管理的经验项目管理的经验1 1、重视项目启动会议、重视项目启动会议 好的开始是成功的一半对于做一个项目来好的开始是成功的一半对于做一个项目来讲,准备充分并成功举行项目启动会议,是项目得讲,准备充分并成功举行项目启动会议,是项目得以成功的重要基础之一在该项目实施开始,我们以成功的重要基础之一在该项目实施开始,我们举行了两个项目启动会议:软件公司内部项目启动举行了两个项目启动会议:软件公司内部项目启动会议会议(称为内部启动会议称为内部启动会议),与用户方共同召开的项,与用户方共同召开的项目启动会议目启动会议(联合启动会议联合启动会议)。
31 项目管理的经验项目管理的经验软件公司内部启动会议应达到的目的是:软件公司内部启动会议应达到的目的是:(1)(1)邀请市场部解析合同技术条款,并将邀请市场部解析合同技术条款,并将客户有关的情况和应该注意的问题告诉项目客户有关的情况和应该注意的问题告诉项目团队2)(2)邀请公司领导和部门领导陈述对项目邀请公司领导和部门领导陈述对项目团队的期望和要求团队的期望和要求6532 项目管理的经验项目管理的经验 (3)(3)划分团队成员在该项目中的主要承担划分团队成员在该项目中的主要承担角色、职责及汇报关系角色、职责及汇报关系4)(4)宣布团队纪律和做事原则宣布团队纪律和做事原则5)(5)分析项目所涉及的主要业务、技术问分析项目所涉及的主要业务、技术问题和要采取的主要策略题和要采取的主要策略6)(6)讨论制定项目的整体计划和具体需求讨论制定项目的整体计划和具体需求调查计划调查计划7)(7)讨论联合启动会议的主要内容讨论联合启动会议的主要内容33 项目管理的经验项目管理的经验联合启动会议应达到的目的是:联合启动会议应达到的目的是:(1)(1)让用户方所有与项目有关的人员参与会议让用户方所有与项目有关的人员参与会议。
2)(2)用户主管领导进行项目动员报告,目的是引起用户主管领导进行项目动员报告,目的是引起相关部门和员工的重视相关部门和员工的重视3)(3)成立项目领导小组、软件实施小组、质量管理成立项目领导小组、软件实施小组、质量管理小组,确定各小组的职责、负责人和协调人小组,确定各小组的职责、负责人和协调人4)(4)宣读项目合同的主要技术条款和合同范围,让宣读项目合同的主要技术条款和合同范围,让每个与项目有关的人员清楚项目范围,为需求控制每个与项目有关的人员清楚项目范围,为需求控制打下基础打下基础6534 项目管理的经验项目管理的经验(5)(5)确定项目的总体实施计划,让每个与项目有确定项目的总体实施计划,让每个与项目有关的人员了解项目大致阶段和时间进度关的人员了解项目大致阶段和时间进度6)(6)宣布确定项目需求调查计划宣布确定项目需求调查计划7)(7)宣布项目实施期间双方的各种组织管理约定宣布项目实施期间双方的各种组织管理约定总之,通过项目启动会议,应该树立团队和其总之,通过项目启动会议,应该树立团队和其他与项目有关人员的成功信心,降低过高的项目他与项目有关人员的成功信心,降低过高的项目期望值,达成一致的项目总体实施计划,以及实期望值,达成一致的项目总体实施计划,以及实施过程中的工作原则和约定,为项目的顺利实施施过程中的工作原则和约定,为项目的顺利实施奠定良好的基础。
奠定良好的基础35 项目管理的经验项目管理的经验2 2、协助用户建立项目组织体系和系统维护体系、协助用户建立项目组织体系和系统维护体系 企业信息系统建设是一项社会工程,直接触及企企业信息系统建设是一项社会工程,直接触及企业内部管理的神经,没有一个有效的组织体系做保证,业内部管理的神经,没有一个有效的组织体系做保证,要使项目成功是一件很难的事情要使项目成功是一件很难的事情在项目启动会议之前,要与用户方主管领导充分在项目启动会议之前,要与用户方主管领导充分协商,成立项目领导小组和项目执行小组,并确定工协商,成立项目领导小组和项目执行小组,并确定工作纪律和具体职责作纪律和具体职责领导小组原则上应由一把手牵头,各业务部门主领导小组原则上应由一把手牵头,各业务部门主管作为小组成员,定期召开碰头会,确定项目实施过管作为小组成员,定期召开碰头会,确定项目实施过程中需要解决的业务调整和岗位重新设定等问题,监程中需要解决的业务调整和岗位重新设定等问题,监控项目的进程和质量,协调项目进行中的资源配置控项目的进程和质量,协调项目进行中的资源配置36 项目管理的经验项目管理的经验 项目执行小组负责项目的日常工作,对项目项目执行小组负责项目的日常工作,对项目领导小组负责,安排项目组人员的调度和任务指领导小组负责,安排项目组人员的调度和任务指派,组织软件客户化实现、安装和调试等,组织派,组织软件客户化实现、安装和调试等,组织培训、初始化、试运行、运行等工作。
培训、初始化、试运行、运行等工作在项目启动会议召开的,宣布项目领导小组在项目启动会议召开的,宣布项目领导小组和项目实施小组的人员组成名单和具体职责和项目实施小组的人员组成名单和具体职责37 项目管理的经验项目管理的经验3 3、需求分析要充分体现业务人员和管理人员的意志和期望、需求分析要充分体现业务人员和管理人员的意志和期望 影响企业影响企业ERPERP项目成功的重要因素是:如何准确把握用户项目成功的重要因素是:如何准确把握用户方各级与项目有关人员的需求和期望以往做其他项目时有方各级与项目有关人员的需求和期望以往做其他项目时有沉痛的教训,一个项目组曾用短短沉痛的教训,一个项目组曾用短短2 2周的时间,给用户从头演周的时间,给用户从头演示和试用已有软件,然后让用户提出修改意见,也形成了一示和试用已有软件,然后让用户提出修改意见,也形成了一个简单的项目需求报告项目组花费了几个月的时间,根据个简单的项目需求报告项目组花费了几个月的时间,根据需求报告进行分析设计、程序实现和测试,后来将测试过的需求报告进行分析设计、程序实现和测试,后来将测试过的软件拿到用户现场演示并试运行时,用户又提出了大量修改软件拿到用户现场演示并试运行时,用户又提出了大量修改意见,并追加了很多新的需求,而且用户方认为这是软件应意见,并追加了很多新的需求,而且用户方认为这是软件应该具备的基本需求。
这件事情的发生表明用户对做出的软件该具备的基本需求这件事情的发生表明用户对做出的软件极为不满,项目组成员的工作积极性也受到重大打击极为不满,项目组成员的工作积极性也受到重大打击38 项目管理的经验项目管理的经验4 4项目范围和需求变更要想方设法做到有效控制项目范围和需求变更要想方设法做到有效控制 需求把握很重要,项目范围和需求变更的控制更为重要,需求把握很重要,项目范围和需求变更的控制更为重要,多数情况下它直接决定项目的成败多数情况下它直接决定项目的成败首先,尽量在合同中清楚地说明具体的功能范围、首先,尽量在合同中清楚地说明具体的功能范围、用户用户需求报告需求报告形成的时间周期和发生需求变更的处理原则在该形成的时间周期和发生需求变更的处理原则在该合同中明文规定:在合同功能范围基础上进行详尽的业务调查,合同中明文规定:在合同功能范围基础上进行详尽的业务调查,双方签字确定双方签字确定用户需求报告用户需求报告作为合同附件,之后发生的需作为合同附件,之后发生的需求变更按下述原则处理,每修改一个收取多少费用求变更按下述原则处理,每修改一个收取多少费用39 项目管理的经验项目管理的经验 其次,在项目实施过程中,关键是通过有效的组其次,在项目实施过程中,关键是通过有效的组织管理手段,控制项目范围和需求变更。
有的项目组织管理手段,控制项目范围和需求变更有的项目组尽管合同签订的条款对开发方有利,但到用户确认的尽管合同签订的条款对开发方有利,但到用户确认的时候却操作不下来,怕得罪用户,让用户需求放任自时候却操作不下来,怕得罪用户,让用户需求放任自流,导致的后果非常严重因为签订合同的往往是企流,导致的后果非常严重因为签订合同的往往是企业的技术领导,而最终用户是具体的业务部门,由于业的技术领导,而最终用户是具体的业务部门,由于用户内部沟通不畅,他们不清楚合同的具体条款,让用户内部沟通不畅,他们不清楚合同的具体条款,让业务部门提需求,就提得很多很杂,严重超出范围业务部门提需求,就提得很多很杂,严重超出范围因此,在该项目启动会议上,重点向各业务部门领导因此,在该项目启动会议上,重点向各业务部门领导和业务骨干郑重声明了合同技术条款、合同范围、超和业务骨干郑重声明了合同技术条款、合同范围、超范围或需求变更的收费原则范围或需求变更的收费原则6540 项目管理的经验项目管理的经验5 5、总体项目计划和阶段项目计划做到切实可行、总体项目计划和阶段项目计划做到切实可行 做计划是项目管理过程中的重要工作,一个切实可行做计划是项目管理过程中的重要工作,一个切实可行的项目计划是项目成功的重要保证。
项目计划应该包括项的项目计划是项目成功的重要保证项目计划应该包括项目概述、项目组织、项目预算、项目进度、配置计划、质目概述、项目组织、项目预算、项目进度、配置计划、质量计划和测试计划量计划和测试计划在该项目开始,们根据项目具体情况,将项目分为业在该项目开始,们根据项目具体情况,将项目分为业务需求分析、客户化设计、客户化实现、第一原型确认、务需求分析、客户化设计、客户化实现、第一原型确认、再客户化设计、实现、内部整体测试、现场安装调试、用再客户化设计、实现、内部整体测试、现场安装调试、用户模拟测试、试运行、正式运行、验收交付等阶段,确定户模拟测试、试运行、正式运行、验收交付等阶段,确定了每个阶段的主要任务、时间、责任人、工作目标、所需了每个阶段的主要任务、时间、责任人、工作目标、所需资源、对用户要求等,与用户协商达成共识,每个阶段的资源、对用户要求等,与用户协商达成共识,每个阶段的详细实施计划同样要与用户达成一致详细实施计划同样要与用户达成一致41 项目管理的经验项目管理的经验6 6、加强项目团队成员绩效管理和质量控制、加强项目团队成员绩效管理和质量控制 为了激励团队成员积极创新工作,提高团队绩效和为了激励团队成员积极创新工作,提高团队绩效和加强质量控制同样是保证项目成功的重要因素。
在项目加强质量控制同样是保证项目成功的重要因素在项目实施过程中,对于创新的点子和努力工作的成员制定了实施过程中,对于创新的点子和努力工作的成员制定了详细的奖励办法,而且每月、每周、甚至每天都有明确详细的奖励办法,而且每月、每周、甚至每天都有明确的工作任务和考核记录,整个项目下来,对每个团队成的工作任务和考核记录,整个项目下来,对每个团队成员都有综合评价,并根据绩效考核情况进行效益分配员都有综合评价,并根据绩效考核情况进行效益分配在质量控制方面,规定基本的质量控制由在质量控制方面,规定基本的质量控制由SQASQA组执行组执行检查,单元测试和集成测试由项目经理负责,最后的测检查,单元测试和集成测试由项目经理负责,最后的测试交测试部门进行试交测试部门进行分析设计文档要通过评审来保证质量分析设计文档要通过评审来保证质量6542 项目管理的经验项目管理的经验7 7、做好项目收尾工作和项目总结报告、做好项目收尾工作和项目总结报告 项目成功运行后,用户沉浸在新系统使用的兴奋中,项项目成功运行后,用户沉浸在新系统使用的兴奋中,项目组也终于得以解脱,其实,还有很重要的事情没有完成目组也终于得以解脱,其实,还有很重要的事情没有完成。
一方面,根据合同要进行项目移交,包含文档、数据、一方面,根据合同要进行项目移交,包含文档、数据、程序、使用规则、常见问题解决办法等的移交,以及对用户程序、使用规则、常见问题解决办法等的移交,以及对用户人员的使用和维护培训做这些事情的目的,不仅是执行合人员的使用和维护培训做这些事情的目的,不仅是执行合同条款,更关键地是保证用户方有足够的能力去完成系统的同条款,更关键地是保证用户方有足够的能力去完成系统的平滑运行平滑运行另一方面,对项目组而言,经过共同拼搏,最终让用户另一方面,对项目组而言,经过共同拼搏,最终让用户顺利投入运行,在业务、技术、管理等各方面有许多宝贵经顺利投入运行,在业务、技术、管理等各方面有许多宝贵经验和教训,要结,形成验和教训,要结,形成项目总结报告项目总结报告这点很重要,点很重要,它将促进项目团队不断吸取教训,重复过去成功的经验而它将促进项目团队不断吸取教训,重复过去成功的经验而且,通过总结、讨论和反思,让每个团队成员都会有不同程且,通过总结、讨论和反思,让每个团队成员都会有不同程度的进步,对提高团队综合素质具有重要意义度的进步,对提高团队综合素质具有重要意义43 项目管理原则项目管理原则1 1、平衡原则、平衡原则 就是要正确识别和善于处理就是要正确识别和善于处理4 4个要素之间的平衡关系。
个要素之间的平衡关系1 1、需求定义了项目的规模与范围;、需求定义了项目的规模与范围;2 2、资源决定了项目投入的人力、财力、物力有多少;、资源决定了项目投入的人力、财力、物力有多少;3 3、工期规定了项目的工作量和交付日期;、工期规定了项目的工作量和交付日期;4 4、质量定义了项目好到什么程度或达到什么标准质量定义了项目好到什么程度或达到什么标准违反了违反了4 4个要素间深刻的内部制约平衡关系,它是软件项个要素间深刻的内部制约平衡关系,它是软件项目管理中的大忌目管理中的大忌6544 项目管理原则项目管理原则2 2、高效原则、高效原则 在项目管理中,进度管理和质量管理是主要的管在项目管理中,进度管理和质量管理是主要的管理内容,是参与市场竞争的主要手段开发商越来越理内容,是参与市场竞争的主要手段开发商越来越追求开发效率,并且不断地从技术、方法、工具、管追求开发效率,并且不断地从技术、方法、工具、管理理4 4个方面寻求突破,这就是个方面寻求突破,这就是“高效原则高效原则”为了实现高效原则,必须采取下列措施:现高效原则,必须采取下列措施:(1)(1)选择合适成员,组成精英团队选择合适成员,组成精英团队。
2)(2)目标十分明确,范围非常清楚目标十分明确,范围非常清楚3)(3)工具相当熟练,方法完全成熟工具相当熟练,方法完全成熟4)(4)平常沟通及时,激励措施得当平常沟通及时,激励措施得当45 项目管理原则项目管理原则3 3、分解原则、分解原则 “化繁为简、各个击破化繁为简、各个击破”是解决复杂问题是解决复杂问题的法则该法则应用到软件项目管理中,将大的法则该法则应用到软件项目管理中,将大项自分解成几个小项目来做,将一个大风险分项自分解成几个小项目来做,将一个大风险分解为几个小风险,将周期长的项自分解成几个解为几个小风险,将周期长的项自分解成几个周期短的小项目来实现这样既可缓解资源压周期短的小项目来实现这样既可缓解资源压力,降低项目风险、减少项目难度,又可早出力,降低项目风险、减少项目难度,又可早出成果、分期满足用户的需求和调动团队的积极成果、分期满足用户的需求和调动团队的积极性46 项目管理原则项目管理原则 实时控制是项目经理每天要作的事,实时实时控制是项目经理每天要作的事,实时关注每个项目成员的工作进度和质量,发现问关注每个项目成员的工作进度和质量,发现问题,当即改正,没改好就不能去休息。
题,当即改正,没改好就不能去休息项目组每天进行一次提交、编译和连接,项目组每天进行一次提交、编译和连接,以此采测试接口、检查进度、寻找以此采测试接口、检查进度、寻找BugBug、及时、及时沟通它要求项目经理有很高的水平、很多的沟通它要求项目经理有很高的水平、很多的实战经验和自觉的牺牲精神它的好处是问题实战经验和自觉的牺牲精神它的好处是问题发现早,解决快,进展情况可见度高发现早,解决快,进展情况可见度高47 项目管理原则项目管理原则5 5、分类管理原则、分类管理原则 站在公司的高度来看项目管理,一条重要原则就站在公司的高度来看项目管理,一条重要原则就是是“分类管理分类管理”原则古人云:原则古人云:“因材施教因材施教”,“对对症下药症下药”,就是这个道理项目分两大类:订单项目,就是这个道理项目分两大类:订单项目和非订单项目,每一类中又分为大、中、小和非订单项目,每一类中又分为大、中、小3 3个等级订单项目是为用户定制的项目,非订单项目是公司根订单项目是为用户定制的项目,非订单项目是公司根据市场需求而立项的产品研发项目公司对于两类、据市场需求而立项的产品研发项目公司对于两类、3 3个等级的项目管理,要分别采取不同的管理方法,个等级的项目管理,要分别采取不同的管理方法,不同点体现在立项手续的完备性、管理审批的权限性、不同点体现在立项手续的完备性、管理审批的权限性、计划的严格性、成本核算的严肃性、文档的规范性、计划的严格性、成本核算的严肃性、文档的规范性、跟踪的实时性、评审和审计的力度等方面。
跟踪的实时性、评审和审计的力度等方面6548 项目管理原则项目管理原则6 6简单有效原则简单有效原则 就是不要给项目组成员增添太多的麻烦,就能就是不要给项目组成员增添太多的麻烦,就能有效地管理好项目为此,项目经理应该明确一个有效地管理好项目为此,项目经理应该明确一个概念:搞项目管理不是搞学术研究,世上没有完美概念:搞项目管理不是搞学术研究,世上没有完美的管理,只有有效的管理的管理,只有有效的管理项目经理不能试图堵住所有的漏洞,解决所有项目经理不能试图堵住所有的漏洞,解决所有的问题如果追求完美的管理,就会使项目管理陷的问题如果追求完美的管理,就会使项目管理陷入误区,项目经理就会作茧自缚,最后无法实施有入误区,项目经理就会作茧自缚,最后无法实施有效的管理,导致项目以失败告终效的管理,导致项目以失败告终49 项目管理原项目管理原7 7、规模控制原则、规模控制原则 项目团队规模不宜太大,因为人数多了,讲行沟项目团队规模不宜太大,因为人数多了,讲行沟诵的渠道就多了,管理的难度系数增大,从而对项目诵的渠道就多了,管理的难度系数增大,从而对项目经理的要求就更高了经理的要求就更高了要控制项目组的人数,最好是在要控制项目组的人数,最好是在7 78 8人之内,一人之内,一般不要超过般不要超过1010人,微软项目组内的人数一般为人,微软项目组内的人数一般为5 5个人个人左右。
因为兵不在多,而在精,即左右因为兵不在多,而在精,即“精兵强将精兵强将”6550 项目管理原项目管理原8 8、选项目经理原则是、选项目经理原则是“八要八不要八要八不要”:(1 1)要有公正无私的项目管理精神,不要)要有公正无私的项目管理精神,不要搞派性、论资排辈或谋取私利搞派性、论资排辈或谋取私利2 2)要有良好的职业行道德,不要隐瞒项)要有良好的职业行道德,不要隐瞒项目进展的真相目进展的真相3 3)要有管理项目的基本知识和技能,不)要有管理项目的基本知识和技能,不要心有余而力也有余要心有余而力也有余51 项目管理原项目管理原 (4 4)要有很好的沟通和表达能力,不要性格)要有很好的沟通和表达能力,不要性格内向、会干不会说内向、会干不会说5 5)要有较强的分析和解决问题的能力,)要有较强的分析和解决问题的能力,不要麻木不仁、延误时机不要麻木不仁、延误时机6 6)要技术全面,不要面面精通要技术全面,不要面面精通7 7)要谦虚谨慎,不要不懂装懂要谦虚谨慎,不要不懂装懂8 8)要平易近人,不要官气十足要平易近人,不要官气十足6552 项目管理原则项目管理原则9 9、任用项目经理原则、任用项目经理原则 项目组是一个临时性的战斗组织,不是一个项目组是一个临时性的战斗组织,不是一个常设机构。
因此,必须充分相信项目经理,充常设机构因此,必须充分相信项目经理,充分授予管理权利、资源分配权利,让他放心大分授予管理权利、资源分配权利,让他放心大胆地干古人云:胆地干古人云:“疑人不用,用人不疑疑人不用,用人不疑”,就是这个道理项目经理只有靠自己能力和权就是这个道理项目经理只有靠自己能力和权利,才能高效地动作项目开发过程利,才能高效地动作项目开发过程6553 项目管理原则项目管理原则 项目经理是干出来的,不是学出来的;是带项目经理是干出来的,不是学出来的;是带出来的,不是教出来的只学不干,是绝对出出来的,不是教出来的只学不干,是绝对出不来项目经理的光干不学,只能做一个小项不来项目经理的光干不学,只能做一个小项目经理,因为他只是一个经验主义者,缺乏理目经理,因为他只是一个经验主义者,缺乏理论指导,有些问题的认识可能上不去,所以不论指导,有些问题的认识可能上不去,所以不能成不器能成不器总之,项目经理必须通过干才能成熟起来,总之,项目经理必须通过干才能成熟起来,只有通过学才能提高起来,干字当头,学在其只有通过学才能提高起来,干字当头,学在其中,干学并用,互相促进,这就是项目经理成中,干学并用,互相促进,这就是项目经理成长的道路。
长的道路54 项目管理原则项目管理原则10、撤换项目经理原则、撤换项目经理原则 古人云:古人云:“临阵不宜换帅临阵不宜换帅”临阵换帅也是项目临阵换帅也是项目管理中的大忌然而,撤换项目经理的事在管理中的大忌然而,撤换项目经理的事在IT企业常企业常有发生,为了预防情况发生,在项目启动初期就要识有发生,为了预防情况发生,在项目启动初期就要识别并处理这一风险,具体办法是:在项目组内部实行别并处理这一风险,具体办法是:在项目组内部实行AB角色制,即有一名成员能够与项目经理一样熟悉角色制,即有一名成员能够与项目经理一样熟悉项目的整体进展情况,一旦项目经理因故离开,此人项目的整体进展情况,一旦项目经理因故离开,此人就能随时补上就能随时补上6555 项目管理原则项目管理原则如果必须撤换项目经理,也要选择合适时机,如果必须撤换项目经理,也要选择合适时机,比如需求分析完了,或系统设计完了,或开发比如需求分析完了,或系统设计完了,或开发完毕进入了实施阶段完毕进入了实施阶段以上的以上的“项目管理项目管理10大原则大原则”,是在多家,是在多家IT企业的多个项目管理实践中,根据许多成功或企业的多个项目管理实践中,根据许多成功或失败的案例,从正反两个方面总结出来的经验失败的案例,从正反两个方面总结出来的经验与理论。
它来自于与理论它来自于IT企业,又服务于企业,又服务于IT企业企业6556 软件企业文化软件企业文化 将软件企业文化当做软件过程管理的一种模式,将软件企业文化当做软件过程管理的一种模式,纳入软件工程研究的范畴,是软件工程发展史上纳入软件工程研究的范畴,是软件工程发展史上的一件大事软件是一种智力产品,软件人员的的一件大事软件是一种智力产品,软件人员的智力本身既是一种有形资产,又是智力本身既是一种有形资产,又是种无形资产种无形资产在软件企业文化的研究方面,微软做得比较突出在软件企业文化的研究方面,微软做得比较突出读者知道吗:什么叫读者知道吗:什么叫“微软微软”?“?“微微”就是就是一切从员工出发,为员工考虑,因为员工是公司一切从员工出发,为员工考虑,因为员工是公司的一个基本粒子的一个基本粒子软软”就是为每一个员工施展就是为每一个员工施展才华、发挥潜能准备好软环境,才华和潜能是软才华、发挥潜能准备好软环境,才华和潜能是软的,很有伸缩性,硬环境重要,软环境更重要的,很有伸缩性,硬环境重要,软环境更重要6557 软件企业文化软件企业文化 微软微软“平等、自由、亲和、融洽、激情、沟通和主人平等、自由、亲和。