软件项目开发管理陈志成北京东方瑞威科技发展有限公司2007.03.24计算机软件培训讲座讲座内容一、项目管理相关概念二、软件项目管理系统三、项目管理层次结构四、研发部的建设方面一、项目管理的相关概念1.1什么是项目?根据美国项目管理协会(PMI)的定义:项目是为完成某一独特的产品或服务所做的一次性努力。从根本上说,项目就是一系列的相关工作。项目管理是20世纪40年代以后迅速发展起来的一门科学,是现代管理学中的一个重要分支。中国项目管理研究委员会对项目的定义是:项目是一个特殊的将被完成的有限任务。它是在一定时间内,满足一系列特定目标的多项相关工作的总称。根据这个定义,项目实际包含3层含义:(1)项目是一项有待完成的任务,有特定的环境和要求;(2)在一定的组织机构内,利用有限资源(人力、物力、财力等),在规定的时间内(指项目有明确的开始时间和结束时间)为特定客户完成特定目标的阶段性任务;(3)任务要满足一定性能、质量、数量、技术指标等要求。项目的基本特征:项目的独特性。项目的一次性。项目的组织性。项目的生命期。项目的资源消耗性。项目的目标冲突性。项目后果的不确定性。范围时间成本目标要求预算费用完成期限1.2什么是项目管理?按PMI的定义:项目管理就是“在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求”。中国项目管理研究委员会对项目管理总结为:“项目管理”一词具有两种不同的含义,其一是指一种管理活动;其二是指一种管理学科,前者是一种客观的实践活动,后者是前者的理论总结;前者以后者为指导,后者以前者为基础。项目管理贯穿整个项目的生命期,是对项目的全过程管理。项目管理的特点:项目管理的对象是项目。系统工程思想贯穿项目管理的全过程。项目管理的组织:具有一定的特殊性。项目管理的体制是基于团队管理的个人负责制,项目经理是整个项目组中协调、控制的关键。项目管理的要点是创造和保持一个使项目顺利进行的环境,使置身于这个环境的人们能在集体中协调工作以完成预定的目标。项目管理的方法、工具和技术手段具有先进性。1.3项目管理的基本内容PMI编写的《项目管理知识体系》将项目管理划分为9个知识领域:范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、采购管理、风险管理和综合管理。而中国项目管理研究委员会则将项目管理的内容概括为2个层次、4个阶段、5个过程、9大知识领域、42个要素及多个主体。项目管理基本内容项目层次企业层次项目层次项目主体业主承包商监理用户项目阶段概念阶段开发阶段实施阶段收尾阶段基本过程启动过程计划过程执行过程控制过程结束过程综合管理范围管理时间管理成本管理质量管理知识领域人力资源管理风险管理沟通管理采购管理项目与项目管理项目管理的运行通过项目进行管理系统方法与综合项目背景项目阶段与生命周期项目开发与评估项目目标与策略项目成功与失败标准项目启动项目收尾项目结构范围与内容时间进度资源项目费用与融资技术状态与变化项目风险效果度量项目控制信息、文档与报告项目组织团队工作领导沟通冲突与危机采购与合同项目质量管理项目信息学标准与规范问题解决项目后评价项目监理与监督业务流程人力资源开发组织的学习知识要素变化管理项目投资体制系统管理项目管理的基本内容1.项目综合管理项目其包括3个基本的子过程:制订项目计划;项目计划执行;综合变更控制。2.项目范围管理PMBOK将其分成5个阶段:启动;范围计划;范围界定;范围核实;范围变更控制。3.项目时间管理PMBOK提出,项目时间管理由下述5项任务组成:活动定义;活动排序;活动时间估计;项目进度编制;项目进度控制。4.项目成本管理包括以下4个过程:制订资源计划;成本估计;成本预算;成本控制。5.项目质量管理主要包括以下4个过程:质量规划;质量控制;质量保证;全面质量管理。项目管理的基本内容6.项目人力资源管理包括如下几个主要的过程:人力资源规划;招聘与解聘;筛选;定向;培训;绩效评估;职业发展;团队建设。7.项目风险管理PMBOK将其归纳为4个主要过程:风险识别;风险估计;风险应对计划;风险控制。8.项目沟通管理包括如下一些基本的过程:编制沟通计划;信息传递;绩效报告;管理收尾。9.项目采购管理主要包括:编制采购计划;编制询价计划;询价;选择供应商;合同管理;合同收尾。1.4项目管理的成功因素范围(Scope)时间(Time)成本(Cost)质量(Quality)1.5软件项目管理的特点:软件项目将限制在以软件开发、集成和实施为主要目的的项目范围内。软件项目具有自己非常明显的特点:阶段性(紧迫性)、独特性和不确定性。软件项目管理和其他项目管理相比,具有很大的独特性:生产无形的产品生产无形的产品过程没有明显的划分大都是“一次性”的人力消耗型项目1.6软件项目管理的主要活动软件项目管理主要的活动包括:l编写项目建议书l项目成本的度量l项目计划和进度安排l项目监控和复审l人员选择和评估l项目报告的准备和发布软件项目开发阶段供决策参考提出可行性分析修改意见项目咨询人员项目开发准备阶段调查研究阶段项目分析阶段项目设计阶段项目实施阶段维护与评价阶段项目咨询人员项目专业管理人员项目专业管理人员软件设计人员软件设计人员操作人员操作人员新的项目准备软件项目的开发阶段1.7软件项目的组织结构软件项目的组织结构项目经理产品项目组主程序员组程序员的工作效率软件项目的组织结构软件项目经理软件项目总监程序项目经理程序项目经理质量项目经理软件项目经理软件项目经理软件项目经理产品组负责人产品组负责人产品组负责人QA1QA2QA31.8程序员的工作效率项目经理的基本职责可以归纳为领导项目的计划、组织和控制工作,以实现项目的目标,即项目经理领导项目团队完成项目目标,项目经理需要协调各个团队成员的活动,使这些成员成为一个和谐的整体,履行各自的工作。在软件项目中对工作效率的度量主要是采取间接测量的方法。几种常用的间接测量方法有:l每人月代码行(LOC)l每人月编的目标指令(OI)l每人月写的文档页数(POD)l每人月测试和执行的错误数(T&E)1.9软件项目开发周期总开发时间包括分析和设计时间、编码时间、测试时间和编写文档的时间,其中编码时间只是其中的一部分,关系如图。分析时间设计时间编码时间测试及编写文档时间项目开发时间1.10软件项目开发模型瀑布模型原型模型螺旋模型软件项目开发模型(1)瀑布模型:是美国WinstonRoyce向IEEEWESCON(Royce,Winston1970)提交的一篇名为《管理大规模软件系统的开发》的论文中首次提出的。由于这种方法是从一个阶段成瀑布流入下一个阶段,所以这个模型就称为“瀑布模型”。瀑布模型有很多的变化,包括以下的阶段:需求分析与定义,系统设计与软件设计,系统实施与单元测试,系统集成与系统测试,系统运行与系统维护。瀑布模型:需求分析与定义系统设计与软件设计系统实施与单元测试系统集成与系统测试软件开发瀑布模型及不同阶段之间的交互系统运行与系统维护软件项目开发模型(2)原型模型(Prototype):l直观、形象,更多地遵循了人们认识事物的规律,因而更容易被人们接受。l采用模拟的手段,缩短了用户和系统分析、设计人员之间的距离。l在整个系统开发过程中反馈是及时的,标准是统一的,可及时地暴露问题,确保系统实现的正确性。l充分利用了新一代的软件工具,使得系统开发和运行的效率都大大提高。原型模型的基本过程用户提出系统需求识别并归纳用户需求快速开发一个模型确定模型后的处理系统运行、维护重新设计或选择模型满意模型不满意原型法的基本过程评价模型模型不可行修改模型软件项目开发模型:(3)螺旋模型风险分析风险分析风险分析风险分析原型1原型2原型3可用原型建模模拟评价软件需求需求确认操作概念需求计划开发计划软件产品设计设计确认与验证集成与测试计划详细设计编码单元测试集成测试接收测试实现成本评审制订下阶段计划确定下阶段目标和约束条件风险分析、构造原型开发、验证阶段软件产品过程迭代二、软件项目管理系统2.1项目管理系统的必要性(1)项目管理系统用于进行工作的派分,执行情况的跟踪,效果的监控,对项目的整个实施过程的进行管理。执行中可以及时报告工作的进展情况和帮助公司的管理和决策人员对资源进行合理分配。(2)通过对软件工程项目的管理,可以避免软件公司因为人员的流动对公司造成的巨大损失。同时因为管理系统记录了项目的详细过程信息,也为项目以后的升级和完善提供了宝贵的可供查询的第一手资料。(3)软件项目管理系统的价值体现在:增加项目进度可控性,降低项目风险提供绩效考核和项目任务分派的依据以电子PM协助人工PM,(注:PM指项目管理)公司领导层对所有项目情况可即时掌控领先的配置管理,提高软件质量项目管理系统的介绍声明:目前公司软件存在部分问题是由于技术原因导致的,但是也有部分问题是由于软件管理、版本混乱引起的。以我开发项目的经历为例进行说明,采用的项目管理模式基本上类似与微软的模式,但没有他们那样强大。介绍项目管理系统,并不意味着大家一定也要开发这样一个系统,根据公司情况进行辨证吸收、适当借鉴、灵活运用到管理中去。由于人工管理的“灵活性、难于统计”,所以利用管理系统来进行管理更为客观、重要的便于统计、查询进展状态。2.2软件项目管理系统界面软件项目的自动日测试报表重点项目需要建设网站2.3项目管理系统的功能特征(1)预警功能——系统监控系统每日自动进行预警试算,及时发现项目执行过程中的问题,加强项目执行过程的监控。预警项的值用户可以定制,具体内容的内容包括:任务进度比时间进度慢任务超时添加记录不及时审核处理时间超期工作饱和度超差工作确认不及时任务超过开始时间未执行任务分解——工作分解,责任到人项目管理系统的功能特征(2)项目人员组织结构——灵活的人力资源配置兼容职能型人力资源结构和项目型人力资源结构特征,符合矩阵型人员组织结构特征。(3)互审机制——共同认可项目和任务都有两个重要的角色:负责角色和管理角色项目中:项目主管(负责角色),直属领导(管理角色)任务中:任务负责人(负责角色),任务管理者(管理角色)系统中的所有工作的分配,执行过程的变更和最后完成,都需要两个角色(执行角色和管理角色)互相审核,双方同意。项目管理系统的功能特征(4)与CVS有机结合——与源代码管理无缝结合记录用户Checkin到CVS源代码文件,可以查看这些文件的历史,下载,并可以对比不同版本文件的差别。(5)项目文档管理项目和任务的管理重视文档的管理,文档作为工作的输入,并要求输出文档(完成的要求)。并可以进行文档查询和输出文档的汇总。(6)关键路径计算——标识项目实施过程中的风险计划的关键路径在执行过程中会发生变化,可能一个很小的任务不在关键路径上,但在实施过程中,此任务严重滞后,就可能变成关键路径。本系统在项目的执行过程,动态绘出项目的关键路径,提示项目主管注意关键路径上的任务。项目管理系统的功能特征(7)模板功能——借鉴专家知识,简化任务分解项目模板,一个可以直接复制的任务分解结构图,可以:标准化项目过程执行借鉴专家经验,为任务分解提供参考,为项目划分提供指导授权功能——临时转交自己负责的工作通过功能将自己负责或者管理的任务临时转给其它人。对于临时请假和出差的用户非常方便,避免了一些工作因为本人不在而导致不能及时处理。项目管理系统的功能特征(8)项目试算功能——可以提前预知变化对项目实施产生的影响根据用户对任务(可以多个)几个参数值的变更,计算出此变更对整个项目的影响。根据计划开始时间,计划完成时间,每日投入,完成进度,当前时间动态计算给出此次更改对项目和其它任务产生的影响。(9)与Email系统结合并记录用户操作日志系统的每个操作会实时发送Email通告相关人员,同时将用户的操作记录保存成日志。此功能的使用还可以灵活配置。三、项目管理的层次结构3