没有硝烟的战场
--记电信网优产品开发
2009年8月1日中午,一支队伍正在从北京的四面八方向北京火车站集结,手提行李箱,背着电脑。在候车大厅里,20几人集中到一起。这支队伍来自亿阳信通无线网优产品线,这是一个年轻的产品线,短短半年时间,已经发展到50人的规模。年轻不代表不能打仗,青春不代表不能吃苦。09年上半年,这支队伍就克服了资源短缺、经验不足的困难,在集团领导的英明决策以及产品线张总(张国华)的带领下,我们圆满完成了公司下达的工作指标。在开源的同时也注重节流,这半年我们的经费支出是全研究院最低的。当然,看到成绩的同时也要发现自己的不足。我们也清醒的意识到,不足也是很明显的,比如产品质量,距离领导的要求和用户的期望值存在一些差距。有问题并不可怕,可怕的是发现问题不去解决,避免同样的问题出现。我们张总经常给我们讲:我们要善于发现自己的缺点和不足,并加以改正,并且避免同样的错误出现,这就是好同志。
这支队伍的目的地是沈阳,此行的目的是电信网优产品的开发。由于时间紧、任务重,领导抽调了产品线一半的人员参与其中。20多人同时出差,参与一个产品的开发,对于我来说,这还是第一次,从另一个角度也可以看出公司领导对这个产品的重视程度。张总出发前已经动员过大家,让我们充分了解这个项目的重要性,并且给予我们以激励,这对于我们的全身心的投入以及产品的顺利交付起到了关键性的作用。只要大家团结一致、众志成城,有什么困难不能克服?
不到5个小时的车程,我们来到了我们的历史名城—沈阳。有几分欣喜,又有几分激动,同时还有几分沉甸甸的东西压在心中。自己在长春上了7年大学,对东北有一种莫名的亲切。一切是那么熟悉,那么自然,尽管没有来过沈阳,还是有种回家的感觉。
沈阳分公司的李总(李继峰)早已经在出站口等候多时,还特意雇了一辆车来接我们,让我们心里热乎乎的。在这里要郑重感谢沈阳分公司的领导和同事们,没有你们的大力支持,我们的产品不可能如期发布。是你们的贴心服务和支持,让我们能全心投入到产品的开发工作中去,提高了大家的效率和信心。邓总说的好:“表达情感的最好语言是行动”。我们唯有用我们实实在在的行动来感谢公司领导和现场人员的信任和支持。
8月2日,我们随车来到了辽宁电信现场,开始了我们为期40天的产品开发任务。产品办公环境有限,20多人只能挤在一个会议室里集中办公。只能容纳一个人的空间,这时候要坐两个人甚至三个人。还有两个同事,没有笔记本,只能把自己的台式机带过来。几十斤的机箱,拎起来都有几分难度,更何况从北京拎到沈阳,又要带到现场。可是他没有抱怨,我们把这一切都看作自己分内的事,只要能如期完成任务,这点苦算什么。我身边有太多这样的同志,遇到困难总是先自己默默承受,只讲付出不求回报。这是一支肯吃苦、勤思考、会工作、有志气、不小气、不赌气、少怨气的队伍,我深深的为身为其中一员而感到自豪。
由于电信产品调整了数据采集环境,由UNIX平台转为了LINUX平台,而LINUX平台对于我们来说是个全新的环境,这就带来了很多额外的困难。环境要重新搭建,程序包要重新编译,而在操作过程中又遇到了太多棘手的问题。我们是看在眼里,急在心里,好在张总在现场。他没有慌乱,而是静下心来,寻求问题解决的办法。自己处理不了,就找系统提供商来协助解决。另外,还积极联系无线和技术支持产品线,以得到最大的支持。我深深的意识到:真正的才能不在于自己本身搞定多少问题,而是充分利用周围有效的资源,来帮助自己解决问题。一个人的力量是有限的,而团队的力量是无穷的。有效的整合资源,才是领导所需具备的,这一点从亿阳的领导以及我们张总的身上得到了深刻的体现。
两周时间的加班加点,问题终于得到解决。程序可以在LINUX平台下顺利运行,这对于我们来说无疑是个好消息。可是,因为系统问题也耽误了工作进程,进度落后了。要想如期实现产品的交付,我们需要在后期把时间弥补过来。从第一天开始,我们就加班到晚上10点半。回到宾馆,洗蔌完毕,已经是第二天凌晨。而早上7点多起床,又要以崭新的面貌迎接新的一天。每天只有5、6个小时的休息时间。一周六天,每天从早上8点一直到晚上十点半,13个多小时的工作时间。从始至终,天天如此,这对于我们的身体是个巨大的挑战。为了如期完成任务,现在又有了更高的要求,在有限的时间内,要提高效率,这样才能达到目标。
在沈阳第二周,身心有些疲惫感,同时我也注意到了这种疲惫不只出现在我一个人身上,大家都有些累了,毕竟长时间的加班加点对于我们的身体素质是个严格的考验。有几个同事病倒了,我知道是因为过度劳累造成的。休息不好,饮食不适应,加上水土不服。可是他们还是坚持着,忍着身体上的病痛和我们坚持在第一线。
身体上的疲劳是可以利用精神上的意志克服的。这时候我们亿阳的精、气、神就体现出了它巨大的威力。积极的精神状态、心领神会的默契、出神入化的境界,这是我们亿阳的神,也是指引我们克服困难走下去的动力。思想是人之神、心之根,一旦激动斗志,下定决心,就再也不会被外界所击倒。我们互相鼓励,彼此支持,拧成了一股坚不可摧的绳子,一直坚持到最后。“忠诚自律、高效务实、健康愉快”,这是张总一直给我们提的,而且把这种精神落实到我们的工作和生活中。这种健康愉快的工作环境和氛围在支撑着我们每一个人。
在我们进入现场之前,德达已经在现场开发几个月的时间。他们在网优产品方面比我们的经验丰富,再加上用户先入为主的思维,对我们提高产品认知度带来了很大的困难。差距是有的,我们应该正视问题,可是有问题了怎么办?退缩、放弃?言败不是我们亿阳的风格,我们亿阳人的字典里没有服输这两个字。我们要做的,只有迎难而上。不但要赶上,而且要努力超过他们。要达到这个目标光靠决心是远远不够的,需要的是坚强的心理承受力以及良好的心理调节能力,更重要的是塌塌实实做好一点一滴。甲方乙方是没有绝对的平等的,从角色确立之时就造就了这一点。如果想取得成绩,得到用户的认可,这一关必须要过,否则项目很难进行。不过任何事情都是可以改变的,用户对我们的态度也可以因为高质量的产品得到转变。只要适当的引导加上对有效需求的完美实现,就可以让用户对我们刮目相看,从而变被动为主动。整个项目过程,我们的需求人员受了太多的委屈。开始的几天是倍受煎熬,每天接受用户的训斥。这其中有我们自己的问题,提交的产品与用户的期望有一些偏差,但也存在产品之外的问题:用户的无理要求,不合理的需要以及因为德达的先入为主而产生的偏见。产品本身的问题我们可以虚心接受,加以改进,可是后者的问题处理起来就需要一些技巧了。这些是不能直接和用户讲的。耐心倾听、循循善诱、挖掘用户需求才是良策!而我们的团队做到了,随着我们产品质量的提高,用户的态度开始转变,逐步开始认可我们的产品。
本产品的一个难点是CDL数据的处理。CDL(Call Detail Log)即用户原始话单详情。这是C网的特有数据,我们都是初次接触,且手头没有厂家的资料,初次看到华为和中兴的二进制加密文件,那几乎是不可能读懂的“天书”。这无疑是一个最大的难点,却同时也是电信网优能否进行下去的关键点。于是上网查资料、通过个人关系寻求朋友的帮助、对着二进制文件反复研读和对比、一个字节一个字节的反复运算……,我们的业务人员想尽了一切可能的办法,那天书般的二进制文件被一个字节、一个比特的分割开来,在我们的程序下变成了信息量丰富的可读文件,终于可以为我们所用了。但是难题到这里还不算完全解决,CDL的数据量之大是我们从未遇到过的,全网一小时的记录数便是几千万条,这对数据库的存储、数据读取性能都是一个巨大的挑战。于是采集、汇总、上层应用一次又一次的讨论,一个方案一个方案的尝试和否决。幸而我们有经验丰富、认真细致的DBA,这个难题迎刃而解,且将数据库的后续维护,可能出现的状况都进行了考虑。攻克CDL数据的胜利曙光似乎已经出现,然而又一个难题接踵而来 — 通话记录的定位。这是CDL数据最重要的信息,而我们只能根据理论知识来寻找算法,最后得出来的结果与实际情况有所偏差,于是反复的论证,反复的计算,所有的理论都证明我们的算法是正确的。最后我们只好硬着头皮不顾用户略有些嘲笑有些怀疑的态度,一次又一次地去找他们确认,终于在我们不知道第多少次满面堆笑地站在他面前时,终于告诉我们这中间还需要增加经验值的处理,把具体的处理方式告诉了我们。当大家更新完算法,看着我们的栅格图终于呈现出完美的态势,直观的反应出用户所需信息时,每一个人都会心的笑了,那么多的辛苦,那么多的努力和委屈也仿佛随之消散。
另一个难点是功能点太多,500多个用户关注的功能点,被合作厂家和运营商包括亿阳的很多同志认为是不可能完成的任务。每一个功能点都有自身的特点和价值,抹去任何一个都是不可能的。这么重的任务量,怎么办?如果目光一直盯在这个庞大的数字上,那可能就会丧失信心。唯有化整为零,逐一攻克,细化每一个功能点。这些功能点有自身特有性,但是并不是完全独立的,这就需要我们的张总和罗彩艳对整体有个很好的把握,把一颗颗闪亮的珍珠串成一串璀璨的项链。在把握全局的情况下,注重细节也显得尤为重要。而这种细节体现在每一个功能点上,剖析用户的关注重点,梳理功能点的核心价值,逐一突破,逐一实现。有很多用户关注度比较高的功能点,我们会连续讨论多次。跟用户沟通再沟通,优化再优化。最后,不可能在我们大家的努力下变为了可能,500多个功能点被我们成功实现,完美的呈现在用户面前。我们用行动再次验证了那句话:只有想不到,没有做不到。
9月10号,在大家的共同奋斗下,我们顺利的发布了版本,产品得到了用户的认可。再次感谢无线与交换、测试、技术支持产品线以及沈阳分公司对无线网优产品线的大力支持!我们一起的努力和辛苦终于取得了成功,也许我们还会遇到更多的困难,但是有这样的团队,有必胜的信念,有各部门各体系的共同努力,相信没有能阻挡我们的难题!
漫长而又短暂的40天,太多的回忆,太多的收获。付出了很多,可是得到的更多。这段经历将在我们的人生里程上打上深深的烙印!
在工作中我也发现了几点问题,总结如下。
一. 要充分沟通
有些同事在工作中不善于沟通,喜欢自己闭门造车。接到任务后,就直接埋头苦干,哪怕遇到问题也是一个人潜心解决,不撞南墙不回头。这种潜心钻研、刻苦塌实的态度是好的,可是大家也要知道,有些问题单单靠自己是很难解决的,就算解决了也耗费了太多的时间,耽误了工作进度。这时候需要借助集体的力量。尺有所短、寸有所长。我们要善于求助于别人,来更好的实现目标。以结果为导向,不要因为过程而影响了结果。
二. 要及时反馈。
在一个团队中,大家是一个整体。就象汽车的发动机,每个人就是里面的一个齿轮,互相咬合,缺一不可。不可以把自己独立开来,这样只会影响整个发动机的正常运行。当自己有问题,对项目有不同见解的时候,要及时跟相关人员沟通,发表自己的见解,哪怕是错的也没有关系,毕竟沟通后可以让自己有个更清晰的认识。当完成一项任务的时候,要及时反馈完成情况,这样整个链条才能快速转动起来。
三. 要有大局意识。
我们是个有机整体,每个人都是这个整体的一分子。每一个个体都有自己独立的思维以及个性,对同一个问题也有着不同的见解。这样在项目进行中,必然会出现意见不一致的地方。这时候就需要把不同的意见都提出来大家一起讨论,以得到更好的解决方案,可是当最终方案确定后,就需要严格服从,即使和自己的想法不同,也要服从主体。士兵的职责是服从,同样,在领导做出决定后,我们也要严格的服从。
四. 不要眼高手低。
对于程序开发人员来说,有三个阶段。
1.看懂程序代码
2.可以独立开发程序
3.对新需求进行评估、审查,提出建设性意见
而很多人只停留在第一个阶段就满足了,认为自己已经熟悉业务,可以独当一面了,而持有此想法的人绝对不在少数,尤其是那些刚毕业加入公司的员工。要知道看懂程序和能独立开发是完全不同的,看别人的程序完全是跟着别人的思路走。可是新需求的开发是需要自己独立设计的,需要把握整个架构。这就需要在看懂别人程序的同时,也要自己多写一些测试代码,把自己的想法落实到文字上,多动手才能有更深的掌握。
五. 要持续优化。
在程序开发过程中,经常会发现前人写的程序有待改进的地方,甚至是错误的,这时候就需要我们敢于说不,敢于去推翻,然后对程序进行优化。同时,也要勇于推翻自己以前不合理的架构,取而代之的是更加优化和科学的产品。要养成一种精益求精的习惯,在我们开发每行代码,处理每一件事的时候,都要想一想:还可以继续优化吗,有没有可以改进的地方。要把这种习惯和思想贯穿在每一天、每一刻。
这是一场与用户的战斗,与产品本身的战斗,更多的是与我们自己的战斗。经过40天的日夜奋战,我们克服了重重困难,现在我们可以骄傲的向亿阳领导和全体员工宣告:无线网优部门的电信网优产品已经取得了阶段性的胜利!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8007125/viewspace-1027118/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8007125/viewspace-1027118/