一般的项目管理可以分为范围管理、时间管理、费用管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理和整体管理9个知识领域。
对于软件的开发管理来讲,软件范围管理、软件进度管理、软件成本管理、软件配置管理(属于整体管理)、软件质量管理、软件风险管理、开发人员管理(属于人力资源管理)7个方面的管理尤为重要。
首先要考虑三个约束条件:项目范围、时间进度、成本预算。
项目的范围、时间与成本
项目范围管理
主要包括 项目启动、范围计划编制、范围定义、范围核实和范围变更控制5个部分的内容。
项目启动:批准项目启动或者允许项目进入下一个阶段;
范围计划编制:将生产项目产品所需进行的项目工作渐进明细和形成文件的过程;
项目范围定义:把主要的项目可交付成果分解成更小、更易管理的单元,以达到如下目的
- 提高对成本、时间及资源估算的准确性。
- 为绩效测量与控制定义一个基准计划。
- 便于进行明确的职责分配
范围核实:项目干系人(发起人、客户)正式接受项目范围的过程。范围核实需要审查可交付成果和工作结果,以确保它们都已经正确圆满地完成。如果项目被提前终止,范围核实过程应当对项目完成程度建立文档。范围核实与质量控制是不同的,范围核实是有关工作结果的“接收”,而质量控制是有关工作结果的正确性。
项目范围变更控制涉及的是:
- 对造成范围变更的因素施加影响,以确保这些变更得到一致认可;
- 确定范围变更是否已经发生;
- 当范围变更发生时对实际变更进行管理。
范围变更控制必须与其他控制管理过程(进行控制、成本控制和质量控制)结合在一起使用,才能取得良好的效果。
在初步项目范围说明书中已文档化的主要的可交付物、假设和约束条件的基础上准备详细的项目范围说明书,是项目成功的关键。范围定义的输入包括一下内容:
(1)项目章程。如果项目章程或初始的范围说明书没有在项目执行组织中使用,同样的信息需要进一步收集和开发,以产生详细的项目范围说明书。
(2)项目范围管理计划;
(3)组织过程资产;
(4)批准的变更申请。
项目成本管理
软件项目的成本不仅包括开发成本,也包括开发之前立项阶段及软件在运行中的费用。此外,操作者的培训费用和项目所使用的各种硬件设施费用也都是整个项目成本的一部分。
包括**资源计划编制、成本估算、成本预算、成本控制 **4 个主要部分内容。
资源计划编制是确定为完成项目各活动需什么资源(人、设备、材料)和这些资源的数量。
成本估算就是计算出完成一个项目的各活动所需各资源成本的近似值。成本估算是定价要考虑的因素之一。成本估算包括确认和考虑各种不同的成本估算替代方案。
成本预算是把估算的总成本分配到单个活动或工作包上去,建立基准计划来度量项目实际绩效。
成本控制的内容有:
- 对造成成本基准计划变化的因素施加影响,以保证这种变化得到一致认可;
- 确定成本基准计划是否已经发生变化;当变化发生和正在发生时,对这种变化执行管理。
成本控制包括以下方面:
- 监测成本执行情况,以寻找出并掌握计划的偏差及原因。
- 确保所有变更都准确地记录在成本基准计划中。
- 防止把不正确、不适宜或未批准的变更纳入成本基准成本。
- 将批准的变更通知项目干系人。
- 采取措施,把预计的成本控制在可接受的范围内。
项目时间管理
包括**活动定义、活动排序、活动历时估算、进度计划编制、进度控制 **5 个部分内容。
活动定义是对 WBS 中规定的可交付成果或半成品的产生所必须进行的具体活动进行定义,并形成文档。
活动排序是确定各活动之间的依赖关系,并形成文档。
项目活动历时估算是根据项目范围和资源的相关信息为进度表设定历时输入的过程。
制订进度计划要决定项目活动的开始和结束日期。
进度控制涉及的是:
- 对造成进度变更的因素施加影响,以确保这些变更得到一致认可;
- 确定进度变更是否已经发生;当变更发生时对实际变更进行管理。
配置管理与文档管理
软件文档管理
2. 文档的归类
按照文档产生和使用的范围,软件文档大致可分为 3 类:开发文档;管理文档;产品文档。
另外,软件文档从用途上还可以分为内部文档和外部文档。
其中,内部文档包括项目开发计划、需求分析、架构设计说明、详细设计说明、构件索引、构件成分说明、构件接口及调用说明、类索引、类属性及方法说明、测试报告、测试统计报告、质量监督报告、源代码、文档分类版本索引和软件安装打包文件等。
外部文档主要包括软件安装手册、软件操作手册、在线帮助、系统性能指标报告和系统操作索引等。
文档是影响软件可维护性的决定因素。软件系统的文档可以分为用户文档和系统文档两类。
用户文档主要描述所交付系统的功能和使用方法,并不关心这些功能是怎样实现的。用户文档是了解系统的第一步,它可以让用户获得对系统准确的初步印象。
用户文档至少应该包括下述5方面的内容。
① 功能描述:说明系统能做什么。
② 安装文档:说明怎样安装这个系统以及怎样使系统适应特定的硬件配置。
③ 使用手册:简要说明如何着手使用这个系统(通过丰富的例子说明怎样使用常用的系统功能,并说明用户操作错误是怎样恢复和重新启动的)。
④ 参考手册:详尽描述用户可以使用的所有系统设施以及它们的使用方法,并解释系统可能产生的各种出错信息的含义(对参考手册最主要的要求是完整,因此通常使用形式化的描述技术)。
⑤ 操作员指南(如果需要有系统操作员的话):说明操作员应如何处理使用中出现的各种情况。
系统文档是从问题定义、需求说明到验收测试计划这样一系列和系统实现有关的文档。描述系统设计、实现和测试的文档对于理解程序和维护程序来说是非常重要的。
软件开发环境(SDE)
软件开发环境(Software Development Environment,SDE)是指支持软件的工程化开发和维护而使用的一组软件,由软件工具集和环境集成机制构成。
软件开发环境应支持多种集成机制,例如,平台集成、数据集成、界面集成、控制集成和过程集成等。软件开发环境应支持小组工作方式,并为其提供配置管理,环境的服务可用于支持各种软件开发活动,包括分析、设计、编程、调试和文档等。
较完善的软件开发环境通常具有多种功能,例如,软件开发的一致性与完整性维护,配置管理及版本控制,数据的多种表示形式及其在不同形式之间的自动转换,信息的自动检索与更新,项目控制和管理,以及对开发方法学的支持。软件开发环境具有集成性、开放性、可裁减性、数据格式一致性、风格统一的用户界面等特性,因而能大幅度提高软件生产率。
集成机制根据功能的不同,可划分为环境信息库、过程控制与消息服务器、环境用户界面三个部分。
(1)环境信息库。
环境信息库是软件开发环境的核心,用以存储与系统开发有关的信息,并支持信息的交流与共享。环境信息库中主要存储两类信息,一类是开发过程中产生的有关被开发系统的信息,例如,分析文档、设计文档和测试报告等;另一类是环境提供的支持信息,例如,文档模板、系统配置、过程模型和可复用构件等。
(2)过程控制与消息服务器。
过程控制与消息服务器是实现过程集成和控制集成的基础。过程集成是按照具体软件开发过程的要求进行工具的选择与组合,控制集成使各工具之间进行并行通信和协同工作。
(3)环境用户界面。
环境用户界面包括环境总界面和由它实行统一控制的各环境部件及工具的界面。统一的、具有一致性的用户界面是软件开发环境的重要特征,是充分发挥环境的优越性、高效地使用工具并减轻用户的学习负担的保证。