软件项目管理实例分析报告.docx
《软件项目管理实例分析报告.docx》由会员分享,可在线阅读,更多相关《软件项目管理实例分析报告.docx(16页珍藏版)》请在冰豆网上搜索。
软件项目管理实例分析报告
软件项目管理实例分析
1 引言
随着信息技术产业的迅速发展,软件越来越受到了人们的关注与重视,越来越多的人
把目光投到了充满风险与利益的软件行业。
但据资料载,软件业的发展却存在如下的关键性问题:
[1]
①大的系统,一般常滞后于计划;
②只有 10%的软件能按时完成并交付使用;
③需求比较高的软件有 25%无法完成。
仅英国,这些原因造成的损失约有 20 亿英镑之多。
实际上,这些问题的出现在很大程
度上足由于没有有效地进行软件项目的管理造成的。
如果把软件项目的实施简单的认为是把工作分发给每个人员,然后幻想他们将会取得
一个预期的结果的话,许多本可能成功的项目也会走向失败!
但如果重视项目管理、有效的实施项目管理,即使更复杂的项目也可能成功。
早在 70
年代,“阿波罗”登月计划就采纳并应用了有效的项目管理方法,结果取得了巨大的成功[2]。
软件项目管理是传统意义上项目管理的一个应用领域。
美国著名杂志《Fortune》(即
《财富》)预测,项目管理将是后工业时代的首选职业。
这对软件业来说更是如此了[4]。
但目前,软件行业的项耳管理方法还欠规且专业化程度不高。
本文将探讨如何有效运用传统项目管理的科学方法进行软件项目管理,并将给出一个
作者亲历的实例。
2 项目管理与软件项目管理
软件的项目管理在一定程度上借鉴了传统意义上项目管理科学,但又在一定程度上不
同于后者。
本部分将介绍这方面的理论。
2.1 项目管理
2.1.1 项目
什么是项目?
我们知道,社会的各种工作可分为两大类:
一是重复性、持续性的工作,
可称为运作,譬如火车的往返运行,在运作中存在若大量的常规性劳动;二是独特性、一
次性的工作,可称为项目,譬如高速铁路的研制和建设,每条高速铁路都会有自己独特的
地理位置和技术创新,并日只需研制和建造一次,在项目中则存在较多的创新性劳动。
由
此可知,项目就是以一套独特而相互联系的任务为前提,有效的利用资源,为实现一个特
定的目标所作的工作[3]。
由于项目的独特性和一次性特征,引伸出它的其他特点,如目标的确定性、过程的渐
进性、成果的不可挽回性、组织的临时性和开放性等。
一个项目的成功实现通常受 4 个因素的制约:
技术围、成本、进度控制、客户满意
度。
对此的可视化说明见图 1。
人们也通常称其中的时间、费用和围因素为项目三角形,
如图 2 示。
图 1 项目如何走向成功
图 2 时间、费用和围构成的项目三角形
项目作为工作的有序集合,也是一种“生命体”,即有它孕育、萌生、成长和死亡的历
程。
图 3 所示为项目的生命周期。
项目的管理过程是受限于项日的 4 个因素并依附于项目
生命周期的(详见下文)。
2.1.2 项目管理
项目管理是 20 世纪 50 年代后期发展起来的一种计划管理方法,它一出世就引起举世
瞩目。
项目管理运用先进科学的管理方式,能有效解决大型组织的效率低下和小型企业面
临的风险增加问题,以组织的机动灵活、面向客户和资源利用率高而被广泛应用。
1957 年
美国的杜邦公司把这种方法应用于设备维修,把维修停工时间由 125 锐减为 78 小时;
1958 年美国人在北极星导弹设计中,应用项目管理技术,竟把设计完成时间缩减了 2 年。
项目管理是指在有限资源和预定时间限定下,拿出满足要求并能令顾客满意的产品的
过程。
而项目管理的职责就是确保项目目标的实现和确保工作围在预算高质量地按时
完成,并得到客户的认可。
形象的所说,项目经理就如同一场音乐演唱会的指挥师。
项目管理工作大多数都涉及一些相同的活动,其中包括将项目分割成便于管理的多个
任务、排定任务的日程、在工作组流信息以及跟踪任务的工作进展。
所有的项目管理
实施都包括以下三个主要的阶段:
1.创建计划
2.跟踪和管理项目
3.结束项目
这三个阶段进行得越成功,成功完成这个项目的可能性就越大
对于项目管理的过程将在软件项目管理中进一步介绍。
2.2 软件项目管理
软件项目管理是对传统项目管理进行鲜明软件工程化的一种扩展与拓延。
2.2.1 软件项目管理的自身特点
软件项目管理一方面它建立在软件工程技术之上,要求管理者有较高的软件工程背景
知识;另一方面,它的实施依赖于一群有创造性、高智力者所组成的团队。
相对于其他行
业来说,软件领域的工程化是一个艰辛而漫长的过程,或者说至今实践上仍不成熟,存在
理论和实践脱节的地方。
主要表现如下:
l.开发领域中的分工体制不完善每个人都成了全能型健将;
2.文档的规作用多被忽视,代码和设计文档严重脱节;
3.软件工程师的软件工程意识薄弱,个人英雄主义色彩严重;
4.开发人员重代码轻设计,交流往往只限在代码一级。
但随着软件规模越来越大,功能也越来越复杂,软件开发走向工程化将是必然趋势。
而对应的进行软件产品的项目管理工作也将对一个产品的成功起到越来越重要的作用。
2.2.2 软件项目管理容
一般而言,软件项目管理的基本围包括:
过程管理和人员管理两部分。
这一系列的
管理活动体现为:
A 建立项目的过程框架
B 建立有效的、可跟踪的项目进度计划
C 建立项目的质量保证体系
D 建立项日的配置管理体系和准则
E 项目变更管理
F 跟踪、监控和控制项目的进展
G 风险管理
H 团队建设
一个通用的项目过程活动框架如图 4。
图 4 项目过程活动框架
从软件项目管理的角度来说,第一阶段主要是做计划;第二个阶段主要是执行计划;
第三个阶段主要是项目的总结。
伴随其中的则是项目的团队建设。
1.如何进行项目计划
项目计划是为实现某一个目标丽对任务进行系统的安排。
而通俗的讲,计划决定着做
什么、谁去做、花多长时间去做、消耗多少费用。
项目管理的首要目标是制定一个构思良好的项目计划,以确定项目的围、进度和费
用。
在整个项目寿命周期中,最基本、也可以说最重要的功能之一就是项目计划,特别是
在作出影响项目整个过程的主要决策的初始阶段。
计划之所以成为项目管理的最重要的功
能,是因为它指出了项目组织未来努力的方向和奋斗目标,是经过仔细分析后综合成的对
未来的构思,又是当前行动的准则。
一个完善的计划可以使失败的概率降至最低,以最大
限度地保证在预期的期限取得预期的效果。
但从另一方面来说,如前所述,由于项目管理是一个带有创造性的过程,项目早期的
不确定性很大,所以项目计划又不可能在项目一开始就全部一次完成,而必须逐步展开和
不断修正。
这又取决于能适当地对计划的执行情况作出反馈和控制以及不间断地交流信息。
从这里也可看出项目进行过程中控制的重要性。
制定一个综合的项目基准计划(Baseline Plan),一般按如下步骤进行:
①清晰地定义项目目标(Objective)。
②把项目按项目围详细分解为工作包(Work Packages),形成 WBS(Work Breakdown
Structure)。
③界定对应每个工作包必须执行的各项活动(Activity)。
④以甘特图(Gantt Chart)或网络图的形式图示出活动。
⑤估算出项目的进度计划和成本预算。
2.项目的执行与控制
在建立了项目基准计划之后,项目工作就可以开始进行了,即进入项目的执行过程。
在这个过程,进行过程的监控,以确保一切按计划行事是必要的。
项目控制过程包括定期
收集项目绩效的资料,把实际的绩效与计划绩效相比较;如果实际比计划差,则应当采取
纠正措施。
这里有一个原则:
坏消息必须尽快传递[5]。
图 5 说明了项目控制过程的主要活
动。
图 5 项目控制过程
3.项目总结
项目的最后一个阶段是结束项目并进行总结。
它开始于项目工作完成之后,这个阶段
的目的是从中学到经验,以便在未来的项目中改进工作绩效。
总结的一个重要方式是举行项目后评估会议。
项目经理应当讨论项目执行期间发生的
事,并确定一些具体的改善建议。
一个会议讨论容的模板如下表 l。
表 1 项目评估会议的容模板
(1)技术绩效
●工作围
●质量
●管理变更
(2)成本绩效
(3)进度计划绩效
(4)项目计划与控制
(5)客户联系
(6)团队联系
(7)交流
(8)识别问题与解决问题
(9)对未来项目的建议
4.团队建设
人员是项目成功的关键。
软件不是科学,它只是一门技术,一项与人及组织有着密切
联系的技术。
尽管软件工程师们是聪敏而才气的,但如果不把他们很好的凝聚到一起、不
把它们的激情调动起米的话,项目要成功就难了;正如拿破仑所言,军队战斗力的四分之
三是由士气组成的。
一支运转良好的团队通常可以产生远远超出单个成员的生产效率,而好的项目团队的
标志是“2+2>4”。
如何组建一个和谐的团队是项目经理的职务所在。
这方面的进一步信息可参见文[3]、[6]和[7]。
3 一个软件项目的管理实例
这里要分析的实例是作者兼职一家软件公司的项目经理时所做。
限于篇幅,仅讨论关
键点
3.1 项目背景简介
本项目是要在一家国有中型企业构建产品的远程智能诊断系统。
具体的软件体系结构
如下流程图 6 所示:
图 6 远程智能诊断系统的结构
3.2 项目计划
●项目目标
在 80 天的时间里,用 15 人的资源,开发出一种能实现 x 企业产品的远程智能诊断的
系统:
要求把采集来的产品数据实时可视化和进行诊断,并把数据存于仓库中以进一步更
新规则库。
●项目管理软件的选择
这里主要考虑软件的易用性、功能完备性及与其它系统的互操作性三个标准。
Project
2000 同其它微软类软件具有统一的界面,能够完成所需的绝大部分功能,更重要的是它与
微软的其它软件具有无可比拟的兼容性,因此,本项目选取了 Project2000 作为项目管理
软件。
●项目工作包分解
为了分发任务及进行项目的管理,把项目按项目围详细分解为工作包是必要的步骤。
系统的 WBS 是信息沟通的共同基础同时是系统综合与控制的手段。
远程智能诊断系统的
WBS 如下图 7 所示。
标识号
任务名称
工期
开始时间
完成时间
前置任务
1
项目围规划
2.5 工作日
2001 年 6 月 20 日
2001 年 6 月 22 日
2
确定项目围
4 工时
2001 年 6 月 20 日
2001 年 6 月 20 日
3
项目资源配备
2 工作日
2001 年 6 月 20 日
2001 年 6 月 22 日
2
4
项目围规划阶段结
束
0 工作日
2001 年 6 月 22 日
2001 年 6 月 22 日
3
5
软件需求分析
10.38 工作日
2001 年 6 月 22 日
2001 年 7 月 6 日
6
行为需求分析
5 工作日
2001 年 6 月 22 日
2001 年 6 月 29 日
4
7
制定软件规
2 工作日
2001 年 6 月 29 日
2001 年 7 月 3 日
6
8
制定成本预算
2 工作日
2001 年 7 月 3 日
2001 年 7 月 5 日
7
9
确定进度计划
1 工作日
2001 年 7 月 5 日
2001 年 7 月 6 目
8
表 2 远程智能诊断系统的进度计划
图 7 远程智能诊断系统的 WBS
●项目的进度计划
在制定出了系统的 WBS 之后,就可规划系统的进度安排了。
远程智能诊断系统的进度
计划如表 2。
10
风险分析
3 工时
2001 年 7 月 6 日
2001 年 7 月 6 日
9
11
分析工作阶段结束
0 工作日
2001 年 7 月 6 日
2001 年 7 月 6 日
10
12
原型设计
7.5 工作日
2001 年 7 月 6 日
2001 年 7 月 18 日
13
制定功能规
3 工作日
2001 年 7 月 6 日
2001 年 7 月 11 日
11
14
根据功能规开发原
型
3.5 工作日
2001 年 7 月 11 日
2001 年 7 月 17 日
13
15
根据反馈修改功能规
1 工作日
2001 年 7 月 17 日
2001 年 7 月 18 日
14
16
设计工作阶段结束
O 工作日
2001 年 7 月 18 日
2001 年 7 月 18 日
15
17
开发
17 工作日
2001 年 7 月 18 日
2001 年 8 月 1O 日
18
确定模块及接口
1.5 工作日
2001 年 7 月 18 日
2001 年 7 月 19 日
16
19
分派任务
1 工作日
2001 年 7 月 19 日
2001 年 7 月 20 日
18
20
编写代码
14 工作日
2001 年 7 月 20 日
2001 年 8 月 9 日
19
2l
开发人员初步测试
11 工作日
2001 年 7 月 26 日
2001 年 8 月 10 日
20FS-75%
22
开发工作完成
O 工作日
2001 年 8 月 1O 日
2001 年 8 月 10 日
21
23
测试
33 工作日
2001 年 7 月 18 日
2001 年 9 月 3 日
24
制定单元测试计划
4 工作日
2001 年 7 月 18 日
2001 年 7 月 24 日
16
25
单元测试
8 工作日
2001 年 8 月 10 日
2001 年 8 月 22 日
26
单元测试环境构建
3 工作日
2001 年 8 月 1O 日
2001 年 8 月 15 日
24,22
27
找出异常情况
2 工作日
2001 年 8 月 15 日
2001 年 8 月 17 日
26
28
修改代码
3 工作日
2001 年 8 月 17 日
2001 年 8 月 22 日
27
29
单元测试完成
O 工作日
2001 年 8 月 22 日
2001 年 8 月 22 日
28
30
整体测试
8 工作日
2001 年 8 月 22 日
2001 年 9 月 3 日
31
测试模块集成情况
3 工作日
2001 年 8 月 22 日
2001 年 8 月 27 日
29
32
找出异常情况
2 工作日
2001 年 8 月 27 日
2001 年 8 月 29 日
31
33
修改代码
3 工作日
2001 年 8 月 29 日
2001 年 9 月 3 日
32
34
整体测试完成
0 工作日
2001 年 9 月 3 日
2001 年 9 月 3 日
33
35
文档
20.5 工作日
2001 年 7 月 18 日
2001 年 8 月 15 日
36
制定“帮助”规
1 工作日
2001 年 7 月 18 日
2001 年 7 月 19 日
16
37
开发“帮助”系统
1O 工作日
2001 年 7 月 31 日
2001 年 8 月 14 日
20FS-50%,36
38
制定用户手册规
2 工作口
2001 年 7 月 18 日
2001 年 7 月 20 日
16
39
编写用户手册
9 工作日
2001 年 7 月 31 日
2001 年 8 月 13 日
38,20FS-50%
40
审阅并修改用户文档
2 工作日
2001 年 8 月 13 日
2001 年 8 月 15 日
39
4l
文档阶段结束
0 工作日
2001 年 8 月 15 日
2001 年 8 月 15 日
40
42
项目总结
2.38 工作日
2001 年 9 月 3 日
2001 年 9 月 5 日
43
经验教训归档
2 工作日
2001 年 9 月 3 日
2001 年 9 月 5 日
34
44
建立软件维护小组
3 工时
2001 年 9 月 5 日
2001 年 9 月 5 日
43
45
回顾完成
0 工作日
2001 年 9 月 5 日
2001 年 9 月 5 日
44
●远程智能诊断系统的甘特图
甘特图(Gantt Chart)也叫做线条图或横道图,它是以横线来表示每项活动的起止时间。
甘特图的优点是简单、明了、直观,易于编制,因此到目前为止仍然是一些项目中常用的
工具,它也是高级管理层了解全局、基层安排进度时有用的工具。
远程智能诊断系统的甘
特图(Gantt Chart)如图 8 所示。
图 8 远程智能诊断系统的甘特图
●远程智能诊断系统的网络图
在甘特图上,可以看出各项活动的开始和终了时间。
在绘制各项活动的起止时间时,
也考虑它们的先后顺序。
但各项活动上间的关系却没有表示出来,同时也没有指出影响项
目寿命周期的关键所在。
因此,对于复杂的项目来说,甘特图就显得不足以适应,而网络
图可弥补这方面的不足。
远程智能诊断系统的一部分网络图如下图 9 示。
图 9 远程智能诊断系统的部分网络图
3.3 项目进度控制
在建立了项目基准计划之后,管理工作就是进行过程的监控,以确保一切按计划行事。
本项目控制过程包括每 7 天收集一次项目绩效的资料,之后把实际的绩效与计划绩效相比
较:
如果实际比计划差,则采取纠正措施,同时要缩短监控的时间间隔。
如果实际进度滞
后于基准计划,则要更改基准计划以确保计划是切实可行的、是最新的。
同时把更新的计
划反映到图示中,如甘特图、网络图等中。
远程智能诊断系统的进度控制在此不再细述。
3.4 项目总结
远程智能诊断系统的项目总结包括项目经理主持的评估会议、项目经理与部分项目成
员的私人会议和确定技术培训事宜的活动三部分。
会议讨论的成果全部按表 1 备案,以资
后用。
由于篇幅,远程智能诊断系统的项目总结报告此处略去。
4 结束语
软件的项目管理是生长在传统项目管理上的新苗,同时它带来了自己的特色,正在形
成自己的完备知识体系(PMBOK)[9]。
目下,软件项目管理愈来愈受到各大软件公司 CEO、CIO 的重视,有的己建立起相当完善
的项目管理办公室(PMO),专门负责项目的管理工作[8]。