在关系到软件项目成功与否的众多因素中,软件的目标与项目计划、成本估算、进度计划、人员分配、软件配置管理、风险管理、软件质量管理和软件工程文件规范等都是与项目管理直接相关的因素。由此可见,软件研发项目管理的意义至关重要。
软件项目管理是包括项目计划、项目组织和控制的一系列活动。而软件计划就是对软件开发过程的详尽描述与安排。
一、软件开发项目的特点
了解软件开发项目的特点对于项目的计划制定和管理控制是非常必要的。与其他类型项目的共同点:项目成功与否不仅取决于项目过程中所采用的技术方法工具,还取决于项目管理的水平,特别是计划与控制的水平。与其他类型项目的不同点:
(1) 软件产品和其他产品不同,软件产品是一种"逻辑"产品,是无形的,没有物理属性的,看不见、摸不着、难以理解。
(2) 需求难以明确且频繁变更:由于用户的成熟度或责任心的原因,用户开始无法给出明确的需求。在开发过程中,需求可能要经常修改,因此需要经常地修改程序与文档。
(3) 难以在早期发现问题:需求不明确,加上后期修改可能没有进行全局性的考虑,产生的问题难以从早期的文档中直观地发现,需要等系统设计出来后才会发现。
(4) 项目成员对文档的重视不够,符合用户需求的高质量软件,需要依赖于大量准确规范的文档编辑工作,但项目组成员对它并不感兴趣,很少有人愿意认真去做,因而直接影响了软件的质量。
(5) 劳动密集型+智力密集型:软件开发过程需要大量高强度的脑力劳动,这些劳动非常细致、高度复杂、容易出错,质量难以用简单的度量来衡量,使得软件的正确性难以保证。对于不深入地掌握软件工程知识或缺乏软件开发实践经验的人员,是难以做好软件开发项目管理工作的。
二、项目计划目的与作用
根据软件能力成熟度模型(简称 CMM)集成 CMMI,软件开发项目计划的目的是:建立和维护定义项目活动的计划。 项目计划属于 CMMI 的第二级,其过程域包括开发项目计划、与相关人员交流、获取对计划的承诺、维护计划。项目计划为实施和监控项目活动提供了基线。
1. 项目计划的目标blog
(1) 项目计划的第一个目标:建立估计值,即建立和维护项目计划因素的估计值。为此应该确定项目范围,即通过建立高层工作分解结构来估计项目范围;监理工作产品和任务属性的规模与复杂度;确定项目的生命周期阶段,以此来限定计划范围;基于估算的原理进行对工作产品和任务的项目工作量和成本的估算。
(2) 项目计划的第二个目标:开发项目计划文档,即文档化项目计划、维护项目计划,并以此作为项目管理的基线。为此应该建立和维护项目的预算和进度表;要识别和分析项目风险;确定如何采集和管理项目数据;确定实施计划所需要的各种资源;确定项目实施所必需的知识和技能;确定各项任务或活动的承担人;编写项目计划文档。
(3) 项目计划的第三个目标:获得并维持所有项目干系人对项目的承诺。为此应当评审影响项目的所有计划,使所有项目干系人理解项目承诺;必要时调整项目计划以适应有效的和已经估计的资源;获取所有项目干系人特别是项目任务或活动的承担人对项目计划的承诺。
项目计划是项目实施的基础。通过所有项目干系人认可的项目计划形成文件,便于本企业高层领导、相关管理部门领导、相关参与部门领导、项目组成员、客户、协作单位、分包单位等所有项目干系人之间的交流沟通。项目计划是项目组为实现项目目标而科学地预测并确定项目生命周期的行动方案。任何项目计划都是为了解决 3 个问题:
① 确定项目目标;
② 确定为了达成项目目标的各项行动的顺序和时间;
③ 确定项目中每项行动所需要的资源。
所以制定项目计划