您的位置:首页 > 运维架构

维护老系统经验分享---做过的大家都出来说说吧

2008-12-26 16:56 267 查看
维护老系统在我们的软件企业中,占据了很大的一部分比例。往往一个系统开发出来时间很短,但是维护确实旷日持久,除非客户全面升级抛弃了这个系统,或者系统运行的超级稳定,超级完善,客户实在是没什么怨言。否则,这系统维护就是一个无底的深渊,人员来来去去好几波,电脑都更新了几茬了,系统还在维护。而且往往老板配置给维护老系统的人,非常的少,一个或者两个。老板可不是那肯吃亏的人哪。

还是说说我的一个经历,跟大家共同分享下这个故事。当时,我在那家公司里正好干了一年多点。一个项目开发完成后,新的项目没有下来,刚好有一个客户想要升级我们公司原先提供的那套系统。其实所谓升级,就是修修补补,增加些组件,增加些功能。正如大家都知道的那样,在小的公司里,人人都是兼职,都是天才和全才。我接受这个维护升级任务后,要同时承担客服部,实施部,开发部三个职责。客户发现BUG或者有新的需求,就直接CALL我,需要到现场实施的时候,我就一路公交车就过去了,自然开发也是我了。

其时我们也没有BUG管理系统,客户有需求过来,我们都是写在EXCEL里,我还记得当时写的那个EXCEL超级庞大,因为我们的这个是ERP系统,功能多多的,组件大大的,那自然问题也是大大的。改完了BUG,测试好了,就帮客户覆盖了。然后在我的EXCEL的需求里边,打上个红色的对勾,证明又搞定一个。既然我是身兼了客服,实施,开发三个职位,那我下面就分别说一下这三个部分的情况。

兼客服这个职,最繁琐了,很多时候,你正写着程序呢,电话就叫起来了,然后咱就得中断思路,去接电话。干过程序员的都知道,有时候一个事情需要非常的集中注意力,思路断了再续接,可没有迅雷那断点续传那么容易了。但是客户是上帝呀,你难不成还想让客户跟你的进度?老板说的是非常有道理的。(但是我是一个无神论者啊,不相信上帝这种鬼神之说的吗,嘻嘻)。客户打来电话的时间就跟女人的脸一样,变化无常,因为我们公司的承诺是24*7保持服务,既然是在24小时之内,既然是在周一到周日之内,客户是没错的。所以错的只能是我等了。

说句实话,时间真的不是问题,当时我又单身,时间有的是,什么都不多,就时间多。所以客户打来的时候,俺还是非常客气非常礼貌的。这也是俺的一个大优点,所以和客户的关系始终也不错。但是有的时候客户的想法是头脑风暴型的,想起一出是一出,往往想法都是从天外飞来的。我是最怕这个疾风骤雨了,动动嘴是很简单的事情,但是一实际写程序就不是那么回事了,因为客户往往想到了这一点,而忘却了那一点。过一段时间,很可能就后悔了,他这个流程,虽然节省这个部门的精力,却浪费另一个部门的时间。这次数多了,我就变狡猾了,我就有意识的给忽略一些需求,往后拖一下。当然,这里边也得平衡利弊,别玩的过火了。

遇到最难的问题是鸡同鸭讲,谁也听不懂谁说的,电话里讲了半个小时,最后双方都一塌糊涂,我刚开始遇到这个问题的时候,喜欢简单粗暴处理,就谎称理解了,然后照我的想法把程序改了。但是现在我要郑重告诉大家,这个方法极其危险,大家可别跟着学。有一次,一个折扣计算方法我其实没有完全理解,但是跟客户经过耗时长久的讨论后,实在是腻歪了,于是我自己做主,按着我的理解就修改了,结果很久以后客户发现这个修改不符合它的要求,强烈反对,我的神啊,那都过去了多少时间了,好多数据都已经更新了,大家可想而知,我再改回来的过程有多么痛苦了。自那以后,我是凡事都要求双方完全没有歧义了再改,而且我要求客户和我同时签字,如果大家认为各自描述都正确,那么双方签字确认。这样一方面我做事情比较有谱了,一方面,客户也受点约束,不会头脑一热就说改这改那的。

另外还有一个关系到开发的问题,因为后来这个项目修改越来越多,我独立已经不能完成任务了,所以老板划给我两个人,归我管,我们三个一起工作。要知道在当时,我并不是leader,老板是看着我编程能力比较强,就让我在这个小项目中先领导着。我当时实在是没有领导人的经验,所以我说的话,底下的两个程序员不大听。就跟过节卖东西一样,给我打折扣,我说的东西,给执行个60,70%。 其中他们说的最多的一个理由就是,你不能客户说什么你就改什么呀,胳膊肘怎么向外拐啊。

偶滴神啊,我身兼数职,跟客户逗心眼已经十分狼狈了,自己阵营里还有两个叫板的。真是天要降大任于我呀,要不怎么这么苦我心志,劳我筋骨。没办法,咱遇见什么事,就得解决什么事,喊神灵是没用了。我想到一个办法就是我打电话给客户的时候,适时让他们参与旁听,让他们了解跟客户交涉的过程并不是那么简单。有的时候该板着脸的时候就板着脸,有的时候拿老板来吓唬一下。不过这个过程中,我还是学习到了不少怎么和人处关系的学问。这一点还是非常地感谢BOSS的。

下面说说实施的事情,因为项目比较复杂,客户的计算机知识又不是那么强,有很多时候,我还得抽出时间来去客户那边。去人家的地盘跟在自己的窝里弄,又是另一回事情了。头一个问题是,谁谁都不认识,前面说了,我是接手这个老系统的,我们公司以前的人走了,客户公司以前的人也走了。人家公司里面,咱就是和客户IT部门的人熟悉些,其他人咱就不认识了。去人家公司的时候,前台MM发现,咱穿的糊里糊涂的,戴个眼镜,一看就不象个好人。嘿嘿,其实这是程序员的一贯造型了。但是人家不晓得,十分的戒备我。偶的神啊,看来我是得学会注意形象了。当我告诉伊人我找谁谁谁的时候,她十分地表示怀疑,我只好打电话给客户,快来救救我吧,前台别给赌门外了呀。

不管怎么样,去的次数多了,前台也认识了,也不刁难我了。但是去客户那还有个缺点,就是人家人多啊,讨论问题的时候,假如我对客户的想法提出反对,对方立马四五个人群起而上,反复解释,多角度阐述,这里面的人,有和蔼可亲的,有横眉竖眼,怒气冲冲的,我想客户IT部的人肯定在一边偷着乐呢。不过十年河东,十年河西,客户也有到我们公司的时候,嘿嘿,这个时候就得让他知道什么叫势单力薄了,我们程序员就统一起来横竖说开发难度太大,要么客户修改需求,要么加钱,哈哈,也算报了仇了。

在实施的过程中,我得到一个经验,了解客户公司的部分分工,势力派别,那是十分重要的,你可千万不要以为这个和程序无关。有一个流程,十分的费力,我们开发人员开发难度也相当大,客户IT部门的人也并不坚持这个流程,但是客户的财务部,势力相当强硬,硬是在一票赞成,五票反对的情况下强行通过了,大家自然也知道赞成的一票是谁了。越到后来,我们才越发现客户财务部的厉害,后来很多流程,都是为了财务部方便,他们怎么方便就怎么改。我要是早点知晓这个情况,便可以早做准备,我们开发就会好的多了。

最后就是说说我的老本行--开发了,说起开发来那也是一肚子的苦水啊,老系统简直就是三无项目。没有文档,没有注释,没有人晓得原先的流程。我估计所有在小公司里维护过老系统的人,都经历过这个痛苦。说起来虽然想骂娘,但是想想自己写的代码里注释也不是有多清晰,有多完整,只能骂一句,原来人人和我一样蠢。最要命是老板好像不是这个世界上的人一样,还总觉得这个系统是多么多么的好,简直就能拿一个诺贝尔项目奖了。这个问题直到现在我还纳闷,为什么所有老板的想法都是那么天真呢?难道老板已经知道真相,只是为了编一个谎,欺骗大家也欺骗自己?

还是那句话,发牢骚是没有用的。谁叫我不是哈佛的毕业生呢,连清华的我都不是。遇到问题咱就想招呗,想来想去,我觉得流程说明我们的销售人员说不定有。我们公司虽然没有专门的实施人员,但是有销售,销售经常出去跟老板拉单子,也经常的给客户做演示,要不总不能干吹牛吧。销售人员果然是有的,总算找到了一份虽然老的牙都没了,但是骨架还在的详细流程说明。

有了这个PPT, 总算用不着瞎猫碰死老鼠了。当然仍有一部分没有说明,这个时候只能找客户亲自解释了。人看形象的东西总是比看抽象的东西好懂,有了这家伙,我再看原来的代码,就清楚多了,虽然没有注释,但是大方向肯定是跑不了了。其实很久以后,我发现当时我之所以有这个感觉,并不是PPT的原因,而是因为我有了这个东西以后,心情平静了很多,头脑一冷静,就比较能从复杂的东西中理出个头绪。

开发遇到的最大一个问题是,到底是重构还是迁就老代码?重构的好处是明显的,我不用受束缚去适应那一堆一团乱的代码了,但是缺点也是明显的,因为老代码尽管乱,但是既然人家能运行一段时间,那还是说明经得起考验的,自己重新写,老的问题解决了,新的问题又出来了。在这个矛盾的问题上,我一直没有完美的答案,反正就看个人的取舍了,如果你时间足够,信心足够,那就重构,别腻腻歪歪;如果修改大家太大,觉得划不来,那就跟着老的,就这么迁就着吧。

好,我兼的这三个职,都说了一下,感触最大的还是,赶紧上BUG管理系统吧,别老是用手工的搞了,老是这么糊弄,上一个程序员骂娘,这一个还是会,下一个会不会,就看你的了,需求管理,BUG管理,文档管理,都给整起来,咱就算是给后辈积点福荫吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: