疯狂的预约转帐

来源:互联网 发布:苹果电脑软件开发 编辑:程序博客网 时间:2024/04/29 03:34

8月3号星期一,IVR和业务那边终于把预约转帐的接口定下来了。我刚把需求与接口细节向他们确定完,行里负责人就过来问我什么时候能完成功能开发,我说尽量这周内完成吧。他显然大吃一惊,说系统功能开发完了,还要与IVR与ECTIP联调,业务现在就过来准备测试了,下周一就要封版、提交北京数据中心。对此,我相当无语,业务、IVR那边之前一直拖着接口定制的事,也不见他怎么着急,如今似乎不能按期联调、封版、上线后出现bug,又完全是我、乙方的责任了。或许是过于相信EMP平台的强大,或许是过于轻视功能点较少,或许是过于狂妄,终究还是自己给自己下了个套,答应他星期三完成开发,星期四联调。
 愤怒是必然的,但愤怒归愤怒,地球还在转,活儿还得干。
 功能需求:预约转帐定制;定期、周期转帐;预约查询、预约取消
 数据字段:与IVR交互,22个报文头,30多个报文体,附加字段约10个;与ECTIP交互,22个报文头,30多个报文体;与短信平台交互,10多个报文头,20个报文体
 流程分析:预约转帐定制、预约取消,接收报文、反格式化,保存或更新至数据库,简单;转帐,定时器定时检索,符合日期即组装报文调ECTIP接口转帐,将返回结果报文反格式化保存交易结果,客户若提供手机号,调SMS短信平台将转帐结果发给客户即可;预约查询提供已完成转帐、未完成转帐结果查询,已完成直接查看交易流水表,未完成直接返回定制记录信息,将其信息格式化,返回给IVR即可;
 工作量、盲点分析:周期转帐逻辑较为复杂,容易出错;预约查询提供分页查询功能,以前没用过;通过http通信协议与ECTIP、SMS交互,以前也没用过,虽然EMP平台提供,但可能未必符合,因为当初其与IVR进行交互时,IVR以http渠道接入,报文体以字符串的形式组装在报文头里面发送,EMP处理逻辑是将报文头与报文体分开处理,报文体以流的形式接收,最终还得将其重写。
 开发过程:
 周一下午:
 数据库设计完成后,开始实现预约转帐定制功能,刚开始开发,老张就过来说VIR节点探针(统计用户使用电话银行点击菜单的次数)生产上聚合的数据有问题,人工服务点击量占总点击量40%,而基础数据统计出来的只有10%-20%。期间断断续续为他们提供数据聚合的SQL,解释聚合实现流程等细节。预约转帐定制的只需要复用之前的http渠道接入,剩下的数据报文解释与保存只是苦力活,50多个字段只要一一核对清楚即可,5:30分,下班之前还是把它测通了。
 周一晚上至周二晚:
 总算比较清静了,再次梳理了单次、周期转帐的实现流程,这个逻辑处理流程还是比较复杂的,要考虑周期定制的实现条件、日期处理等等。其间又不断受到干扰,IVR那边又要求对预约转帐、预约查询新增字段,只得压住,最后再做统一处理了。到了周二晚上11:30,终于在使用EMP平台的http通信处理组件本地跑通了整个转帐流程,但部署到测试环境时,jdk1.4的环境是可以的,另一个jdk1.5的环境就有问题了,返回500错误,只得压住,迟点在做处理。事实上我反编译了其实现代码,发现其实现http通信时,对报文头和报文体的发送是分开的,而ECTIP是对报文头和报文体统一处理的,我虽然对报文体重新格式化了一次可以在本地实现,但感觉还是很不踏实。同一个应用,在不同的环境下一个成功一个失败,单靠单步调试是很难定位问题的,只能用sniff对两个环境下发的包和收的包进行抓取、比较了。奈何项目组内部很多人对sniff听都没听过,我也只能做罢了,先把问题压住吧,务必确保周四能联调。
 周三上午:
 处理完北数、成都中心提的一些小问题,已经9:20分了。和东林哥、老张、老廖、桂哥一起去广开2楼,接受北京公司派来的策划部A女士等以公司成立十周年为主题的采访。到了那里,才发现销售代表、财务代表、部门经理老陈、CCC项目经理老李、VCRM项目经理老叶、存量项目经理老雷都到了。接下来又是无聊的探讨会了,本以为半个小时可以折腾完,但整整一个上午就没有了。其中主要还是围绕公司员工之间缺乏沟通,提高团队建设等问题,老生常谈了。无非就是由公司或项目组内部多组织实体活动、建立虚拟社区等,最本质的问题大家还是饶开了,公司预算的活动经费有限。老廖原来在网易呆过,感受到网易团队内部的氛围相当不错,并提出像网易那样加强虚拟社区在建设,加强实时通讯工具在使用。老廖在智商、执行力是大家公认的,但这个问题,真的要深入进去,可不是三言两语就能说清楚,也不是加强几个工具就能解决的。网易能形成今天这个团队文化(企业文化),得经过多长时间,多少财力、物力、人才的沉淀,如今他看到的不过是别人的成果而已。
 举一个例子:有个财主看到一幢房子的第三层很漂亮,就叫工匠建一座一模一样的房子。工匠刚开始打地基,财主就制止他说我只要第三层,别的我都不要。但地基、第一层、第二层都没有,又怎么会有第三层呢?
 我们公司有2000多人,仅交付中心人数就占了70%,分别由四个部门组成,四个部门又由各个项目组组成,从某种意义上,我们可以将项目组看成是大学里面的班级,项目组与项目组的关系就像大学里面班级与班级的关系,只有项目组中的核心人物,班干部之间才会有较多的联第,彼此项目组成员,班级成员之间可能没有任何联系,互不认识。公司组织活动,如学校组织校运会,公司培养以优秀员工为代表的内部讲师以大学里面优秀师兄姐与师弟妹探讨的最终性质一样,加强团队意识,增强团队凝聚力等等。但大学里面是经过多少年的沉淀,才有校级学生会、院级学生分、社团(书画协会、吉他协会、象棋协会、计算机协会等等)等以代表的组织、建设、维持校园团队文化。很多人只看到了表面的风光,却看不到营造这个氛围的过程,以为只需要依葫芦画瓢,让公司出钱组织几次活动就可以了。哪有可能那么简单、一步到位就营造出这个氛围。万丈高楼平地起,这种事情还是让策划部、人力资源部等专业人员慢慢折腾吧,让他们透过现象看配制,我们就少掺和了。
 下午3点,老陈打电话过来让我把安装在虚拟机上的A系统 、B系统给他拷一份。数月前,他就叫我有时间就搭建好这个环境,但由于本人过于懒惰,一直不去折腾此事。我只能跟他说最快也得明天一午才能给他弄好,但他说明天早上就要用了,我只能说在明天之前弄好给他。事实上,情况比我想得还糟,行里负责人、老张也明确就得联调了,但我还有两个功能点未动过。我只好打电话给老陈,想让他不要再对我抱有任何希望,让他自己再做安排吧。姜还是老的辣啊,他竟然不接我电话,以我对情况的分析,这个雷也非得由我来扛了,就算发邮件跟他说明情况,也只是为我的工作能力差,工作责任感差找借口而已(果然他晚上10:00才打电话过来,不愧是领导)。我若还想在CC好好地混下去,也必定要完成他的任务了。事到如今,只好把仕贤叫来,让他去折腾,我则一边监督他一边开发一边协助老张解决节点探针问题。我明确告诉仕贤每一步有疑问的操作必须得及时问我或其它能解决的同事,切忌自己压住,慢慢尝试,在某个肓点上耗费过多的时间。从虚拟机的安装、widows2003的安装、虚拟机与宿主机网络联通配置、informix11.50安装、配置、数据初始化、weblogic8.13安装配置、SQLSERVER2000的安装配置、数据初始化,一直盯着他,逼着他,还务必让他在我没垮之前他不能垮。他几乎也被我逼疯了。11:00,终于折腾完了老陈的问题了,打电话让他过来拷。11:30分,老陈过来了,我的转帐查询功能也开发完了,但联调没通过,预约转帐取消也没实现,老张要的节点探针数据聚合初始化也没做,先压住吧。陪老陈全程测试A、B系统,写操作文档等。12点半了,折腾完了,他走了,我也要回去了。
 周四,早上6点到了公司,叫门卫开了铁闸,开始工作。8:30,上班音乐响起,杯中咖啡刚好喝完,开发任务也算完成了,虽然问题压了一大堆。开始联调吧!
 联调过程中,断断续续解决业务找出的bug,修改、优化代码的同时,我还是把EMP的http通信模块铲掉,使用开源的httpclient实现。
 周六下午,业务还在测试,我在做相关的支持。顺便,空闲之中做了下总结。
 毕业两年多了,感觉还是挺累的,甚至比两年前累。两年前,我刚毕业,进入广西项目组,当时是一个星期上七天班,每天早上8点开始工作,然后晚上一般是凌晨12点至2点才回宿舍,每晚还看书看到凌晨3点多,经常早上6点多就起来跑楼梯锻炼。当时是累,但很充实、快乐,因为那里都是并肩作战的兄弟们!如今,虽然工作时长不算太长,但现在不但自己要完成难点开发、盲点解决,充当主力程序员,还要应付需求变更、问题繁杂、人员匮乏,无可调度资源等问题。当年老林、教授两年带着我们9个应届毕业生做广西那个项目,实在不容易啊!再过几年,我们还会处于这种生存状态吗?还是国内外包待业的生存状态都是如此!