本书以软件工程领域的SWEBOK和项目管理领域的PMBOK体系为基础,充分融合软件工程思想和项目管理思想,结合软件开发实践,系统论述一个软件项目从立项到收尾的全过程。全书共15章,首先分析了软件项目独特之处,说明软件项目的管理过程与传统项目管理方法的区别,然后阐述了软件项目的立项流程、启动过程、开发过程、估算方法、进度安排、风险管理、团队管理、质量管理、配置管理、监控过程、文档管理、外包管理和收尾管理,并介绍了常用的软件工程管理软件。
《高等学校软件工程系列教材:软件项目管理》具有以下特色:
以SWEBOK和PMBOK为基础,充分吸收国内外软件项目管理的思想精华,依据作者多年软件项目开发与管理以及科研教学经验,对软件项目管理进行系统性的总结和阐述,力求灵活地把项目管理知识应用到软件开发中,使项目管理学科和软件工程学科合理融合。
以概述为基石,提出一个较为完整的软件项目管理过程,包括软件项目立项、合同管理,软件项目启动和范围管理、软件需求管理、软件项目团队管理、软件项目估算、软件项目风险管理、软件项目质量管理、软件项目配置管理、软件项目进度管理、软件项目监控以及软件项目收尾等。案例丰富,力求紧密联系实践。
第1章 软件项目管理概述
1.1 软件项目管理的重要性
1.1.1 软件项目管理中的常见问题
1.1.2 软件项目管理现状
1.1.3 由现状引发的思考
1.2 项目管理的基本原理
1.2.1 项目和项目管理的定义
1.2.2 项目管理的历史和发展
1.2.3 项目管理的认证和知识体系
1.2.4 项目的生命周期
1.2.5 项目关键约束
1.3 软件项目管理分析
1.3.1 软件的定义和分类
1.3.2 软件项目管理知识内容
1.3.3 软件项目管理过程
1.3.4 软件项目管理基础
练习1
第2章 软件项目立项
2.1 软件项目立项流程
2.2 软件项目发起
2.2.1 识别企业内部IT项目
2.2.2 关键业务领域分析
2.2.3 IT企业项目选择方法
2.3 软件项目可行性分析
2.3.1 可行性分析的定义和时机
2.3.2 可行性分析的内容
2.3.3 可行性分析的结果
2.3.4 可行性分析报告
2.4 软件项目申请
2.5 软件项目审核和立项
2.6 案例
练习2
第3章 软件项目合同管理
3.1 软件项目招投标
3.1.1 招投标特点和过程
3.1.2 招标方式
3.1.3 招标前准备工作
3.1.4 编制招标文件
3.1.5 招标
3.1.6 资格审查
3.1.7 投标
3.1.8 开标
3.1.9 评标
3.1.10 中标
3.2 软件项目合同管理流程
3.2.1 项目采购管理概述
3.2.2 软件项目合同管理流程
3.3 合同前准备
3.3.1 甲方合同前准备
3.3.2 乙方合同前准备
3.4 签署合同
3.4.1 合同种类
3.4.2 合同条款
3.5 合同履行
3.5.1 合同跟踪管理过程
3.5.2 违约事件处理过程
3.5.3 合同变更管理过程
3.5.4 产品交付验收过程
3.6 合同收尾
3.7 外包管理
3.7.1 软件外包分类
3.7.2 软件外包管理流程
3.7.3 软件外包项目特殊性
3.7.4 软件外包风险
3.7.5 软件外包项目需要注意的问题
3.8 案例
3.8.1 某软件项目招标书目录
3.8.2 某软件项目合同
练习3
第4章 软件项目启动和范围管理
4.1 软件项目启动
4.1.1 制定项目章程
4.1.2 识别项目干系人
4.1.3 召开项目启动会议
4.2 项目范围管理
4.2.1 项目范围管理概述
4.2.2 收集需求
4.2.3 定义范围
4.2.4 创建工作分解结构
4.2.5 核实范围
4.2.6 控制范围
4.3 案例
练习4
第5章 软件项目需求管理
5.1 软件项目需求概述
5.1.1 软件需求定义
5.1.2 软件需求分类和层次结构
5.1.3 软件需求的挑战和风险
5.1.4 成功需求标准
5.1.5 软件需求工程内容
5.2 软件需求开发
5.2.1 软件需求获取
5.2.2 软件需求分析
5.2.3 需求规格说明
5.2.4 需求验证
5.3 软件需求管理
5.3.1 需求变更管理
5.3.2 版本控制
5.3.3 需求跟踪
5.3.4 需求状态
练习5
第6章 软件项目团队管理
6.1 团队管理概述
6.1.1 团队的定义和特征
6.1.2 团队的成长规律
6.1.3 项目人力资源和沟通管理领域过程
6.2 软件项目人力资源计划
6.2.1 项目人力资源计划的内容
6.2.2 软件项目团队角色分类
6.2.3 软件项目组织结构设计
6.3 构建软件项目团队
6.3.1 项目成员选择
6.3.2 团队结构选择
6.4 建设软件项目团队
6.4.1 了解团队
6.4.2 建设团队文化
6.4.3 制定团队规范和流程
6.4.4 团队学习
6.4.5 团队激励
6.4.6 团队绩效评估
6.4.7 团队沟通
6.4.8 团队领导
6.5 案例分析
练习6
第7章 软件项目估算
第8章 软件项目风险管理
第9章 软件项目质量管理
第10章 软件项目配置管理
第11章 软件项目进度管理
第12章 软件项目监控
第13章 软件项目收尾管理
附录 各章练习参考答案
参考文献
2.用户描述需求问题
软件开发的第一步是用户描述自己的需求,图1.1中假设用户描述的需求是完全准确的,但实际情况中,当软件项目开始做需求分析时,因为下述各种原因,用户描述的需求通常是不完全正确的。
·用户自己也不清楚自己需要什么功能,因此描述不出需求。
·用户对系统有抵制情绪,不愿意描述需求。
·用户懒于将其需求整理总结,导致前期需求描述不充分,但是后期不停地提出变更需求。
·典型用户因业务繁忙而委托不太熟悉业务的用户来描述需求,从而使需求准确度降低。
千里之行,始于足下,当需求描述出现问题时,软件开发的第一步方向就走错了,那么不论后面怎么努力,也无法到达终点。有效的用户描述是软件项目成功的第一步。
不能够准确描述需求通常会导致项目进展中出现需求变更问题,变更需求必然带来一系列的问题,如进度滞后、成本超支、加班加点等。有效管理需求变更也是软件项目管理的一个重要方面。
3.项目经理的指挥问题
项目经理就像乐队的指挥,对项目的成败有决定性作用。很多项目经理往往是身兼数职,如项目经理、架构人员等,因此在需求分析过程中,惯性思维使然总会“及时”地在脑海中勾勒出技术框架和路线,然后尽可能地控制需求的范围,从而产生需求的误解和控制,即项目经理在项目沟通的开始就产生了很大的理解偏差。而通常项目经理是比项目其他人员先了解到项目需求的,他在后期与项目分析人员沟通时,就容易“先人为主”地把自己对需求的理解先告诉需求分析员,从而使分析员被错误地引导,不会详细正确地理解用户的需求。
4.分析人员的技术加工问题
即使分析人员没有其他干扰直接和用户沟通,其对需求的理解也存在技术加工问题,导致分析人员的理解严重偏离实际需求,这和现实中软件项目的处境是相关的。在目前软件项目的买方市场,软件公司如果接到一个软件项目,不论公司内有无熟悉客户业务领域’的分析人员,项目也是要及时启动的,而不会等到招聘到合适的业务分析人员再开始。通常,业务分析人员往往是项目经理、技术骨干或者其他领域分析人员担任的。这种情况下,这些系统分析人员因为不理解客户的业务,在分析过程中沟通肯定存在问题,而且这些人员往往在思考时带有定势思维,总是从技术角度来进行分析,从而导致需求分析出现严重问题。
……