软件项目管理实例分析.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.如何进行项目计划
项目计划是为实现某一个目标丽对任务进行系统的安排。
而通俗的讲,计划决定着做什么、谁去做、花多长时间去做、消耗多少费用。
项目管理的首要目标是制定一个构思良好的项目计划,以确定项目的范围、进度和费用。
在整个项目寿命周期中,最基本、也可以说最重要的功能之一就是项目计划,特别是在作出影响项目整个过程的主要决策的初始阶段。
计划之所以成为项目管理的最重要的功能,是因为它指出了项目组织未来努力的方向和奋斗目标,是经过仔细分析后综合成的对未来的构思,又是当前行动的准则。
一个完善的计划可以使失败的概率降至最低,以最大限度地保证在预期的期限内取得预期的效果。
但从另一方面来说,如前所述,由于项目管理是一个带有创造性的过程,项目早期的不确定性很大,所以项目计划又不可能在项目一开始就全部一次完成,而必须逐步展开和不断修正。
这又取决于能适当地对计划的执行情况作出反馈和控制以及不间断地交流信息。
从这里也可看出项目进行过程中控制的重要性。
制定一个综合的项目基准计划(BaselinePlan),一般按如下步骤进行:
①清晰地定义项目目标(Objective)。
②把项目按项目范围详细分解为工作包(WorkPackages),形成WBS(WorkBreakdownStructure)。
③界定对应每个工作包必须执行的各项活动(Activity)。
④以甘特图(GanttChart)或网络图的形式图示出活动。
⑤估算出项目的进度计划和成本预算。
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企业产品的远程智能诊断的系统:
要求把采集来的产品数据实时可视化和进行诊断,并把数据存于仓库中以进一步更新规则库。
●项目管理软件的选择
这里主要考虑软件的易用性、功能完备性及与其它系统的互操作性三个标准。
Project2000同其它微软类软件具有统一的界面,能够完成所需的绝大部分功能,更重要的是它与微软的其它软件具有无可比拟的兼容性,因此,本项目选取了Project2000作为项目管理软件。
●项目工作包分解
为了分发任务及进行项目的管理,把项目按项目范围详细分解为工作包是必要的步骤。
系统的WBS是信息沟通的共同基础同时是系统综合与控制的手段。
远程智能诊断系统的WBS如下图7所示。
图7远程智能诊断系统的WBS
●项目的进度计划
在制定出了系统的WBS之后,就可规划系统的进度安排了。
远程智能诊断系统的进度计划如表2。
表2远程智能诊断系统的进度计划
标识号
任务名称
工期
开始时间
完成时间
前置任务
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
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
●远程智能诊断系统的甘特图
甘特图(GanttChart)也叫做线条图或横道图,它是以横线来表示每项活动的起止时间。
甘特图的优点是简单、明了、直观,易于编制,因此到目前为止仍然是一些项目中常用的工具,它也是高级管理层了解全局、基层安排进度时有用的工具。
远程智能诊断系统的甘特图(GanttChart)如图8所示。
图8远程智能诊断系统的甘特图
●远程智能诊断系统的网络图
在甘特图上,可以看出各项活动的开始和终了时间。
在绘制各项活动的起止时间时,也考虑它们的先后顺序。
但各项活动上间的关系却没有表示出来,同时也没有指出影响项目寿命周期的关键所在。
因此,对于复杂的项目来说,甘特图就显得不足以适应,而网络图可弥补这方面的不足。
远程智能诊断系统的一部分网络图如下图9示。
图9远程智能诊断系统的部分网络图
3.3项目进度控制
在建立了项目基准计划之后,管理工作就是进行过程的监控,以确保一切按计划行事。
本项目控制过程包括每7天收集一次项目绩效的资料,之后把实际的绩效与计划绩效相比较:
如果实际比计划差,则采取纠正措施,同时要缩短监控的时间间隔。
如果实际进度滞后于基准计划,则要更改基准计划以确保计划是切实可行的、是最新的。
同时把更新的计划反映到图示中,如甘特图、网络图等中。
远程智能诊断系统的进度控制在此不再细述。
3.4项目总结
远程智能诊断系统的项目总结包括项目经理主持的评估会议、项目经理与部分项目成员的私人会议和确定技术培训事宜的活动三部分。
会议讨论的成果全部按表1备案,以资后用。
由于篇幅,远程智能诊断系统的项目总结报告此处略去。
4结束语
软件的项目管理是生长在传统项目管理上的新苗,同时它带来了自己的特色,正在形成自己的完备知识体系(PMBOK)[9]。
目下,软件项目管理愈来愈受到各大软件公司CEO、CIO的重视,有的己建立起相当完善的项目管理办公室(PMO),专门负责项目的管理工作[8]。
窗体底端