唐僧师徒赴西天取经,不畏艰险,锲而不舍,历经八十一难终修成正果。这是一段伟大的旅程,敢问路在何方--路在脚下!世上没有不能到达的目标,远的路途在脚下,这是西游记让我们深深感动的地方。西游记绚丽多彩的魔幻世界其实是现实社会的投影,平凡的人们为了生存和发展都会历经磨难。作为一名IT业的项目经理,我深刻地体会到:这是一个充满挑战和艰辛的职业,但也是一个自 我发展和提升的途径。一帆风顺的经历不会增长才干,帮助个人成长的其实是困难和障碍以及克服它们的过程,只有经历风雨,才能迎来彩虹。
本文以我负责的某大型教育培训网站(简称教育网系统)建设项目为背景,结合项目实战经验谈一些体会。这个项目是我初任项目经理时经历的,现在回顾起来,当时所遇到的问题以及解决过程还历历在目。
甲方不提供硬件测试环境,争取提前试运行发现问题
该项目要建设一个在线学习和教育管理网站,提供在线学习和考核的平台,实现培训工作的信息发布和组织管理。平台所使用的课件由其他系统制作,本系统需提供课件上传管理功能。系统采用Oracle数据库、WebLogic应用服务器,通过F5实现负载均衡,使用基于J2EE技术的B/S架构,要求能够运行在Unix平台上。
接手这个项目后,我首先对系统的运行环境做了初步了解。客户方的机房有多台IBM AIX小型机和PC机。WebLogic应用服务器将部署在AIX小型机上,在一台AIX小型机上会同时部署多家公司的应用系统,每个应用系统在WebLogic中都通过建立独立的域(Domain)来进行管理。
任何应用系统在上线前都应进行严格的测试,而且测试环境要与实际运行环境一致,因为应用系统的功能、性能在不同操作系统环境下的表现是不一样的,因此为了保证系统的稳定运行,需要准备AIX小型机作为测试环境。但是我们以前承接的项目使用的基本都是HP和SUN的服务器,没有AIX服务器。
我意识到这是一个重要风险,必须妥善应对。客户的机房有一些测试设备可供使用,我与销售经理沟通,看有无可能得到客户许可使用机房的测试设备。这个项目当时还处于售前阶段,正在签署合同。销售经理反馈回来的结果是,客户不负责提供测试环境,并且在合同中对此增加了明确的条款:甲方不负责提供任何测试设备和环境。我在客户这边碰了壁,只好另外想办法,首先想到的是从公司获得支持。
项目启动后,我在项目计划中上报了这个风险,希望公司帮助调配一台测试用机,或者采购一台AIX小型机,在各个项目之间共享,解决多个项目可能会遇到的同样问题。项目管理部很快打来电话,询问了详细情况,表示公司调配有一定困难,其他项目并没有闲置的小型机,目前也没有采购机器的预算,希望项目组尽力设法解决,并强调一定要妥善处理,不能因此发生问题。
回想我当时的心情真不好受,感觉孤立无援,但是我从这个过程中也学到了重要的一课:项目经理的作用不只是发现问题、提出问题,更重要的是解决问题。系统测试的硬件环境不具备,客户和公司都不能提供支持,这是一个必须解决的难题。
这个问题放在现在是很好解决的,可以花少量费用短期租赁,但当时IT租赁业还没有发展起来,可以提供设备的大公司价格很高,而价格较低的小公司设备又不全。我询问了两个关系不错的合作伙伴公司能否借用,对方当下没有正好闲置的机器。看来这个风险不能避免,那要从如何减小风险的影响程度上寻找对策。我一方面继续寻找机器,一方面积极与客户沟通,终得到客户的支持,允许我们提前到正式环境下部署,在系统大范围试运行前先小范围试运行一段时间,这样为解决可能面临的问题赢得了时间。
询方质疑
在我的推进下,系统得以提前部署到正式环境中,但不久发现了一个严重的问题:课件的视频文件通常在几百兆左右,在上传到AIX平台时,速度非常慢,只有40KB/s,以至于浏览器页面失去响应,只有十几兆的小课件可以上传成功,稍微大一点的课件传不上去了。
我组织项目团队深入分析了这个问题,通过比较测试环境与正式环境的不同之处,定位问题的原因可能来自“网络环境”或者“操作系统”,此外应用程序上传组件在正式环境下能否正常运行也有待验证,根据初步分析,我们制定并实施了以下问题排查措施:
在客户方环境下使用FTP工具上传大视频文件,并使用网络监测工具观察上传过程是否正常,结果上传速度很快,网络监测也完全正常,基本排除了网络因素;
在客户方Windows环境下搭建WebLogic应用服务器进行测试,在上传代码中增加日志输出功能,打印分段传输文件过程中每段的用时和传输速度,结果上传速度很快,可以确定上传组件正常运行;
对操作系统的问题,为进一步缩小问题范围,我们在公司搭建了HP Unix测试环境,上传速度仍然很快,这样基本确定问题是由AIX操作系统带来的。
我组织项目团队成员继续奋战,查阅了AIX操作系统的大量资料,在团队技术骨干的分析和论证下,后定位问题原因在于一个AIX操作系统的网络传输参数。于是我们写了一份分析报告提交给用户,说明了排查的过程和结论,请求客户方允许我们调整AIX操作系统的一个参数,问题可以迎刃而解。
但是事情并不像预期的那样顺利,客户方请的咨询公司认为我们的报告证据不足,认为问题是应用系统的错误造成的,应修改应用系统,不应调整参数,而且由于AIX系统上运行着多家公司的多个应用系统,调整参数可能对其他系统产生影响,因此咨询公司坚持在没有得到权威结论前不同意调整参数。
我们一时找不到AIX系统验证我们的结论,但是客户方要求我们尽快解决问题,迫于时间压力,我们只好采用了权宜之计,修改了技术方案,从系统设计上做了调整,增加了一种课件上传管理的方式,避开了直接通过应用系统上传,这样做会增加一些操作步骤,但能够满足课件后台维护的要求,客户也认可这种修改方案,这个问题基本得到了解决。
用事实回应质疑,赢得甲方肯定
问题虽然得到解决,但我的心里却很不踏实:我们的排查结论是否正确还没能在AIX系统上进行验证,这次绕开陷阱的做法只是权宜之计,对系统今后的推广和产品化等工作会带来隐患,也许我们在未来还会再次遇到这个陷阱。此外,由于咨询公司多年服务于客户方,有重要的地位,他们的意见会左右客户方对我们的评价。这是我必须彻底解决的又一个重要问题:如何用事实证明我们的实力和价值。
我一直没有放弃多方寻找问题的解决方法,也一直保持和合作伙伴的联系。当时我还负责另一个项目,需要第三方测试,为此请了专业的第三方测试机构。他们拥有各种品牌、型号和配置的服务器,这让我看到了转机。在第三方测试工作开展的过程中,我与测试机构的负责人建立了良好的关系,在我提出需要免费借用设备时,对方很爽快地答应了。
我们很快在AIX操作系统上搭建了应用系统,进行了期待已久的测试。选定几个不同大小的视频文件样本,在网络传输参数tcp_nodelayack为缺省值0的情况下进行测试,结果与在客户方现场的表现一样,文件上传速度为40KB/s左右,50MB以上的文件不能成功上传。当把该参数改为1,再用样本文件测试,结果上传速度显著提高,达到4MB/s.我们详细记录了验证过程,写了一份报告发送给客户方和咨询公司,用事实证明了应用系统没有问题,排查结论是正确的,赢得了客
户方对我们工作的肯定。