软件项目计划的计划制定
项目计划详细说明了所需软件工作及如何实现。
它定义了每一个主要任务,并估算其所需时间和资源,同时为管理层的评估和控制提供了一个框架。
项目计划也提供了一种很有效的学习途径。
如果能合理建档,它便是一个与实际运行效能比较的基准。
这种比较可以使计划者看到他们的估算误差,从而提高其估算精确度。
我们着重强调对项目规模和资源的估算,是因为低质量的项目资源估算将不可避免地造成资源短缺,进度延迟和预算超支。
又由于项目资源估算是从软件规模估算中直接衍生出来的,所以低质量的规模估算是造成许多软件项目问题的根本原因。
项目计划应在项目开始初期制定出,并随着工程的进展不断地加以精化。
起初,由于软件需求通常是模糊而又不完整的,我们的工作重点应在于明确该项目需要哪些领域的知识,并且如何获取这些知识。
如果不遵循这一指导原则,程序员们通常会积极地投入到那部分已知的工作中去,而把未知部分留滞到以后。
这种工作方式通常会产生很多问题,因为未知部分具有最高的风险系数。
软件项目计划的逻辑如下所述 :由于软件需求在初始阶段是模糊而又不完整的,质量计划只能建立在对客户需求的大致而不确切的理解之上。
因此,项目计划应该从找出含糊不确切与准确恰当的软件需求间的映射关系入手。
接着建立一种概念设计。
项目初始架构的建立要十分谨慎,因为它通常标定了产品模块的分割线,同时描述了这些模块所实现的功能及所有模块间的关系。
这就为项目计划和项目实施提供了组织框架,因此一个低质量的概念设计是不能满足要求的。
在每一次后续的需求精化时,也应同时精化资源映射,项目规模估算和工程进度。
软件项目计划-制订软件项目计划的方法与策略制订软件项目计划的目的在于建立并维护软件项目各项活动的计划,软件项目计划其实就是一个用来协调软件项目中其它所有计划,指导项目组对项目进行执行和监控的文件。
一个好的软件项目计划可为项目的成功实施打下坚实的基础。
软件项目有其特殊性,不确定因素多,工作量估计困难,项目初期难于制定一个科学、合理的项目计划。
我曾主持和参与过大大小小的软件项目十余项,下面我将把我制订软件项目计划的经验分享给大家。
1.注重项目计划的层次性软件项目计划的层次及其关系如下图所示。
高级计划,是项目的早期计划。
高级计划应当是粗粒度的,主要是进行项目的阶段划分,确定重大的里程碑,所需相关的资源,包括人力资源、设备资源、资金资源,即所谓的人、财、物三个要素。
大的阶段交替之前,应做好下一阶段的详细计划,我们称之为二级计划。
详细计划要确定各项任务的负责人,开始时间,结束时间,任务之间的依赖关系,设备资源,小的事件点(即里程碑)。
如果项目规模相对较大,可以有多级的计划,比如说,一个项目组可能分为几个开发组,二级计划是各开发组制订的适合的自己小组的计划。
如果开发组还分了小组,可以有小组的三级计划。
开发人员的个人计划是低级计划,由开发人员根据自己的任务自行制定,要把任务细化到人·日。
一般的,软件项目计划至多有四级就够了,过多的等级将会引发效率的瓶颈。
大的项目不见得要有庞大的组织和人员数量来支撑,合理的划分小组,减少组织的层次,有利于项目计划的制订和实施。
较小的软件项目由于工期不长,人员较少,有二级计划(高级计划与低级计划)也是可行的。
2.重视与客户的沟通与客户的沟通是很重要的。
不必害怕客户知道我们的开发计划,特别是项目进度情况,应当和客户共享这些信息。
首先,客户会提出一些对项目时间、进度、效果上的要求,这个指标往往经不起推敲,有的还带有较强的政策性。
如:在我主持的一个某单位人nnerlink>MIS系统的开发中就发现,客户方对时间上的约束是有成形的文件的,是他们单位领导们开会的决定。
客户给出的从项目启动到验收的时间只有三个月,但是,经过我们认真的需求调研,做出项目进度的粗计划和部分的二级计划后,发现三个月的时间是难于实现的。
我们把做出的调研文档和项目计划摆出来和和客户讨论,最终使项目的开发时间延长为六个月。
站在为了科学地分析和解决问题的立场上来看,项目组和客户的目的是一致的,所以对于合理的项目进度客户是会理解与支持的。
其次,我们有义务要让客户知道项目的计划。
这样才能让客户和用户主动、积极参与项目,达到项目的最终目标。
项目计划取得双方签字认可是一种好的习惯。
客户可能不愿意签正式的文件,那么在文档的封面上签上双方负责人的姓名、联系方式也行,虽然是非正式的,但留下了项目工作的痕迹。
有必要想办法让客户清楚签字意味着什么。
这就意味说双方有了一个约定,既让用户感觉心里踏实,也让自己的项目组有了责任感,有一种督促和促进的作用。
3.该详细的详细,该简略的就简略软件项目计划就如同软件项目本身一样有它特殊性,一个三五个人花两三个月就可以完工的小项目,可能项目计划就四五页纸,包括一个WBS(工作分解结构)和一个Gantee图(甘特图)。
一个需要五六十个人甚至上百人,要花上半年或更长时间的...
软件项目开发计划是什么?
.1编写目的【阐明编写开发计划的目的,指出读者对象。
】 1.2项目背景【可包括:a.项目的委托单位、开发单位和主管部门.b.该软件系统与其他系统的关系。
】 1.3定义【列出本档中用到的专门术语的定义和缩写词的原文。
】 1.4参考资料【可包括:a.项目经核准的计划任务书、合同或上级机关的批文;b.文档所引用的资料、规范等;列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源。
】 2.项目概述 2.1工作内容【简要说明项目的各项主要工作,介绍所开发软件的功能、性能等。
若不编写可行性研究报告,则应在本节给出较详细的介绍。
】 2.2条件与限制 【阐明为完成项目应具备的条件、开发单位已具备的条件以及尚需创造的条件。
必要时还应说明用户及分合同承包者承担的工作、完成期限及其他条件与限制。
】 2.3产品 2.3.1程序【列出应交付的程序名称、使用的语言及存储形式。
】 2.3.2文档【列出应交付的文档。
】 2.4运行环境【应包括硬件环境、软件环境。
】 2.5服务【阐明开发单位可向用户提供的服务。
如人员培训、安装、保修、维护和其他运行支持。
】 2.6验收标准 3.实施计划 3.1任务分解【任务的划分及各项任务的负责人。
】 3.2进度【按阶段完成的项目,用图表说明开始时间、完成时间。
】 3.3预算 3.4关键问题【说明可能影响项目的关键问题,如设备条件、技术难点或其他风险因素,并说明对策。
】 4.人员组织及分工 5.交付期限 6.专题计划要点 【如测试计划、质量保证计划、配置管理计划、人员培训计划、系统安装计划等。
软件项目计划的目标是什么?
软件开发项目的进度安排可以有两种考虑方式。
第一种,系统最终交付使用的日期已经确定,软件开发机构必须在合同规定的时间内安排;第二种,只确定了大致的年限,最后交付使用的日期由软件开发机构根据具体情况确定。
后一种考虑能够对软件开发任务进行细致的分析;能够最好地利用资源,合理地分配工作量,但实际工作中常常遇到第一种情况,问题是软件管理人员如何在规定的期限内分配人力和安排进度。
进度安排的好坏往往影响整个项目的按期完成和用户的使用,如不能按期完成,用户就会不满,而且需向用户赔偿损失。
如作为商品,将会失去市场竞争力。
进度安排的精确性有时比成本估算更重要。
在商品生产的社会中,某种商品的损失往往还可以通过其他商品或分期偿还来承担。
而进度拖延的损失是无法弥补的。
下面就软件开发项目进度安排中的几个问题进行讨论。
1.软件工作的特殊性 制定软件进度与其他工程没有很大的区别,因此使用一般的通用技术和工具即可。
但重点要强调的是软件产品是逻辑产品,这与其他工程不同。
因此当几个人共同完成某项任务时,人与人之间就有一个思想交流问题,称之为通信关系。
通信是要付出代价的,不只是要花时间,同时由于通信中的疏忽常常会使错误增加。
如一个组有4个软件工程师,两两之间进行通信联系,通信路径有6条;对6个软件工程师,则通信路径增加至14条。
因此所付的代价就必然会增加,所以工作组的人员不宜太多,一般3—5人为好,目前国外一般采用主程序员组的制度。
另一点要强调的是软件工作切忌中间临时加人,必须在安排进度时就考虑周到。
2.各阶段工作量的分配 估算出总的工作量以后,就需要一个可以进行各阶段工作量分配的模型。
某一阶段工作量所占的百分比必须根据经验数据确定。
这里要再一次强调,在开发过程中保存的记录将增加经验数据库存,而且将改善今后估算的准确性。
R.S.Pessman提出一种称作40-20-40的工作量分配规则,即前期工作(计划、需求分析、概要设计和详细设计阶段)和后期工作(测试阶段)各占40%,编码阶段占20%。
应该强调要重视前期和后期工作。
前期工作容易被忽视,主要原因是:管理人员认为不开始编码工作就算没有进行,他们不了解前期工作的重要性;技术人员往往也急于编码,认为写出代码任务就算完成了。
后期工作也容易被忽视,认为编码出来就完事了,对测试工作要占这么大的工作量没有思想准备。
所以要制定好进度计划,就要研究软件工作的规律,前期基础工作没做好,将会给后期工作带来很大困难,往往使工程进度一拖再拖,难以坚持,有的不得不中途夭折。
3.制定开发进度 需要涉及的下一个未知量是开发进度。
进度安排是软件计划工作中一项最困难的任务,计划人员要把可用资源与项目工作量协调好;要考虑各项任务之间的相互依赖关系,并且尽可能地平行进行;预见可能出现问题和项目的“细脖子”,并提出处理意见;以及规定进度,评审和应交付的文档。
假设用作变量的开发时间TD按线性变化,而且已经得到了总的开发工作量估算值ED,要求在规定的时间TD内完成,在项目中最好有参加工作的人员平均值M,即M=EDTD,这将是一个非常有用的数据。
遗憾的是在上述算式中,项目的工作量和开发时间不能作为独立的变量。
Books定律描述了这种现象的最极端情况:为误期的软件项目增加人员将会使其进度更慢。
来源:www.examda.com (四) 软件开发组织 有多少个软件开发机构,几乎也就有多少人员的组织机构。
不管这些组织机构是好或坏,一般是不可能轻易改变的。
尽管组织机构的改变不属于软件计划人员的职责范围内的事。
不过,在一个新的软件项目中直接涉及人员的组织问题却是可以,也应该在软件计划阶段加以认真考虑的。
软件项目开发计划
一是参考其它项目.另一个现在的可参考项目是安装 Microsoft Office Project 2003, 内有好几个相关模板.供参:项目启动 6 工作日 组建工作组 6 工作日 定义工作组角色 2 工作日 确定所需技能 2 工作日 确定资源 2 工作日 将角色赋予资源 2 工作日 工作组成立 0 工作日 构想 44 工作日 定义初步的商业需求(持续性工作) 29 工作日 风险管理 1 工作日 定义项目结构 9 工作日 定义跟踪项目的步骤 5 工作日 定义解决问题的步骤 4 工作日 定义跟踪问题的步骤 3 工作日 定义控制变更的步骤 4 工作日 定义责任和期望 2 工作日 项目结构确定完毕 0 工作日 研究和收集设想 25 工作日 进行初步的用户访问 2 工作日 定义使用场合 10 工作日 制定初步的用户描述 5 工作日 制定初步的构想说明 1 工作日 确立设计目标 8 工作日 制定初步的解决方案概念 5 工作日 制定初步的项目范围 19 工作日 定义关键的成功因素 2 工作日 定义衡量成功的标准 1 工作日 定义主要的可交付结果(初步) 3 工作日 起草构想/范围 3 工作日 审阅构想/范围 2 工作日 更新构想/范围 3 工作日 缓冲时间 4 工作日 进行里程碑检查 1 工作日 构想得到批准 0 工作日 规划 59 工作日 更新风险评估 1 工作日 进行用户访问 10 工作日 创建功能描述 31 工作日 制定功能描述: 第 0 批 5 工作日 制定功能描述: 第 1 批 5 工作日 制定功能描述: 第 2 批 5 工作日 制定功能描述: 第 n 批 5 工作日 功能描述基准 0 工作日 开发计划 28.25 工作日 创建开发计划 28 工作日 进行概念性设计 10 工作日 进行逻辑设计 15 工作日 进行物理设计 19 工作日 制定开发日程 5 工作日 测试计划 35 工作日 制定测试计划 30 工作日 制定测试日程 5 工作日 用户培训计划 36 工作日 制定用户培训计划 30 工作日 制定用户培训日程 6 工作日 后勤计划 48 工作日 制定后勤计划 43 工作日 进行基础设施分析 15 工作日 制定安全计划 2 工作日 制定部署计划 27 工作日 定购组件 15 工作日 后勤计划完成 0 工作日 创建后勤日程 7 工作日 产品管理计划 18 工作日 制定产品管理计划 14 工作日 制定产品管理日程 5 工作日 程序管理计划 41 工作日 创建程序管理计划 21 工作日 创建程序管理日程 20 工作日 建立项目计划基准 0 工作日 合并项目计划 11 工作日 审阅合并计划 4 工作日 创建合并日程 2 工作日 缓冲时间 4 工作日 确定交货日期 0 工作日 构想/范围冻结 0 工作日 进行里程碑检查 1 工作日 项目计划得到批准 0 工作日 开发 81 工作日 更新风险评估 1 工作日 提供开发所需的设备/检验概念是否达到 0 工作日 建立开发环境/实验室 5 工作日 内部发布 #1 24 工作日 开发目标组件 9 工作日 测试单个组件 5 工作日 测试组装为整体的应用程序 6 工作日 开发增强性能的材料 4 工作日 测试和审查材料 3 工作日 制定分发步骤 9 工作日 创建分发产品 2 工作日 分发给合适的对象 1 工作日 缓冲时间 8 工作日 内部发布 #1 结束 0 工作日 审阅来自内部发布的结果 2 工作日 进行发布后的审阅 1 工作日 内部发布 #n 24 工作日 开发目标组件 10 工作日 测试单个组件 4 工作日 测试组装为整体的应用程序 5 工作日 开发增强性能的材料 4 工作日 测试和审查材料 3 工作日 制定分发步骤 3 工作日 创建分发产品 4 工作日 缓冲时间 6 工作日 分发给合适的对象 1 工作日 内部发布 #n 结束 1 工作日 审阅来自内部发布的结果 2 工作日 功能说明冻结 1 工作日 最后的特性开发 10 工作日 最后的后勤开发 9 工作日 最后的性能支持开发 5 工作日 特性开发结束 0 工作日 更新计划和日程 13 工作日 更新开发计划 4 工作日 更新测试计划 3 工作日 更新后勤计划 13 工作日 更新程序管理计划 3 工作日 更新产品管理计划 3 工作日 更新用户培训计划 6 工作日 缓冲时间 3 工作日 进行里程碑检查 2 工作日 项目范围规划完成 1 工作日 稳定 73 工作日 更新风险评估 1 工作日 发布测试版 1 32 工作日 制定测试版计划 3 工作日 征寻和选择用户 2 工作日 准备测试版产品包 8 工作日 开始测试 0 工作日 提供测试支持 8 工作日 收集用户反馈 7 工作日 结束测试支持 0 工作日 修补缺陷 10 工作日 结束测试 0 工作日 发布测试版 n 1 工作日 修补缺陷 10 工作日 收集错误 1 工作日 改正高优先级的错误 10 工作日 发布无错误版 0 工作日 进行最后的错误分类 5 工作日 发布版候选 1 7 工作日 进行工作组评估 2 工作日 客户/用户评估 2 工作日 支持评估 3 工作日 发布版候选 n 6 工作日 黄金发布版 0 工作日 发布 1 工作日 项目后检查 2 工作日 软件开发:------------------------- 项目范围规划 3.5 工作日 确定项目范围 4 工时 获得项目所需资金 1 工作日 定义预备资源 1 工作日 获得核心资源 1 工作日 项目范围规划完成 0 工作日 分析/软件需求 14 工作日 行为需求分析 5 工作日 起草初步的软件规范 3 工作日 制定初步预算 2 工作日 工作组共同审阅软件规范/预算 4 工时 根据反馈修改软件规范 1 工作日 确定交付期限 1 工作日 获得开展后续工作的批准(概念、期限和预算) 4 工时 获得所需资源 1 工作日 分析工作完成 0 工作日 设计 14.5 工作日 审阅初步的软件规范 2 工作日 制定功能规范 5 工作日 根据功能规范开发原型 4 工作日 审阅功能规范 2 工作日 根据反馈修改功能规范 1 工作日 获得开展...
软件项目计划和需求分析哪个先?
工程交付使用管理流程 1、竣工档案、技术资料移交工作 1.1工作流程: 1.1.1物业公司进场后,由(项目)工程部组织召开由各工程施工单位、物业公司参加的相关会议,由各施工单位介绍工程情况,物业公司熟悉工程; 1.1.2(项目)工程部组织施工单位、材料设备供应商对物业管理人员进行培训; 1.1.3(项目)工程部组织向物业公司进行竣工档案移交,并办理移交手续; 1.1.4(项目)工程部将各施工单位、材料设备供应商联络方式汇总向物业公司移交,办理移交手续; 1.1.5集团成本合约部应将我公司与各施工单位、材料设备供应商所签定合同的维修、服务内容汇总,向物业公司进行移交; 2、物业验收、接管工作 2.1工作流程: 2.1.1(项目)工程部组织各施工单位就整体工程所涉及内容分系统逐项向物业公司进行移交,并办理《工程竣工物业移交单》; 2.1.2(项目)工程部组织总包向物业公司进行每户水、电、气初始数据移交,并详细记录每户水、电、气初始数据; 2.2工程竣工物业移交单 3、工程决算管理工作 3.1工作流程: 3.1.1(项目)工程部将工程竣工资料经中心移交一套至集团成本合约部; 3.1.2总包组织各分包单位形成二套完整的工程竣工决算资料提交(项目)工程部,由(项目)工程部经中心转交一套至集团成本合约部; 3.1.3(项目)工程部、中心预算工程师配合成本合约部进行工程决算; 3.1.4成本合约部将工程决算结果书面反馈至中心。
项目进度管理软件的项目进度管理软件的功能模块
项目进度管理软件大概分为工程类项目进度管理软件以及非工程类项目进度管理软件两种。
这两种管理软件在功能上会有一些差距,但基本的功能模块大致相同。
其中,8thManage的项目进度管理软件使用于工程和非工程两种项目,极具代表性。
下面我们就以这个产品为例,详细了解项目进度管理软件包含的功能模块。
1.情境式项目管理 根据实际情境选择高度合适的管理方式8thManage 项目进度管理软件能够帮助组织管理所有项目,不论其规模大小、简单或复杂。
8thManage 项目进度管理软件不但支持WBS、项目范围结构、甘特图、关键路径、EVM等传统管理手段,也支持迭代依赖、现状调查等现代项目管理技术。
2.企业协作 项目进度管理软件为个人与部门之间的协作与沟通提供了一个很好的平台。
*功能型与项目导向型组织管理*请求、承诺、交付以及验收的通用语言*各部门、委员会以及各站点的协调和管理*客户、合作伙伴以及供应商的协调和管理*机构间的交互与上报管理3.企业资源管理 项目进度管理软件的资源管理功能,可按照区域、部门、项目以及活动进行资源的查找、申请、分配并跟踪企业资源的使用情况。
*根据资源的技能及可分配时间自动搜索资源*根据资源分配自动进行费用估算和预算*对资源的计划使用情况与实际使用记录进行比较*监测过度分配和不恰当的资源*汇总企业数据到项目组合视图以识别各个项目之间的关键问题并权衡风险4.项目执行管理 项目进度管理软件能对项目执行做全面的掌握。
*活动的计划和执行管理*可交付成果的计划和交付管理*依赖的计划、跟踪和验收管理*项目和活动的审批以及再次审批管理*实时的请求和应答管理*实时的风险和问题监测*项目执行规则与控制管理*项目执行的全面跟踪记录 5.承诺管理8thManage 项目进度管理软件为单向和双向项目承诺提供全面支持。
*活动、可交付成果和资源的承诺提议*进度、费用和质量承诺的承诺记录*提议、审批、接受承诺的承诺协议*取消承诺、完成承诺和违诺的管理*承诺跟踪记录管理6.需求和迭代管理 复杂的需求很难经由一次性沟通完成。
项目进度管理软件可以迭代的方式完成复杂需求的交付与验收。
7.风险管理 项目进度管理软件不但能够自动检测系统性风险,还提供了集成的风险登记表,从而能够记录项目成员识别的风险,并进行全程跟踪。
*自动监测超时和超支风险*自动监测使用不恰当资源与资源短缺的风险*自动监测可交付成果审批和验收风险*自动监测项目的控制风险和信心风险*记录项目成员自定义风险并跟踪缓解风险的行动*定义风险准则与风险分析矩阵8.现状调查8thManage 项目进度管理软件通过具名和匿名的现状调查功能帮助您对项目进行有效诊断。
*项目团队的信心*项目利害关系者的共识*用户满意度9.沟通管理与问题管理 项目进度管理软件提供了多种沟通机制,通过集中化的问题管理系统来跟踪问题、行动及其结果。
10.实时监控和跟踪 项目进度管理软件提供了以下概览,以便跟踪项目状态、发现问题和跟踪解决问题的行动。
*项目*费用*资源*依赖*可交付成果*风险11.互动管理和决策支持 项目进度管理软件能够促进规范化的互动,并提供实时信息,从而帮助团队做出有效决策。
12.模块方法模式和CMMI支持8thManage 项目进度管理软件提供模板方法模式来协助创建项目计划。
它同时支持CMMI的9种通用过程和27个特定过程。
13.Agile方法8thManage 项目进度管理软件允许客户作为团队成员,通过Agile方法来实现发布计划、迭代计划、团队互动、内部测试以及验收测试。
14.维护管理 项目进度管理软件为维护支持提供了以下工具:*客户支持模块*呼叫日志和响应跟踪功能*缺陷与变更跟踪系统*发布与补丁功能15.更有其他内置功能,使您的团队工作更高效。
项目进度管理软件内置以下便利功能:*个人工作日历与概览*工时表功能*产品和许可证管理功能*完善的文档管理系统*全面的审计跟踪记录
项目可交付成果的目标描述指标有什么
项目目标(Project Objectives):简单地说就是实施项目所要达到的期望结果,即项目所能交付的成果或服务。
项目的实施过程实际就是一种追求预定目标的过程,因此,从一定意义上讲,项目目标应该是被清楚定义,并且可以是最终实现的。
项目目标包括:可测量的项目成功标准。
项目可能有各种各样的经营,费用,进度,技术和质量目标。
项目目标可能还包括费用,进度和质量指标。
每一个项目目标都有属性,例如费用目标就有美元单位或人民币单位。
对项目的整个环境进行有效分析,包括外部环境、上层组织系统、市场情况、相关关系人(客户、承包商、相关供应商等)、社会经济和政治/法律环境等。
...