版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件项目开发管理
陈志成
北京东方瑞威科技发展有限公司
2007.03.24计算机软件培训讲座软件项目开发管理
陈志讲座内容一、项目管理相关概念二、软件项目管理系统三、项目管理层次结构四、研发部的建设方面讲座内容一、项目管理相关概念一、项目管理的相关概念一、项目管理的相关概念1.1什么是项目?根据美国项目管理协会(PMI)的定义:项目是为完成某一独特的产品或服务所做的一次性努力。从根本上说,项目就是一系列的相关工作。项目管理是20世纪40年代以后迅速发展起来的一门科学,是现代管理学中的一个重要分支。中国项目管理研究委员会对项目的定义是:项目是一个特殊的将被完成的有限任务。它是在一定时间内,满足一系列特定目标的多项相关工作的总称。根据这个定义,项目实际包含3层含义:(1)
项目是一项有待完成的任务,有特定的环境和要求;(2)
在一定的组织机构内,利用有限资源(人力、物力、财力等),在规定的时间内(指项目有明确的开始时间和结束时间)为特定客户完成特定目标的阶段性任务;(3)
任务要满足一定性能、质量、数量、技术指标等要求。1.1什么是项目?根据美国项目管理协会(PMI)的定义:项项目的基本特征:项目的独特性。项目的一次性。项目的组织性。项目的生命期。项目的资源消耗性。项目的目标冲突性。项目后果的不确定性。范围时间成本目标要求预算费用完成期限项目的基本特征:项目的独特性。范围时间成本目标要求预算完成1.2什么是项目管理?按PMI的定义:项目管理就是“在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求”。中国项目管理研究委员会对项目管理总结为:“项目管理”一词具有两种不同的含义,其一是指一种管理活动;其二是指一种管理学科,前者是一种客观的实践活动,后者是前者的理论总结;前者以后者为指导,后者以前者为基础。项目管理贯穿整个项目的生命期,是对项目的全过程管理。1.2什么是项目管理?按PMI的定义:项目管理就是“在项目项目管理的特点:项目管理的对象是项目。系统工程思想贯穿项目管理的全过程。项目管理的组织:具有一定的特殊性。项目管理的体制是基于团队管理的个人负责制,项目经理是整个项目组中协调、控制的关键。项目管理的要点是创造和保持一个使项目顺利进行的环境,使置身于这个环境的人们能在集体中协调工作以完成预定的目标。项目管理的方法、工具和技术手段具有先进性。项目管理的特点:项目管理的对象是项目。1.3项目管理的基本内容PMI编写的《项目管理知识体系》将项目管理划分为9个知识领域:范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、采购管理、风险管理和综合管理。而中国项目管理研究委员会则将项目管理的内容概括为2个层次、4个阶段、5个过程、9大知识领域、42个要素及多个主体。1.3项目管理的基本内容PMI编写的《项目管理知识体系》将项目管理
基本内容项目管理
基本内容项目管理的基本内容1.项目综合管理项目其包括3个基本的子过程:制订项目计划;项目计划执行;综合变更控制。2.项目范围管理
PMBOK将其分成5个阶段:启动;范围计划;范围界定;范围核实;范围变更控制。3.项目时间管理
PMBOK提出,项目时间管理由下述5项任务组成:活动定义;活动排序;活动时间估计;项目进度编制;项目进度控制。4.项目成本管理包括以下4个过程:制订资源计划;成本估计;成本预算;成本控制。5.项目质量管理主要包括以下4个过程:质量规划;质量控制;质量保证;全面质量管理。项目管理的基本内容1.项目综合管理项目其包括3个基项目管理的基本内容6.项目人力资源管理包括如下几个主要的过程:人力资源规划;招聘与解聘;筛选;定向;培训;绩效评估;职业发展;团队建设。7.项目风险管理
PMBOK将其归纳为4个主要过程:风险识别;风险估计;风险应对计划;风险控制。8.项目沟通管理包括如下一些基本的过程:编制沟通计划;信息传递;绩效报告;管理收尾。9.项目采购管理主要包括:编制采购计划;编制询价计划;询价;选择供应商;合同管理;合同收尾。项目管理的基本内容6.项目人力资源管理包括如下几个主要1.4项目管理的成功因素范围(Scope)时间(Time)成本(Cost)质量(Quality)1.4项目管理的成功因素范围(Scope)1.5软件项目管理的特点:软件项目将限制在以软件开发、集成和实施为主要目的的项目范围内。软件项目具有自己非常明显的特点:阶段性(紧迫性)、独特性和不确定性。软件项目管理和其他项目管理相比,具有很大的独特性:生产无形的产品生产无形的产品过程没有明显的划分大都是“一次性”的人力消耗型项目1.5软件项目管理的特点:软件项目将限制在以软件开发、集成1.6软件项目管理的主要活动软件项目管理主要的活动包括:l
编写项目建议书l
项目成本的度量l
项目计划和进度安排l
项目监控和复审l
人员选择和评估l
项目报告的准备和发布1.6软件项目管理的主要活动软件项目管理主要的活动包括:软件项目开发阶段供决策参考提出可行性分析修改意见项目咨询人员项目开发准备阶段调查研究阶段项目分析阶段项目设计阶段项目实施阶段维护与评价阶段项目咨询人员项目专业管理人员项目专业管理人员软件设计人员软件设计人员操作人员操作人员新的项目准备软件项目的开发阶段软件项目开发阶段供决策参考提出可行性分析修改意见项目咨询1.7软件项目的组织结构软件项目的组织结构项目经理产品项目组主程序员组程序员的工作效率1.7软件项目的组织结构软件项目的组织结构软件项目的组织结构软件项目经理软件项目总监程序项目经理程序项目经理质量项目经理软件项目经理软件项目经理软件项目经理产品组负责人产品组负责人产品组负责人QA1QA2QA3软件项目的组织结构软件项目经理软件项目总监程序项目经理程序项1.8程序员的工作效率
项目经理的基本职责可以归纳为领导项目的计划、组织和控制工作,以实现项目的目标,即项目经理领导项目团队完成项目目标,项目经理需要协调各个团队成员的活动,使这些成员成为一个和谐的整体,履行各自的工作。在软件项目中对工作效率的度量主要是采取间接测量的方法。几种常用的间接测量方法有:
l
每人月代码行(LOC)l
每人月编的目标指令(OI)l
每人月写的文档页数(POD)l
每人月测试和执行的错误数(T&E)1.8程序员的工作效率项目经理的基本职责可以归纳为领导项1.9软件项目开发周期总开发时间包括分析和设计时间、编码时间、测试时间和编写文档的时间,其中编码时间只是其中的一部分,关系如图。分析时间设计时间编码时间测试及编写文档时间项目开发时间1.9软件项目开发周期总开发时间包括分析和设计时间、编码时1.10软件项目开发模型
瀑布模型
原型模型螺旋模型1.10软件项目开发模型瀑布模型软件项目开发模型(1)瀑布模型:
是美国WinstonRoyce向IEEEWESCON(Royce,Winston1970)提交的一篇名为《管理大规模软件系统的开发》的论文中首次提出的。由于这种方法是从一个阶段成瀑布流入下一个阶段,所以这个模型就称为“瀑布模型”。瀑布模型有很多的变化,包括以下的阶段:需求分析与定义,系统设计与软件设计,系统实施与单元测试,系统集成与系统测试,系统运行与系统维护。软件项目开发模型(1)瀑布模型:瀑布模型:需求分析与定义系统设计与软件设计系统实施与单元测试系统集成与系统测试软件开发瀑布模型及不同阶段之间的交互系统运行与系统维护瀑布模型:需求分析系统设计与系统实施与系统集成与软件开发软件项目开发模型(2)原型模型(Prototype):l
直观、形象,更多地遵循了人们认识事物的规律,因而更容易被人们接受。l
采用模拟的手段,缩短了用户和系统分析、设计人员之间的距离。l
在整个系统开发过程中反馈是及时的,标准是统一的,可及时地暴露问题,确保系统实现的正确性。l
充分利用了新一代的软件工具,使得系统开发和运行的效率都大大提高。
软件项目开发模型(2)原型模型(Prototype):原型模型的基本过程用户提出系统需求识别并归纳用户需求快速开发一个模型确定模型后的处理系统运行、维护重新设计或选择模型满意模型不满意原型法的基本过程评价模型模型不可行修改模型原型模型的基本过程用户提出系统需求识别并归纳用户需求快速开软件项目开发模型:(3)螺旋模型风险分析风险分析风险分析风险分析原型1原型2原型3可用原型建模模拟评价软件需求需求确认操作概念需求计划开发计划软件产品设计设计确认与验证集成与测试计划详细设计编码单元测试集成测试接收测试实现成本评审制订下阶段计划确定下阶段目标和约束条件风险分析、构造原型开发、验证阶段软件产品过程迭代软件项目开发模型:(3)螺旋模型风险分析风险分析风险分析风二、软件项目管理系统二、软件项目管理系统2.1项目管理系统的必要性(1)
项目管理系统用于进行工作的派分,执行情况的跟踪,效果的监控,对项目的整个实施过程的进行管理。执行中可以及时报告工作的进展情况和帮助公司的管理和决策人员对资源进行合理分配。(2)
通过对软件工程项目的管理,可以避免软件公司因为人员的流动对公司造成的巨大损失。同时因为管理系统记录了项目的详细过程信息,也为项目以后的升级和完善提供了宝贵的可供查询的第一手资料。(3)
软件项目管理系统的价值体现在:增加项目进度可控性,降低项目风险提供绩效考核和项目任务分派的依据以电子PM协助人工PM,(注:PM指项目管理)公司领导层对所有项目情况可即时掌控领先的配置管理,提高软件质量2.1项目管理系统的必要性(1)项目管理系统用于进行工项目管理系统的介绍声明:目前公司软件存在部分问题是由于技术原因导致的,但是也有部分问题是由于软件管理、版本混乱引起的。以我开发项目的经历为例进行说明,采用的项目管理模式基本上类似与微软的模式,但没有他们那样强大。介绍项目管理系统,并不意味着大家一定也要开发这样一个系统,根据公司情况进行辨证吸收、适当借鉴、灵活运用到管理中去。由于人工管理的“灵活性、难于统计”,所以利用管理系统来进行管理更为客观、重要的便于统计、查询进展状态。项目管理系统的介绍声明:2.2软件项目管理系统界面2.2软件项目管理系统界面软件项目的自动日测试报表软件项目的自动日测试报表重点项目需要建设网站重点项目需要建设网站2.3项目管理系统的功能特征预警功能——系统监控系统每日自动进行预警试算,及时发现项目执行过程中的问题,加强项目执行过程的监控。预警项的值用户可以定制,具体内容的内容包括:任务进度比时间进度慢任务超时添加记录不及时审核处理时间超期工作饱和度超差工作确认不及时任务超过开始时间未执行任务分解——工作分解,责任到人2.3项目管理系统的功能特征预警功能——系统监控项目管理系统的功能特征(2)项目人员组织结构——灵活的人力资源配置兼容职能型人力资源结构和项目型人力资源结构特征,符合矩阵型人员组织结构特征。(3)互审机制——共同认可项目和任务都有两个重要的角色:负责角色和管理角色项目中:项目主管(负责角色),直属领导(管理角色)任务中:任务负责人(负责角色),任务管理者(管理角色)系统中的所有工作的分配,执行过程的变更和最后完成,都需要两个角色(执行角色和管理角色)互相审核,双方同意。项目管理系统的功能特征(2)项目人员组织结构——灵活的人力项目管理系统的功能特征(4)与CVS有机结合——与源代码管理无缝结合记录用户Checkin到CVS源代码文件,可以查看这些文件的历史,下载,并可以对比不同版本文件的差别。(5)项目文档管理项目和任务的管理重视文档的管理,文档作为工作的输入,并要求输出文档(完成的要求)。并可以进行文档查询和输出文档的汇总。(6)关键路径计算——标识项目实施过程中的风险计划的关键路径在执行过程中会发生变化,可能一个很小的任务不在关键路径上,但在实施过程中,此任务严重滞后,就可能变成关键路径。本系统在项目的执行过程,动态绘出项目的关键路径,提示项目主管注意关键路径上的任务。项目管理系统的功能特征(4)与CVS有机结合——与源代码管项目管理系统的功能特征(7)模板功能——借鉴专家知识,简化任务分解项目模板,一个可以直接复制的任务分解结构图,可以:标准化项目过程执行借鉴专家经验,为任务分解提供参考,为项目划分提供指导授权功能——临时转交自己负责的工作通过功能将自己负责或者管理的任务临时转给其它人。对于临时请假和出差的用户非常方便,避免了一些工作因为本人不在而导致不能及时处理。项目管理系统的功能特征(7)模板功能——借鉴专家知识,简化项目管理系统的功能特征(8)项目试算功能——可以提前预知变化对项目实施产生的影响根据用户对任务(可以多个)几个参数值的变更,计算出此变更对整个项目的影响。根据计划开始时间,计划完成时间,每日投入,完成进度,当前时间动态计算给出此次更改对项目和其它任务产生的影响。(9)与Email系统结合并记录用户操作日志系统的每个操作会实时发送Email通告相关人员,同时将用户的操作记录保存成日志。此功能的使用还可以灵活配置。项目管理系统的功能特征(8)项目试算功能——可以提前预知变三、项目管理的层次结构三、项目管理的层次结构3.1项目的体系结构项目的体系结构为树型结构,包括项目、阶段、任务三层:第一层:项目(信息类别包括:基本,文档,人员,预警)第二层:阶段(或模块)(隶属于项目)有时序关系的称为“阶段”,如是功能结构上的划分,称为“模块”。阶段和模块同属于一个层次,本文暂时以阶段为例进行说明。第三层:任务(隶属于阶段或模块)其中:任务层的任务可以无限层次划分。3.1项目的体系结构各层次的概念(1)项目概念项目是项目管理系统中最大的管理单元,一般是具有特定目的的工程,主要指一个成型(整体)的软件产品。(2)阶段概念阶段体现了我们在做一个项目的时候里程碑的概念。阶段必须在项目下,由项目主管负责创建,项目较大的项目一般有多个阶段,个别小项目可以没有阶段。
模块属性模块是按照软件产品的结构、功能模块对项目进行细分,以便按照模块化的思想设计和生产软件产品。模块应该是有完整界面(接口)、提供一组完整,并且相关的功能的程序。每个模块都会从属于相应的项目。
(3)任务概念任务是项目系统最基本的工作单位和执行单位,每个人的工作是通过他本人负责的任务来体现的。各层次的概念(1)项目概念项目的层次结构项目的层次结构人员结构
项目的人员结构如下图所示,主要包括:项目主管,直属领导,相关领导,多个工作组(组长,组员)
人员结构项目的人员结构如下图所示,主要包括:项目主管,直属文档结构项目的文档分三个部分:(1)设计文档:关于项目的设计与实现思路方法、详细过程。(2)参考文档:同类项目的已有参考文献。(3)验收文档:项目的完成情况验收情况其中,设计文档和参考文档作为项目的输入信息(做什么,如何做),验收文档为项目的输出,是必须提交文档。文档结构项目的文档分三个部分:项目预警每个项目都有自己的预警配置,配置项目包括:任务进度比时间进度慢任务超时添加记录不及时审核处理时间超期任务超过开始时间未执行当系统执行过程中发生了进度等偏差会及时通报给相关人员,预警方式采用的是项目线和人事线双层预警,如下图所示,当满足某个条件就会预警并且会逐步升级。项目预警每个项目都有自己的预警配置,配置项目包括:项目预警项目预警3.2项目的属性项目名称:用以简明扼要的描述项目内容项目编号:系统自动生成项目主管:项目的负责人项目直属领导:项目的管理者相关领导:可以浏览项目的相关人员和相关领导项目邮件组:用于填写Checkin记录的项目邮件组地址项目描述:用以记录项目的详细描述开始时间:完成时间:记录项目的开始时间和预期完成时间计划开始时间默认为当前日期项目状态:该属性在项目提交以后出现,表示一个项目的状态,包括筹划、取消,执行,挂起和完成3.2项目的属性项目名称:用以简明扼要的描述项目的执行流程项目的执行流程3.3阶段的属性阶段名称:阶段的名字阶段编号:系统自动生成阶段描述:描述该阶段的任务,阶段特征等阶段状态:有三个状态:筹备,执行和完成(取消和挂起状态由项目控制)阶段位置:一个项目的所有阶段是顺序进行的,即A阶段完成开始B阶段,他们之间有严格的前后依赖关系,所以要为每个阶段确定一个顺序位置。阶段间的约束:如果一个阶段的状态被更改为完成,必须保证该阶段之前的阶段的状态为完成。阶段连动:一个阶段的状态更改为完成,系统会自动将其下一个阶段的状态更改为执行。3.3阶段的属性阶段名称:阶段的名字阶段编号:模块的属性所属项目:指明模块所属项目,该项由系统根据通过相应的项目进入添加模块页面的情况自动获取,为自动流水号;不可更改。模块名称:简明记录模块名称。模块负责人:指明模块负责人。模块成员:参与整个模块的成员列表,系统自动添加模块中的所有人员;这些成员包括模块、模块所包含任务的参与者。模块相关人员:记录与该模块相关的人员。描述信息:用以记录项目的详细描述。开始、计划完成时间:记录模块的开始时间和预期完成时间;计划开始时间默认为当前日期。模块编号:由系统自动编号,在模块提交以后生成,为自动流水号,不可更改。模块状态:该属性在模块提交以后出现,表示一个模块的状态,包括激活、取消和已完成;默认为激活;在模块提交以后可以修改。模块属性:该属性在模块提交以后出现,表示一个模块为公开还是保密,包括公开、保密两个选项;如果一个模块属性为公开,则所有人员都可以查看该模块;如果一个模块被标记为保密,则只有相关人员(负责人、相关人员和所包括任务等的相关人员)可以查看;默认为公开;在模块提交以后可以修改;模块的属性所属项目:指明模块所属项目,该项由系统根据通过相应阶段的执行流程阶段的执行流程3.4任务的属性任务ID:由系统自动编号,在任务提交以后生成,为自动流水号,不可更改任务简述:对任务的简要说明任务状态:任务最关键的属性。表示一个任务进展状态。包括待分配,执行,挂起,提交、取消和已完成几种状态任务描述:记录任务的详细描述信息任务负责人:负责整个任务的进程任务管理者:管理整个任务的相关事宜,比任务负责人的权限更大相关人员:与该任务相关的人员计划开始、完成时间:记录任务规划的开始时间和预期完成时间前序任务:表示在该任务之前的相关任务,填写任务号关键字:填写描述该任务的关键字,用于查询3.4任务的属性任务ID:由系统自动编号,在任务提交以后任务的执行流程任务的执行流程3.5项目管理系统页面:项目添加3.5项目管理系统页面:项目添加项目管理系统页面:项目查询项目管理系统页面:项目查询项目管理系统页面:任务查询项目管理系统页面:任务查询项目管理系统页面:项目文档查询项目管理系统页面:项目文档查询3.6项目管理系统的配置管理权限配置在项目管理过程中,我们要突出两个方面的权限管理:
(1)不同角色的人员具有不同权限。
(2)对任何人员,在他的权利之下,提供必要的自定义、可配置选项。对于项目信息的变更事件,相关人员可以配置是否保存日志和发送邮件,如果选择,则当有相关事件发生时,系统会自动发送邮件到相关人员。预警设置在项目管理过程中,一个重要的功能是项目预警,用户可以进行相关配置。(1)您可以关闭或开启预警开关。(2)系统可以自动,用户也可以设置参数后进行手动预警。(3)有预警信息时,系统会向用户发送预警信息。3.6项目管理系统的配置管理权限配置项目管理系统的配置管理:事件配置项目管理系统的配置管理:事件配置项目管理系统的配置管理:预警参数项目管理系统的配置管理:预警参数3.7记录、记录分类记录是软件开发过程中的重要环节,记录分为三种类别:
Checkin记录、BugFix记录、一般记录。(1)Checkin记录用于对于源代码的Checkin修改做记录,并自动发送邮件给相关人员。(2)BugFix记录用于对软件程序中的Bug修改做记录,并自动发送邮件给相关人员。(3)一般记录一般记录包括:普通记录、会议记录、设计报告记录。一般记录的格式可以只是文本,也可以包含图表,链接,图片等。不同类别的记录有着专门的格式,其内容包括相关的人员、事件(操作)、时间、地点等。3.7记录、记录分类记录是软件开发过程中的重3.8周报告周报告主要用于工作者在每周的最后一个工作日提交本周的工作情况,包括工作内容、成果和下周工作安排等。周报告包括以下属性:用户:提交周报告的用户上周工作计划:上一次提交报告中的下周工作计划上周工作记录:列出当前登录人员上周的所有记录列表本周工作内容:本周实际进行的工作内容本周完成工作:本周结束的工作,可以包括成果等内容发现的问题和建议:本周工作中发现的问题和建议下周工作计划:下周的工作计划,该项内容会在下一个周报中成为“上周工作计划”的内容3.8周报告周报告主要用于工作者在每周的最后一个工作日提四、研发部的建设方面四、研发部的建设方面4.1研发部的组织结构研发部:这里指工程研发部中的研发分部,为方便运用原研发部名称。就目前而言,研发部约8人,为提高研发能力,建议招3-4人,稳定到12人左右。分成四个小组,每组2-3人,四个小组分别为:T1,第一小组:技术支持与客户服务小组,简称支持组;T2,第二小组:新技术与新产品开发小组,简称开发组;T3,第三小组:已有软件的实施维护小组,简称维护组;T4,第四小组:软件测试与质量管理小组,简称测试组;各小组重点突出、责任明确、统计清晰,实行组长负责制。分工与协作并不矛盾,小组之间、成员之间需要相互协作,关键是依照流程规范工作。4.1研发部的组织结构研发部:这里指工程研发4.1研发部的组织结构4.1研发部的组织结构4.2部门管理与员工提升由于信息技术的发展十分迅速,研发人员需要实时学习以提高自身能力,同时提升公司的软件研发能力和产品竞争力。研发部门需要建立相应的管理机制和员工学习激励机制。计划从如下几个方面来考虑:建立软件项目管理系统建立周报告和周例会机制建立每两周一次的开发人员的学习提升讲座建立绩效评估机制建立与公司配套的其它管理体制(如新员工培训、提供学习资料等)4.2部门管理与员工提升由于信息技术的发展十分迅速,研发4.2部门管理与员工提升4.2部门管理与员工提升4.3建立完善的版本管理机制
在软件部门建立完善的软件版本管理机制,具体工作包含:(1)采用CVS或VSS等工具进行版本管理;(2)对现有人员手头上的各版本进行清理、归档,统一定为1.0版本,保存到服务器上;(3)在内部建立客户服务资料,建立软件的BUG问题跟踪、修复机制;(4)对今后的版本统一定为2.0,在新的平台下进行统一规划设计、开发、测试。4.3建立完善的版本管理机制在软件部门建立完善的软件4.4建立周报告和周例会机制
“周报告”是指:每周末下班前,每人都写个小结,不要求很多,主要是总结本周的工作情况,并写个下周的工作计划,记录到项目管理系统中,系统自动把周报告通过Email发送给项目经理及相关领导。“周例会”是指:
在每下周一要组织召开例会,大家相互介绍各自的工作情况,并针对碰到的软件或硬件的问题、方案、进展、计划等进行讨论,一般1小时。个别情况下讨论时间可长可短。周例会的内容也记录到项目管理系统中。4.4建立周报告和周例会机制“周报告”是指:4.5建立每两周一次的开发人员的学习提升讲座
每两周指定一个人员去了解、学习与轨道衡技术、软件开发技术相关的最新技术、工具、方法、思想等,然后在讲座时给大家介绍。根据目前我了解的情况来看,大家做事都很不错,但是对一些新技术的发展情况了解不多,长此下去会影响公司的开发进度和软件质量。在遇到问题时解决思路不宽阔,以为某些问题只能如何如何解决,事实上可能会有其它更好的解决方案。当然,具体什么部门采取什么形式的学习培训可以有所不同,对于开发人员,我的个人经验两周一次讲座较好,这绝对不是我是从学校当老师出来的缘故,而是不少公司的经验总结。
4.5建立每两周一次的开发人员的学习提升讲座每两周指4.6建立绩效评估机制
任何公司、公司的任何部门,都应该有其相应的绩效评估考核机制,对于规模较大的公司而言这更为重要。我刚来时就看见研发部有“先进集体的流动红旗”,这就很好,大家需要激励机制,尤其是年轻人。对于研发部内部而言,我们也要建立这样的机制,定期评选优秀员工,不定期奖励做出重要贡献(短期内解决重大问题、突破关键技术、或完成重要任务)的突出人才。关于研发部的具体考评和奖励指标,需要大家协商拟定。
4.6建立绩效评估机制任何公司、公司的任何部门,都应4.7软件开发的规范管理
软件开发是一项实践性很强的工程,它不仅需要开发人员掌握相关的技术知识,同时需要依照一定的开发流程来进行。技术知识保障软件的功能性、可扩展性;开发流程保障软件的可靠性、稳定性。目前涉及如下几个方面:并行开发与源代码管理的环境建设,搭建CVS服务器建立软件项目的需求分析与审评机制建立设计文档评审机制建立软件开发过程的代码质量管理机制建立代码测试机制通过ISO9000质量认证,以上这些规范公司都已经有相应的文档,我们希望在实际开发过程中真正应用起来。4.7软件开发的规范管理软件开发是一项实践性很强的工程,小结:项目管理的相关概念软件项目的层次结构软件项目管理系统研发部的建设情况重要概念:
项目、阶段、任务、管理系统、预警、记录、周报告小结:项目管理的相关概念谢谢大家!
Q&A?谢谢大家!
Q&A?软件项目开发管理
陈志成
北京东方瑞威科技发展有限公司
2007.03.24计算机软件培训讲座软件项目开发管理
陈志讲座内容一、项目管理相关概念二、软件项目管理系统三、项目管理层次结构四、研发部的建设方面讲座内容一、项目管理相关概念一、项目管理的相关概念一、项目管理的相关概念1.1什么是项目?根据美国项目管理协会(PMI)的定义:项目是为完成某一独特的产品或服务所做的一次性努力。从根本上说,项目就是一系列的相关工作。项目管理是20世纪40年代以后迅速发展起来的一门科学,是现代管理学中的一个重要分支。中国项目管理研究委员会对项目的定义是:项目是一个特殊的将被完成的有限任务。它是在一定时间内,满足一系列特定目标的多项相关工作的总称。根据这个定义,项目实际包含3层含义:(1)
项目是一项有待完成的任务,有特定的环境和要求;(2)
在一定的组织机构内,利用有限资源(人力、物力、财力等),在规定的时间内(指项目有明确的开始时间和结束时间)为特定客户完成特定目标的阶段性任务;(3)
任务要满足一定性能、质量、数量、技术指标等要求。1.1什么是项目?根据美国项目管理协会(PMI)的定义:项项目的基本特征:项目的独特性。项目的一次性。项目的组织性。项目的生命期。项目的资源消耗性。项目的目标冲突性。项目后果的不确定性。范围时间成本目标要求预算费用完成期限项目的基本特征:项目的独特性。范围时间成本目标要求预算完成1.2什么是项目管理?按PMI的定义:项目管理就是“在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求”。中国项目管理研究委员会对项目管理总结为:“项目管理”一词具有两种不同的含义,其一是指一种管理活动;其二是指一种管理学科,前者是一种客观的实践活动,后者是前者的理论总结;前者以后者为指导,后者以前者为基础。项目管理贯穿整个项目的生命期,是对项目的全过程管理。1.2什么是项目管理?按PMI的定义:项目管理就是“在项目项目管理的特点:项目管理的对象是项目。系统工程思想贯穿项目管理的全过程。项目管理的组织:具有一定的特殊性。项目管理的体制是基于团队管理的个人负责制,项目经理是整个项目组中协调、控制的关键。项目管理的要点是创造和保持一个使项目顺利进行的环境,使置身于这个环境的人们能在集体中协调工作以完成预定的目标。项目管理的方法、工具和技术手段具有先进性。项目管理的特点:项目管理的对象是项目。1.3项目管理的基本内容PMI编写的《项目管理知识体系》将项目管理划分为9个知识领域:范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、采购管理、风险管理和综合管理。而中国项目管理研究委员会则将项目管理的内容概括为2个层次、4个阶段、5个过程、9大知识领域、42个要素及多个主体。1.3项目管理的基本内容PMI编写的《项目管理知识体系》将项目管理
基本内容项目管理
基本内容项目管理的基本内容1.项目综合管理项目其包括3个基本的子过程:制订项目计划;项目计划执行;综合变更控制。2.项目范围管理
PMBOK将其分成5个阶段:启动;范围计划;范围界定;范围核实;范围变更控制。3.项目时间管理
PMBOK提出,项目时间管理由下述5项任务组成:活动定义;活动排序;活动时间估计;项目进度编制;项目进度控制。4.项目成本管理包括以下4个过程:制订资源计划;成本估计;成本预算;成本控制。5.项目质量管理主要包括以下4个过程:质量规划;质量控制;质量保证;全面质量管理。项目管理的基本内容1.项目综合管理项目其包括3个基项目管理的基本内容6.项目人力资源管理包括如下几个主要的过程:人力资源规划;招聘与解聘;筛选;定向;培训;绩效评估;职业发展;团队建设。7.项目风险管理
PMBOK将其归纳为4个主要过程:风险识别;风险估计;风险应对计划;风险控制。8.项目沟通管理包括如下一些基本的过程:编制沟通计划;信息传递;绩效报告;管理收尾。9.项目采购管理主要包括:编制采购计划;编制询价计划;询价;选择供应商;合同管理;合同收尾。项目管理的基本内容6.项目人力资源管理包括如下几个主要1.4项目管理的成功因素范围(Scope)时间(Time)成本(Cost)质量(Quality)1.4项目管理的成功因素范围(Scope)1.5软件项目管理的特点:软件项目将限制在以软件开发、集成和实施为主要目的的项目范围内。软件项目具有自己非常明显的特点:阶段性(紧迫性)、独特性和不确定性。软件项目管理和其他项目管理相比,具有很大的独特性:生产无形的产品生产无形的产品过程没有明显的划分大都是“一次性”的人力消耗型项目1.5软件项目管理的特点:软件项目将限制在以软件开发、集成1.6软件项目管理的主要活动软件项目管理主要的活动包括:l
编写项目建议书l
项目成本的度量l
项目计划和进度安排l
项目监控和复审l
人员选择和评估l
项目报告的准备和发布1.6软件项目管理的主要活动软件项目管理主要的活动包括:软件项目开发阶段供决策参考提出可行性分析修改意见项目咨询人员项目开发准备阶段调查研究阶段项目分析阶段项目设计阶段项目实施阶段维护与评价阶段项目咨询人员项目专业管理人员项目专业管理人员软件设计人员软件设计人员操作人员操作人员新的项目准备软件项目的开发阶段软件项目开发阶段供决策参考提出可行性分析修改意见项目咨询1.7软件项目的组织结构软件项目的组织结构项目经理产品项目组主程序员组程序员的工作效率1.7软件项目的组织结构软件项目的组织结构软件项目的组织结构软件项目经理软件项目总监程序项目经理程序项目经理质量项目经理软件项目经理软件项目经理软件项目经理产品组负责人产品组负责人产品组负责人QA1QA2QA3软件项目的组织结构软件项目经理软件项目总监程序项目经理程序项1.8程序员的工作效率
项目经理的基本职责可以归纳为领导项目的计划、组织和控制工作,以实现项目的目标,即项目经理领导项目团队完成项目目标,项目经理需要协调各个团队成员的活动,使这些成员成为一个和谐的整体,履行各自的工作。在软件项目中对工作效率的度量主要是采取间接测量的方法。几种常用的间接测量方法有:
l
每人月代码行(LOC)l
每人月编的目标指令(OI)l
每人月写的文档页数(POD)l
每人月测试和执行的错误数(T&E)1.8程序员的工作效率项目经理的基本职责可以归纳为领导项1.9软件项目开发周期总开发时间包括分析和设计时间、编码时间、测试时间和编写文档的时间,其中编码时间只是其中的一部分,关系如图。分析时间设计时间编码时间测试及编写文档时间项目开发时间1.9软件项目开发周期总开发时间包括分析和设计时间、编码时1.10软件项目开发模型
瀑布模型
原型模型螺旋模型1.10软件项目开发模型瀑布模型软件项目开发模型(1)瀑布模型:
是美国WinstonRoyce向IEEEWESCON(Royce,Winston1970)提交的一篇名为《管理大规模软件系统的开发》的论文中首次提出的。由于这种方法是从一个阶段成瀑布流入下一个阶段,所以这个模型就称为“瀑布模型”。瀑布模型有很多的变化,包括以下的阶段:需求分析与定义,系统设计与软件设计,系统实施与单元测试,系统集成与系统测试,系统运行与系统维护。软件项目开发模型(1)瀑布模型:瀑布模型:需求分析与定义系统设计与软件设计系统实施与单元测试系统集成与系统测试软件开发瀑布模型及不同阶段之间的交互系统运行与系统维护瀑布模型:需求分析系统设计与系统实施与系统集成与软件开发软件项目开发模型(2)原型模型(Prototype):l
直观、形象,更多地遵循了人们认识事物的规律,因而更容易被人们接受。l
采用模拟的手段,缩短了用户和系统分析、设计人员之间的距离。l
在整个系统开发过程中反馈是及时的,标准是统一的,可及时地暴露问题,确保系统实现的正确性。l
充分利用了新一代的软件工具,使得系统开发和运行的效率都大大提高。
软件项目开发模型(2)原型模型(Prototype):原型模型的基本过程用户提出系统需求识别并归纳用户需求快速开发一个模型确定模型后的处理系统运行、维护重新设计或选择模型满意模型不满意原型法的基本过程评价模型模型不可行修改模型原型模型的基本过程用户提出系统需求识别并归纳用户需求快速开软件项目开发模型:(3)螺旋模型风险分析风险分析风险分析风险分析原型1原型2原型3可用原型建模模拟评价软件需求需求确认操作概念需求计划开发计划软件产品设计设计确认与验证集成与测试计划详细设计编码单元测试集成测试接收测试实现成本评审制订下阶段计划确定下阶段目标和约束条件风险分析、构造原型开发、验证阶段软件产品过程迭代软件项目开发模型:(3)螺旋模型风险分析风险分析风险分析风二、软件项目管理系统二、软件项目管理系统2.1项目管理系统的必要性(1)
项目管理系统用于进行工作的派分,执行情况的跟踪,效果的监控,对项目的整个实施过程的进行管理。执行中可以及时报告工作的进展情况和帮助公司的管理和决策人员对资源进行合理分配。(2)
通过对软件工程项目的管理,可以避免软件公司因为人员的流动对公司造成的巨大损失。同时因为管理系统记录了项目的详细过程信息,也为项目以后的升级和完善提供了宝贵的可供查询的第一手资料。(3)
软件项目管理系统的价值体现在:增加项目进度可控性,降低项目风险提供绩效考核和项目任务分派的依据以电子PM协助人工PM,(注:PM指项目管理)公司领导层对所有项目情况可即时掌控领先的配置管理,提高软件质量2.1项目管理系统的必要性(1)项目管理系统用于进行工项目管理系统的介绍声明:目前公司软件存在部分问题是由于技术原因导致的,但是也有部分问题是由于软件管理、版本混乱引起的。以我开发项目的经历为例进行说明,采用的项目管理模式基本上类似与微软的模式,但没有他们那样强大。介绍项目管理系统,并不意味着大家一定也要开发这样一个系统,根据公司情况进行辨证吸收、适当借鉴、灵活运用到管理中去。由于人工管理的“灵活性、难于统计”,所以利用管理系统来进行管理更为客观、重要的便于统计、查询进展状态。项目管理系统的介绍声明:2.2软件项目管理系统界面2.2软件项目管理系统界面软件项目的自动日测试报表软件项目的自动日测试报表重点项目需要建设网站重点项目需要建设网站2.3项目管理系统的功能特征预警功能——系统监控系统每日自动进行预警试算,及时发现项目执行过程中的问题,加强项目执行过程的监控。预警项的值用户可以定制,具体内容的内容包括:任务进度比时间进度慢任务超时添加记录不及时审核处理时间超期工作饱和度超差工作确认不及时任务超过开始时间未执行任务分解——工作分解,责任到人2.3项目管理系统的功能特征预警功能——系统监控项目管理系统的功能特征(2)项目人员组织结构——灵活的人力资源配置兼容职能型人力资源结构和项目型人力资源结构特征,符合矩阵型人员组织结构特征。(3)互审机制——共同认可项目和任务都有两个重要的角色:负责角色和管理角色项目中:项目主管(负责角色),直属领导(管理角色)任务中:任务负责人(负责角色),任务管理者(管理角色)系统中的所有工作的分配,执行过程的变更和最后完成,都需要两个角色(执行角色和管理角色)互相审核,双方同意。项目管理系统的功能特征(2)项目人员组织结构——灵活的人力项目管理系统的功能特征(4)与CVS有机结合——与源代码管理无缝结合记录用户Checkin到CVS源代码文件,可以查看这些文件的历史,下载,并可以对比不同版本文件的差别。(5)项目文档管理项目和任务的管理重视文档的管理,文档作为工作的输入,并要求输出文档(完成的要求)。并可以进行文档查询和输出文档的汇总。(6)关键路径计算——标识项目实施过程中的风险计划的关键路径在执行过程中会发生变化,可能一个很小的任务不在关键路径上,但在实施过程中,此任务严重滞后,就可能变成关键路径。本系统在项目的执行过程,动态绘出项目的关键路径,提示项目主管注意关键路径上的任务。项目管理系统的功能特征(4)与CVS有机结合——与源代码管项目管理系统的功能特征(7)模板功能——借鉴专家知识,简化任务分解项目模板,一个可以直接复制的任务分解结构图,可以:标准化项目过程执行借鉴专家经验,为任务分解提供参考,为项目划分提供指导授权功能——临时转交自己负责的工作通过功能将自己负责或者管理的任务临时转给其它人。对于临时请假和出差的用户非常方便,避免了一些工作因为本人不在而导致不能及时处理。项目管理系统的功能特征(7)模板功能——借鉴专家知识,简化项目管理系统的功能特征(8)项目试算功能——可以提前预知变化对项目实施产生的影响根据用户对任务(可以多个)几个参数值的变更,计算出此变更对整个项目的影响。根据计划开始时间,计划完成时间,每日投入,完成进度,当前时间动态计算给出此次更改对项目和其它任务产生的影响。(9)与Email系统结合并记录用户操作日志系统的每个操作会实时发送Email通告相关人员,同时将用户的操作记录保存成日志。此功能的使用还可以灵活配置。项目管理系统的功能特征(8)项目试算功能——可以提前预知变三、项目管理的层次结构三、项目管理的层次结构3.1项目的体系结构项目的体系结构为树型结构,包括项目、阶段、任务三层:第一层:项目(信息类别包括:基本,文档,人员,预警)第二层:阶段(或模块)(隶属于项目)有时序关系的称为“阶段”,如是功能结构上的划分,称为“模块”。阶段和模块同属于一个层次,本文暂时以阶段为例进行说明。第三层:任务(隶属于阶段或模块)其中:任务层的任务可以无限层次划分。3.1项目的体系结构各层次的概念(1)项目概念项目是项目管理系统中最大的管理单元,一般是具有特定目的的工程,主要指一个成型(整体)的软件产品。(2)阶段概念阶段体现了我们在做一个项目的时候里程碑的概念。阶段必须在项目下,由项目主管负责创建,项目较大的项目一般有多个阶段,个别小项目可以没有阶段。
模块属性模块是按照软件产品的结构、功能模块对项目进行细分,以便按照模块化的思想设计和生产软件产品。模块应该是有完整界面(接口)、提供一组完整,并且相关的功能的程序。每个模块都会从属于相应的项目。
(3)任务概念任务是项目系统最基本的工作单位和执行单位,每个人的工作是通过他本人负责的任务来体现的。各层次的概念(1)项目概念项目的层次结构项目的层次结构人员结构
项目的人员结构如下图所示,主要包括:项目主管,直属领导,相关领导,多个工作组(组长,组员)
人员结构项目的人员结构如下图所示,主要包括:项目主管,直属文档结构项目的文档分三个部分:(1)设计文档:关于项目的设计与实现思路方法、详细过程。(2)参考文档:同类项目的已有参考文献。(3)验收文档:项目的完成情况验收情况其中,设计文档和参考文档作为项目的输入信息(做什么,如何做),验收文档为项目的输出,是必须提交文档。文档结构项目的文档分三个部分:项目预警每个项目都有自己的预警配置,配置项目包括:任务进度比时间进度慢任务超时添加记录不及时审核处理时间超期任务超过开始时间未执行当系统执行过程中发生了进度等偏差会及时通报给相关人员,预警方式采用的是项目线和人事线双层预警,如下图所示,当满足某个条件就会预警并且会逐步升级。项目预警每个项目都有自己的预警配置,配置项目包括:项目预警项目预警3.2项目的属性项目名称:用以简明扼要的描述项目内容项目编号:系统自动生成项目主管:项目的负责人项目直属领导:项目的管理者相关领导:可以浏览项目的相关人员和相关领导项目邮件组:用于填写Checkin记录的项目邮件组地址项目描述:用以记录项目的详细描述开始时间:完成时间:记录项目的开始时间和预期完成时间计划开始时间默认为当前日期项目状态:该属性在项目提交以后出现,表示一个项目的状态,包括筹划、取消,执行,挂起和完成3.2项目的属性项目名称:用以简明扼要的描述项目的执行流程项目的执行流程3.3阶段的属性阶段名称:阶段的名字阶段编号:系统自动生成阶段描述:描述该阶段的任务,阶段特征等阶段状态:有三个状态:筹备,执行和完成(取消和挂起状态由项目控制)阶段位置:一个项目的所有阶段是顺序进行的,即A阶段完成开始B阶段,他们之间有严格的前后依赖关系,所以要为每个阶段确定一个顺序位置。阶段间的约束:如果一个阶段的状态被更改为完成,必须保证该阶段之前的阶段的状态为完成。阶段连动:一个阶段的状态更改为完成,系统会自动将其下一个阶段的状态更改为执行。3.3阶段的属性阶段名称:阶段的名字阶段编号:模块的属性所属项目:指明模块所属项目,该项由系统根据通过相应的项目进入添加模块页面的情况自动获取,为自动流水号;不可更改。模块名称:简明记录模块名称。模块负责人:指明模块负责人。模块成员:参与整个模块的成员列表,系统自动添加模块中的所有人员;这些成员包括模块、模块所包含任务的参与者。模块相关人员:记录与该模块相关的人员。描述信息:用以记录项目的详细描述。开始、计划完成时间:记录模块的开始时间和预期完成时间;计划开始时间默认为当前日期。模块编号:由系统自动编号,在模块提交以后生成,为自动流水号,不可更改。模块状态:该属性在模块提交以后出现,表示一个模块的状态,包括激活、取消和已完成;默认为激活;在模块提交以后可以修改。模块属性:该属性在模块提交以后出现,表示一个模块为公开还是保密,包括公开、保密两个选项;如果一个模块属性为公开,则所有人员都可以查看该模块;如果一个模块被标记为保密,则只有相关人员(负责人、相关人员和所包括任务等的相关人员)可以查看;默认为公开;在模块提交以后可以修改;模块的属性所属项目:指明模块所属项目,该项由系统根据通过相应阶段的执行流程阶段的执行流程3.4任务的属性任务ID:由系统自动编号,在任务提交以后生成,为自动流水号,不可更改任务简述:对任务的简要说明任务状态:任务最关键的属性。表示一个任务进展状态。包括待分配,执行,挂起,提交、取消和已完成几种状态任务描述:记录任务的详细描述信息任务负责人:负责整个任务的进程任务管理者:管理整个任务的相关事宜,比任务负责人的权限更大相关人员:与该任务相关的人员计划开始、完成时间:记录任务规划的开始时间和预期完成时间前序任务:表示在该任务之前的相关任务,填写任务号关键字:填写描述该任务的关键字,用于查询3.4任务的属性任务ID:由系统自动编号,在任务提交以后任务的执行流程任务的执行流程3.5项目管理系统页面:项目添加3.5项目管理系统页面:项目添加项目管理系统页面:项目查询项目管理系统页面:项目查询项目管理系统页面:任务查询项目管理系统页面:任务查询项目管理系统页面:项目文档查询项目管理系统页面:项目文档查询3.6项目管理系统的配置管理权限配置在项目管理过程中,我们要突出两个方面的权限管理:
(1)不同角色的人员具有不同权限。
(2)对任何人员,在他的权利之下,提供必要的自定义、可配置选项。对于项目信息的变更事件,相关人员可以配置是否保存日志和发送邮件,如果选择,则当有相关事件发生时,系统会自动发送邮件到相关人员。预警设置在项目管理过程中,一个重要的功能是项目预警,用户可以进行相关配置。(1)您可以关闭或开启预警开关。(2)系统可以自动,用户也可以设置参数后进行手动预警。(3)有预警信息时,系统会向用户发送预警信息。3.6项目管理系统的配置管理权限配置项目管理系统的配置管理:事件配置项目管理系统的配置管理:事件配置项目管理系统的配置管理:预警参数项目管理系统的配置管理:预警参数3.7记录、记录分类记录是软件开发过程中的重要环节,记录分为三种类别:
Checkin记录、BugFix记录、一般记录。(1)Checkin记录用于对于源代码的Checkin修改做记录,并自动发送邮件给相关人员。(2)BugFix记录用于对软件程序中的Bug修改做记录,并自动发送邮件给相关人员。(3)一般记录一般记录包括:普通记录、会议记录、设计报告记录。一般记录的格式可以只是文本,也可以包含图表,链接,图片等。不同类别的记录有着专门的格式,其内容
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省部分学校2024-2025学年高二上学期期中联考政治试题 含解析
- 电子地磅购买合同范例
- 砂石包生产合同模板
- 二零二四年度电梯前室装饰装修工程合同3篇
- 2024年度市场调研咨询合同
- 淘宝开店授权合同范例
- 租赁合同范例 110
- 铝单板加工设备升级与维护合同2024
- 2024个人租房合同范本个人摄影服务合同范本
- 竹山土地承包合同范例
- 教育学课程单元1-20答案(江苏师范大学成人高等教育)
- 施工现场移交交接单个人自制
- 贺兰县2023-2024学年数学四年级第一学期期末含答案
- 动物疫病预防控制中心建设项目可行性研究报告
- 隧道衬砌缺陷整治培训资料课件
- 甘肃省重点实验室申请书
- 中国胸痛中心数据填报平台胸痛患者出院随访数据信息采集表
- 煤化工基础知识教学课件
- 水箱清洗卫生管理制度
- 小学英语-Book5Module4Period3BestBird教学课件设计
- 国际反洗钱师cams考试真题中文版题库汇总(含答案)
评论
0/150
提交评论