摘要:
本文讨论了作者参与的软件项目的项目计划制定及管理问题。该软件项目是笔者所在企业于2005年10月与首都机场合作的首都机场3号航站楼×××××系统,主要实现的功能包括旅客值机、旅客登机、航班信息统计、触发航班显示和航班广播、行李报文转发、备份值机等。2008年2月,该项目顺利通过民航总局验收,正式投入使用,其建设周期长达28个月,合同总额超过××××万美元(约×××亿人民币)。
作者是该项目的项目经理,全程负责该项目的需求分析、设计开发、测试实施、运行维护等工作。在该项目的项目计划制定和管理过程中,作者采取了抓关键路径、逐步细化、统计过程控制三个主要策略,收到了良好的效果。
正文:
2005年10月,作者所在企业正式启动了首都机场3号航站楼××××系统项目,用以保证旅客顺利、高效的办理值机(即机票换领登机牌并分配座位),轻松实现登机,保证航班正点、安全起飞,使得各航空公司可以在机场本地实现离港控制的功能,如旅客值机、登机、配载平衡、行李查询等,同时能在机场与离港主机中断通信时实现本地备份离港控制功能以及面向不需要托运行李的旅客提供自助值机功能。
作者有幸参与了该系统的全过程开发和建设,并担任项目经理一职,领导一支超过30人的团队,在“周密计划、精心实施”策略的指引下,使得该系统于2008年2月顺利上线,赢得了民航总局和最终用户的一致认可。对于这样一个大型复杂的软件项目,作者认为只有制定一个切实可行的计划,才能保证项目的顺利实施和完成。
总结该项目的经验,作者认为最核心的思想有三个,即抓关键路径、逐步细化、统计过程控制。下面,作者将结合这三个策略讨论一下软件项目的进度制定和管理。
一、 抓关键路径
在对离港控制系统的各个活动进行分解定义并排序后,可以得到该项目的网络图。尽管这样一个大型复杂项目的网络图非常复杂,但是它的关键路径却只有一条,这在该系统的开发环节表现的特别明显,即旅客值机模块位于关键路径上,而航班信息统计、自助值机、触发航班显示等模块并不位于关键路径上,也就是说,如果旅客值机模块的开发周期拖延,那么,整个项目的建设周期将延长;反之,如果旅客值机模块的开发周期缩短,那么,整个项目的建设周期将缩短(前提是关键路径并未发生变化,否则,可能会产生新的关键路径)。
基于上述考虑,作者在为项目安排资源(尤其是人力资源)的过程中,优先满足关键路径,即旅客值机模块的需求,也就是说,将核心员工和有类似开发经验的员工安排在该模块的分析、设计和开发上,确保该模块按照计划进行。当然,这并不是说,对其他模块的设计开发忽略不管,而是采取动态跟踪和动态控制的方法,随时监控项目的工作绩效,防止非关键路径的拖延造成关键路径的变化,进而影响整个项目周期的变化。
二、 逐步细化
项目计划的逐步细化是由项目的临时性和特殊性决定的。在项目前期,只能对项目计划进行大致和粗略的定义;而随着项目的实施和进展,才能对项目计划进行完善和精确。例如,在项目启动后就制定了项目的初步计划。由于首都机场的开航时间确定在2008年2月29日,因此,该项目的完成时间就定在2008年1月31日,预留1个月左右的时间进行不少于6次的模拟演练,以便在更真实的场景中测试和验证系统的功能和性能。
时间框架搭建起来之后,大致为该项目分成了7个阶段,即项目启动、需求分析、设计、开发、实验室测试、现场测试和验收测试,其中每个阶段都确定了粗略的时间进度框架,如项目启动阶段是从2005年10月到2005年11月,需求分析阶段是从2005年11月到2006年5月,设计阶段是从2006年4月到2006年12月(从上述阶段划分也可以看出,笔者在项目建设过程中,采取并不是严谨的瀑布模型,而是瀑布加迭代的模型)。
在需求分析完成后,就可以对上述进度计划进行进一步细化了。这一方面是因为对用户的需求已经了解清楚,需求规格说明书已经完成并经用户确认;另一方面是因为大部分用例已完成,可以更精确的估算工作量。例如这时,可以对值机模块的设计阶段进一步深化和细化,将其分为值机模块的设计、值机模块SDS的提交、用户对值机模块SDS反馈以及深化设计方案的确认和定稿四个阶段,而每个阶段都可以进一步明确起止时间。
依此类推,项目计划可以随着项目的展开不断深化和细化。事实上,在该项目的建设过程中,笔者在整个团队中推广的方法就是“周计划、日总结”,即每周的第一天制定本周的计划,而在每天下班前对当天的工作进行总结,回顾已完成的工作,明确未完成的事宜,并对第二天的工作进行展望。
笔者认为,这种渐进明晰的项目计划策略不仅可以提高计划的可行性,而且可以增加项目团队的沟通和协作,对保证项目进度大有裨益。
三、 统计过程控制
离开了监测和控制,再完美的计划也于事无补。项目控制是指依据项目计划对项目的实际实施情况进行控制,使项目能够按时完成,即纠偏的过程。不过,由于软件项目本身的特点(如软件的安装依赖于硬件设备的到货、软件的测试依赖于网络条件的具备)决定了软件项目发生偏差(尤其是进度偏差)的概率非常高,而这些“异常信号”有时候并不会对项目的成败产生重要影响,因此,如果对每一个进度偏差都施加控制,那么,项目管理的复杂度和难度就大大增加。
基于上述考虑,作者在该软件项目的进度管理过程中引入了“统计过程控制”的方法。所谓统计过程控制,是应用统计过程对项目的各个阶段进行监控,从而达到改进和保证项目之质量的目的。即以类似的软件项目(笔者所在公司曾承担过类似机场如白云机场、浦东机场、天津机场的离港控制系统)历史数据为参考,统计进度偏差的分布情况。据作者的分析,类似项目的进度偏差近似服从正态分布,因此,作者首先计算出以往项目进度偏差的均指和方差,然后在本项目中设置一定的偏差水平(如三个均方差)。这样一来,在项目实施过程中,可以绘制项目进度的控制图:只有项目进度偏差超出了上限或下限时,才对项目进度实施控制,否则就认为项目进度偏差在允许范围内。
采用这种方法,一方面可以降低项目的实施复杂度,不至于因为项目进度的些微差异而忙于应接不暇,另一方面,这又可以降低评估判断进度是否出现偏差的成本。这样一来,即使项目进度出现了偏差,但是却落在允许偏差范围的区间内,那么,仍然可以将上述偏差“过滤”掉。换言之,在上述情况下,可以对上述偏差视而不见,转而将更多的精力和时间聚焦在真正影响项目进度的问题上。
在上述三个策略的指引下,在团队成员的全力配合下,该项目顺利通过了民航总局的行业验收和机场股份公司的用户验收,并于2008年2月正式投入使用,每天为200多架航班、30000多名旅客提供值机、登机服务。
阅读(1629) | 评论(0) | 转发(0) |