前言
影响软件研发项目全局的因素是管理水平,而技术只影响局部,这就有必要从项目管理的角度去管理软件的开发。而项目管理是指在项目活动中运用专门的知识、技能、工具和方法,使项目能够实现或超过项目干系人的需要和期望,可以分为范围管理、时间管理、费用管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理、整体管理 9 个知识领域。
对于软件的开发管理来讲,软件范围管理、软件进度管理、软件成本管理、软件配置管理(属于整体管理)、软件质量管理、软件风险管理、开发人员管理(属于人力资源管理) 7 个方面的管理尤为重要。
ps: 7方面少了沟通管理、采购管理。
项目的范围、时间与成本
项目管理首先要考虑三个约束条件:项目范围、时间进度、成本预算。
项目范围管理
-
主要包括项目启动、范围计划编制、范围定义、范围核实、范围变更控制 5 个部分的内容。
-
范围核实与质量控制是不同的,范围核实是有关工作结果的“接收”,而质量控制是有关工作结果的正确性。
项目时间管理
- 主要包括活动定义、活动排序、活动历时估算、进度计划编制、进度控制 5 个部分内容。
项目成本管理
-
主要包括资源计划编制、成本估算、成本预算、成本控制 4 个主要部分内容。
-
软件项目的成本不仅包括开发成本,也包括开发之前立项阶段及软件在运行中的费用。此外,操作者的培训费用和项目所使用的各种硬件设施费用也都是整个项目成本的一部分。
配置管理和文档管理
配置管理
基于开发环境日益复杂,代码共享日益困难,需跨越的平台增多;软件的重用性需要提高;软件的维护越来越困难等现状,软件配置管理(Software Configuration Management,SCM)应运而生。配置管理三个核心部分:版本管理、问题跟踪、建立管理,其中版本管理是基础。
ps: 如平时用的Qsync。
文档管理
软件文档从用途上还可以分为内部文档和外部文档,其中,内部文档包括:
- 项目开发计划
- 需求分析
- 架构设计说明
- 详细设计说明
- 构件索引
- 构件成分说明
- 构件接口及调用说明
- 类属性及方法说明
- 测试报告
- 测试统计报告
- 质量监督报告
- 源代码
- 文档分类版本索引
- 软件安装打包文件
外部文档主要包括:
- 软件安装手册
- 软件操作手册
- 在线帮助
- 系统性能指标报告
- 系统操作索引
一般而言,好的软件文档要求具备如下特征:
- 针对性
- 精确性
- 清晰性
- 完整性
- 灵活性
软件需求管理
进行需求变更控制的主要依据是项目计划、变更请求、反映项目执行状况的绩效报告。
人力资源管理
一般包括组织规划、人员招募和团队建设三个主要过程。其中,组织的具体形式可以有三种方案:垂直方案、水平方案、混合方案。以垂直方案组织的团队由多面手组成,每个成员都充当多重角色;以水平方案组织的团队由专家组成,每个成员充当一到两个角色;以混合方案组织的团队既包括多面手,又包括专家。
- 垂直团队组织,也就是功能模块分配给了个人或小组,然后由他们从头至尾地实现该功能模块;
- 水平团队组织,也就是团队同时处理多个功能模块,每个成员都从事功能模块中有关其自身的方面。
软件项目团队的成长规律:形成阶段、震荡阶段、正规阶段、表现阶段。
软件的运行与评价
通常关注以下几点:
- 软件的稳定性和可靠性评价
- 软件是否满足了用户的需求
- 软件实施给用户带来的好处
软件过程改进
目前使用最多的软件过程改进模型包括CMM(Capability Maturity Model for Software),即软件能力成熟度模型,该模型一共有5级,每一个低的级别实现均是高的级别实现的基础:初始级、可重复级、定义级、管理级、优化级。
- 初始级:未加定义的随意过程;
- 可重复级:仅定义了管理的基本过程,而没有定义执行的步骤标准;
- 定义级:要求制定企业范围的工程化标准;
- 管理级:量化的管理;
- 优化级:达到一个持续改善的境界,所谓持续改善是指可根据过程执行的反馈信息来改善下一步的执行过程。