八一八我呆过的公司和一点职场心得

  进公司后,马上开始体会到成熟公司的氛围,进去第一天除了领到了早就准备好的新笔记本电脑,然后就是各种入职培训,之后一个月内也参加了不少专门的业务知识培训,虽然那个时候由于刚开始接触金融业务,对于很多培训都还有些茫茫然,理解的不多,但是确实很感慨,毕竟楼主在之前8年左右工作经历中,就几乎从没有接受过任何的培训。
  除了各种培训之外,主要工作就是学习公司的一个新产品的源码,杨总专门和我谈了一次,让我自己定了个学习计划,准备花接近3个月的时间,把这个产品的代码系统的学习一遍。
  结果才1个多月,学习计划就被意外的打断了。公司当时在外地有一个新项目,刚刚上线,但是上线后问题比较多,于是我所在项目组的同事逐渐都被派过去了。当时在听到这个事情的时候,说实话我对公司的安排是有些疑问的,既然是新项目,为什么不在一开始就多派些人过去,结果现在搞成了添油战术。到最后项目组无人可派,连我这个刚入职的新人也不得不被派了过去。
  到了之后,发现项目组的情况确实很糟糕,一方面系统刚上线,问题不少,几乎每天都有新的问题产生,另一方面,由于之前开发周期紧,一部分功能没有如期投产,客户要求一个月之内必须把这些剩下的功能都投产,所以导致10来个同事一方面不停的解决生产问题,另一方面还要开发新功能,配合测试,工作强度非常大,已经到了每天顶多只能睡2-3个小时的地步。
  我由于是新人,对业务不熟悉,所以安排了两个纯技术的生产问题给我。一个是关于该系统无法部署新规则的问题,一个是系统日志无故丢失的问题。这两个问题从系统一上线就发生了,截止目前已经2周多,但是完全没有任何进展。尤其是第二个问题,系统每次启动之后没多久,日志就完全没有了,导致其他的生产问题也无从查起。这里说一下,公司的这个产品,也是完全采用的各种JAVA开源框架来实现的。
  所以我优先解决第二个问题,由于系统采用的log4j的开源日志框架,所以先读了一下系统里面集成log4j的相关代码,没发现什么问题,然后因为系统对log4j做了些封装,也就是自己实现了部分日志功能,我担心会不会有压力问题,于是自己写了些代码做了下压力测试,发现没有问题。于是首先就排除了代码问题、性能问题这两点,最后我根据经验,开始怀疑是不是因为系统集成的某些开源的框架的日志功能和系统的日志功能出现了冲突,然后就对整个系统的代码以log4j为关键字进行了全文检索,结果真的发现了问题,原来系统集成的某个功能模块,也试用了log4j的日志,而且有自己的配置文件,原本已经被禁用了,但是后来不知道被谁给打开了。于是只要有人使用了这个功能,就会尝试再初始化一次log4j的日志引擎,就会导致系统原本的日志全部都没了。
  我来了之后只花了不到2天就解决了之前困扰了大家很久的故障,而且这个故障解决之后,日志可以正常输出了,大家排查其他生产故障的效率也提高了很多,我也再接再厉,开始解决分配给我的第二个故障,即不能部署新规则的问题。
  规则其实是个我之前完全没有接触过的比较高端的技术,一般只在企业级的应用中才会使用,所以我一方面囫囵吞枣地了解了一下公司使用的开源规则引擎的基本情况,然后开始结合日志排查问题。结果我在与操作时间接近的日志里面看到了一些非常熟悉的内容,因为这个时候系统是部署在Windows服务器上,而这些同样的内容我以前曾经在原公司所使用的Linux服务器的系统上看到过,即类似“文件句柄数达到了最大限制”。这个时候我非常惊讶,因为我之前在Linux上碰到的问题是由于Linux服务器有默认的限制,一个应用程序打开的文件句柄数不能超过1024或者2048个,但这是个系统级的参数,可以自己修改,所以把这个参数修改到更高就解决问题了。但是windows上会有类似的问题吗?后来通过网上查询了解到,原来是客户采用的中间件服务器自带的JDK版本存在问题,调用了Windows的一个比较底层的函数,而该函数有打开文件句柄数的限制。经过试验,只要升级JDK版本就可以解决问题,但是这时候出现了另外一个问题,即客户不同意随意升级JDK,因为客户作为一个大型的外资金融企业,对于各种软硬件的版本,都有着严格的要求和规范,只有经过正规的测试后的版本才能够允许部署,现在不能因为我发现的问题就随便升级。
  这个时候比较纠结,如果要解决问题就得升级JDK版本,但是客户又要求必须经过全面测试之后才能升级,而这时候我们显然没有时间针对JDK安排全面的测试。最后我灵机一动,既然此问题是由于在部署规则的时候,系统打开了过多的文件句柄l,而且这时候我们部署的最终系统是以war包方式部署,在war包里面最终的部署程序是以单独的class文件方式存在,并没有打包成jar文件,如果我们先打包成jar文件,那对系统来说就是一个jar文件,而不是成千上万个class文件,这时候再部署,会不会有效呢?结果测试之后发现居然真的有效,这样我们既不需要升级JDK,也不需要做别的大的改造,仅仅是改变一下最终发布的代码的方式,就解决了这个问题。
  于是,一个星期之内,我一下子解决了两个很麻烦的技术问题,开始在项目组内有立足之本了。
  解决完两个难题,自己都不禁开始有些飘飘然了。结果很快就有两盆冷水淋了下来,让我彻底冷静了。第一盆冷水是客户泼的,在解决完两个问题后,客户方的项目经理老方要求我写一个说明,详细解释一下问题产生的原因和解决的方法。我洋洋洒洒写了几页word文档就发给老方了,结果老方很快就跑来,把我写的东西贬了个一文不值,说我写的没有条理,完全是技术人员思维,客户根本看不懂,让我重写。当时由于是当着项目组的所有同事,搞得我很有些没面子。但是冷静下来后,觉得自己写的确实有问题,只是站在自己技术人员的角度去写,根本没考虑人家客户不懂技术怎么能看得懂,于是只好老老实实的返工。
  第二盆冷水,则是我们公司的项目经理老秦泼下来的,在我解决了两个问题之后,暂时没有其他纯粹技术方面的故障可以让我解决,其余的故障都是和金融业务息息相关的,而我对金融业务又只是个newbie,根本不能放心交给我。于是在周例会上安排工作内容的时候,把所有人都不愿意做的配合测试、提交测试文档、整理项目文档的工作交给了我。这些工作一方面比较杂,没有技术含量,所以所有人都不愿意接,老秦安排我来负责的时候,我表现的也有点不乐意,结果老秦说了句话,“你不做这些谁来做呢,目前你最合适”,这句话深深刺痛了我,尽管不情愿,我还是无奈的接受了这个工作安排。
  项目组里当然除了老秦是老员工之外,其余10来个同事其实都是新人,最多工作了不超过2年,让我一个8年工作经验的人打杂配合他们,也亏老秦想的出来。但是怨气归怨气,工作还是得做,而且我慢慢开始了解到,老秦这么安排,也有他不得已的苦衷。这个苦衷其实来自于客户方的项目经理老方,老方是个非常讲原则讲规矩的人,项目经验很丰富,对项目的各种文档的要求很高。就是因为这一点,曾经让项目组的同事吃了很多苦头,结果搞得大家都有点不愿意和老方直接打交道,因为每次交付给老方的文档,老方总会打回来很多次,要求反复修改。所以导致了大家一致认为,只要是跟老方沾边儿的事情,就是个麻烦事儿,轻易脱不了身。而我前面提到的,我的文档一开始就被老方打回来这件事,一开始虽然跟大家一样,但我修改了一次交给老方之后,居然就直接通过了,这在以前几乎是不可能的事情,老方甚至跟老秦说,觉得我写文档的能力还不错,领悟能力也很强。所以综合这些原因,更主要的,配合测试,其实就是配合老方的工作,所以老秦就把这个大家都觉得没有价值而又费时费力的工作交给了我。
  第一次配合老方搞测试,真是地域一般的经历。对于每一个修改的功能点,老方都不厌其烦的问清楚为什么会产生问题,问题有什么影响,我们是怎么解决的,以后怎么避免,虽然就是这么一个套路化的东西,但是深究下来也不好回答,而且老方还不是技术人员出身,很多问题想要给他解释清楚也要费不少口舌,而且还有个大问题就是,我来的时间也很短,其实很多问题我也是一知半解。第一天下来,整整一天,就是不停的跟老方解释各种问题,口干舌燥,第二天,又是整整一天,跟老方一起对测试报告一个字一个字的推敲和修改,务必要让他的同样不懂技术的上级总监能够理解,继续,舌燥口干。
  两天下来,感觉人都脱了层皮,难怪大家都对老方敬而远之啊。
  这一次之后,我还是痛定思痛,决定下一个补丁包的测试工作,再不能这么被动了。于是我揣摩着老方的思路,甚至模仿他的问题,开始对补丁包涉及的问题,针对其具体负责人,开始向他们了解这些问题。有的同事比较配合,几个问题谈下来,基本心里就有底了。有的同事配合虽然配合,但是沟通能力有限,半天说不到重点,我只能再尝试自己去看原始的问题记录文档和代码来帮助了解,但是碰到个别态度非常不好的同事,就很头疼了。前面说到,项目组大多数都是工作不到2年的年轻人,其实忘了补充一点,基本上都是清华、北大毕业的博士、硕士。所以有一个清华的博士小周,就是他们中最典型的一个人。小周是湖南人,有我所熟识的湖南人的聪明,但也有着我所熟识的倔强。小周技术能力非常强,但是不爱说话,有什么累活儿经常冲在前面,二话不说就开始干。但是同时,我因为要了解一些问题想和他沟通,也是最痛苦的,因为他根本不想和我沟通。每次去找他,他总是说在忙,而且确实很忙,这时候我只能丢下面子,反复的找他,让他抽时间给我讲讲,最后实在拗不过,他也就是告诉我,去看哪一段代码,多的一点解释没有。
  对于小周我实在没办法,最后只好曲线救国,找了另一个相对对小周的问题了解一点的另一个北大的博士小汤,侧面了解了一下小周负责的问题,基本上达到了我的目的。这里插一句,后来我和小汤合作的非常好,这是后话。
  准备工作算是七七八八了,老方再来找我搞测试文档的时候,效果明显好了很多,不但进度加快了,对于我写的文档,老方也挑不出太多的问题,他甚至有时间和我一起,把一些相对严重、影响不好的故障做了些修饰,让领导更容易理解,同时减轻他的责任。
  生产故障的测试做的七七八八之后,我开始负责新功能的测试,主要是一些定时任务的测试。这项测试比较麻烦,本来是每天固定3个时间点自动触发的定时任务,为了测试,我们会修改系统的时候,来触发定时任务,为了提高测试效率,基本上人不能停,24小时连轴转。本来是住在客户现场附近的酒店里,但这时候连回酒店休息的时间都没有,困了就趴一会儿,顶多在跑耗时比较长的定时任务的时候,可以把椅子拼在一起睡上个把小时,有时候甚至会被自己打呼的声音惊醒。就这样没日没夜的测了1个多星期,总算完成了所有的测试工作。
  项目走上正轨之后,我们这些出差的同事就陆陆续续撤回去了,毕竟出差成本还是比较高的。结果我回去之后没多久,老方就打电话给杨总,质问为什么我不回去了,杨总解释我只是暂时过去支援的,结果老方要求我必须回去,别的人走他可以接受,但是我不行,因为他觉得整个项目组只能和我沟通,其他人沟通都有问题。杨总没办法,只能把我又派回去了。
  这个时候,项目组除了老秦、我,就还有另外一个刚刚华工本科毕业没几年的小伙子小商。当时项目已经比较稳定,第二期的新合同还没开始,我们就做些比较简单的维护工作,以及一期合同的验收工作。结果验收工作中老秦出了比较大的篓子,把合同中客户比较关注的一个点完全给漏掉了,在客户的坚持下,公司把老秦的项目经理的职务给撤掉了,老秦抹不下面子,就要求调到我们公司给这个客户实施的另外一个项目组去了,于是项目组就只剩下我和小商两个人。由于我资历太浅,于是项目经理由杨总兼任,但实际上现场项目管理的事情都交给我做了。
  在我代项目经理2-3个月之后,正式任命我做项目经理的邮件就发了出来,几乎是同时,公司出台了新政策,鉴于在客户现场的项目经理工作比较繁琐也比较辛苦,公司从当月开始为项目经理发放每月4000元的项目经理补贴。杨总说我的运气实在太好,感觉就像为我量身打造的一般。
  一期合同顺利结束后,二期项目也很快就开始实施了。为了保障项目能够顺利实施,公司又为我的项目补充了3,4个新人。这时候小商虽然工作才1年多,但是由于他个人比较努力,这时候已经成为了项目组的骨干了。结果就在这个节骨眼上,小商出问题了。他跑来找我说,他对目前的待遇不满,要么涨工资,要么就要离职。我于是先跟杨总说了这个情况,然后专门请小商吃饭,跟他谈,当然我这时候不能也没有权力为他许诺什么,只能是尽量安抚。当时他没说什么,结果没过几天,杨总也专程过来出差,说是为了二期项目。在给我们开完项目启动会后,专门跟我谈了一次话。这次谈话杨总把我严厉批评了一顿,说我最近工作比较散漫,一些业务讨论会议上表现的很不专业等等,再这么下去项目经理肯定是不能再干下去了。杨总这番话确实把我说懵了,他说得这些事情有的确实存在,但更多的是捕风捉影,关键是这些事情他是怎么知道的呢?跟着说到小商的问题,说他和小商已经谈过了,小商的情绪确实比较大,但他目前是项目组唯一的老开发骨干,必须得留下来,不然没办法保障项目的成功,但这时候按照公司的制度没办法马上提薪,于是杨总想了一个办法,就是把我每个月的项目经理补贴分出来一半给他。可能是杨总前面那顿批评已经让我先没了底气,所以后面他的这个办法我也没有拒绝,虽然这个解决方案实际上损害的是我的利益。
到顶部