杂谈---大压力下的工作
引言
最近LZ负责了一个规模较大的项目,可谓是亚历山大。目前这个项目还未结束,离成功看似一步之遥,却走的非常艰难。由于项目上线时间比较紧,最近LZ是频繁加班,只不过与以往不同的是,这次是LZ逼着大家伙加班,而不再是被强迫加班的那个人。不由得感慨万千,有些事情确实是不吐不快。各位猿友就当是听听LZ的唠叨吧。
项目由来
首先,项目的由来必须要稍微介绍一下,以下简称该项目为A项目。A项目是一个“大”型项目,之所以说是大型,是因为它直接牵扯到四个项目组,并间接牵扯到两个项目组,共六个项目组。
最早的时候,A项目是由LZ的项目经理负责,产品经理也是有专人担当,那时候LZ还是一个程序猿,不过LZ当时在维护老的项目(以下简称B项目),因此A项目LZ可谓是一行代码都没写。后来产品经理先离开了项目组,换了一个产品经理。再后来,LZ的项目经理升职,没时间管理项目组,组里就很快来了一位研发经理,A项目则由新来的研发经理负责。至此,该项目的产品领导和技术领导已经换了一遍。
到了这个时候,LZ已经有些“小”领导的苗头,带领着两个女生依然维护老的B项目(这里PS一下,这里A和B项目其实是同一个project,再通俗点讲就是在eclipse里是一个project,而A项目其实就是B里面的一个模块,只不过这个模块比较大,所以单独立项了)。因此,当时虽然还是一个项目组,但却有种一分为二的感觉。LZ领着两个女生维护B项目,研发经理领着四个外包一个内部员工开发A项目。
后来A项目里唯一的内部员工因为个人原因离职,我们的研发经理就带着四个外包继续做A项目。但其实A项目的进展非常缓慢,因为负责A项目的测试人员从到公司到离职,不是结婚就是怀孕,要吗就是流产需要休息,一个星期五天班有四天在请假,整个就是来公司结婚生孩子来的,测试一度毫无进展。
没过一段时间,A项目唯一的测试人员也离职,至此,A项目彻底进入了零进展阶段,之前虽然慢,但隔三差五的还会测一测,让开发人员改改bug。正在此时,雪上加霜,负责A项目的研发经理和产品经理双双在同一时间离职。
当时,LZ依旧带着两个女生在维护B项目。不过由于研发经理和产品经理离职,LZ的项目经理因为升职为部门经理也越来越忙,自然而然,LZ就接手了整个项目组,这自然也包括了A项目。但此时的A项目,研发经理和产品经理换了一轮并全部离职,开发人员走了一个,测试人员一个都没有,真可谓是一个大大的烂摊子啊。
但是故事还没有结束,没过一个月,当初的四个外包又走了两人,真正的原A项目成员,仅剩两个开发。而就是这个月月底,其中一个开发也即将离开。到时,整个A项目的原班人马将只剩一个开发。
噩耗来临
尽管A项目一度毫无进展,但LZ并未受到任何压力。因为这个号称去年8月份结项的项目,都拖到了今年3月份了,但似乎所有人都并不着急。LZ当然也不着急,本身LZ对这个项目就一无所知,而且LZ一直维护的B项目是公司的核心项目,因此就算没有A项目,LZ已经忙的团团转了。
结果美梦刚开始就结束了,就在4月份左右,业务部门某老大直接一封鸡毛信扔到我们CTO手里,要求务必尽快将A项目上线。CTO扛不住,自然一声令下,让手下的二把手着手梳理这个已经延期半年多的项目。梳理以后发现,这种牵扯到这么多项目组的项目,必须设定一个总负责人,否则如何协调这么多项目组合作开发并配合联调改bug呢。
是的,你没有猜错。LZ就在这个时候成了这个冤大头,总负责人最终定的是LZ。不过说实话,这也在LZ意料之中,毕竟这个项目原本就属于LZ的项目组,而LZ的项目经理现在是部门经理自然不太会去管具体的项目,剩下的就只有LZ了。
当时A项目的代码已经上了UAT(虽然有不少人都知道,这里还是普及一下,UAT就是用户验收测试环境),而由于当时A项目的测试是三天打鱼两天晒网,因此当时A项目在上UAT之前根本就没有经过完整的测试,整个项目可谓漏洞百出。
意料之中,UAT得到了用户的强烈不满,偶尔也会有业务同事找LZ反应UAT的糟糕状况,让LZ尽快解决。当时LZ也协调过多次,组织几个项目组一起解决并每周反馈各自的问题,但都效果不佳。
原因很简单,LZ的项目组与其它几个项目组都是同级关系,平时互不相干,也没有上下级关系。LZ的项目组属于研发X1部,而其余几个项目组有X2部的,也有X3部的,X1部的部门经理就是当时LZ的项目经理,而X2部和X3部也有各自的部门经理。
有时候,LZ也会求助本部门的部门经理,让他去找其它两个部门的部门经理,再由两个部门经理协调下面的项目组配合我。但实际效果却非常一般,毕竟我们X1部的部门经理和X2、X3部的部门经理同样是同级关系,依旧没有上下级关系,只能是求助,但称不上命令。因此对方虽然肯定会答应配合,但真正落实到项目组,其实效果已经非常弱化了。
就这样,A项目经历了艰难的两个月的UAT测试,但进展依旧缓慢。虽然比起之前几乎零进展好了很多,但却远远无法赶上业务部门要求上线的速度。没有办法,LZ只能一封鸡毛信要求各项目组配合实行两步走政策,并抄送给了各个项目经理、部门经理、CTO助理包括CTO本人。当时CTO几分钟内就回复了一封鸡毛信,责令大家尽全力配合。当时的LZ,就像拿到了尚方宝剑一般,当时的各大CTO助理以及部门经理,都纷纷向LZ表示,需要什么人配合尽管开口。如此大的权利,自然也意味着天大的责任与压力。
话说回来,由于A项目历时一年半,代码量巨大,因此光几个项目组合并代码就是一项很大的风险。于是LZ所设定的第一步就是先将代码上线,但不开通A项目功能,只保证原有功能不受影响。第二步才是在UAT环境测试无误的情况下,尝试开通A项目功能,达到上线的目的。
于是为了赶着做到第一步,加班的日子开始了。
LZ带着几个项目组加了一个星期的班,终于把这一年多的代码给放到了线上,并且没有影响到原来的功能和流程。但此时,其它几个项目组的同事已经有不少人怨声载道,纷纷对加班表示着愤慨。或许是X2部的某个项目组同事向领导反映了加班的痛苦,X2部部门经理直接一封鸡毛信就扔了过来,开始质问LZ,LZ思来想去,一封邮件写了又删,删了又写。
到底是有一说一,有二说二,还是忍气吞声?
或许大部分人会觉得LZ忍气吞声了吧,毕竟这才是明哲保身的明智之举。但各位错了,LZ一封鸡毛信直接杀了回去,倒是杀了个片甲不留,但LZ也知道,这下算是彻底把X2部领导得罪了。
不过好日子才刚刚开始,我们这才完成了第一步,而最难的还是第二步。于是接下来的日子,LZ又带领大家加了四天的班(每周二和周四是上线日),趁着上线日晚上,不影响业务的前提下,LZ开始带着大家直接在线上进行验证。这四天,LZ每天都是凌晨四五点才回家。开始两天是四个项目组、运维组、DBA组、配置管理组全部都得加班,没有LZ的允许不准离开。
后面两天,由于LZ的项目负责的是A项目流程的开始,结果与流程上紧随其后的一个项目组的接口出现了问题,导致流程一直走不到后面,于是LZ便让位于流程下游的两个项目组以及配置管理组正常下班,留下LZ和其余的一个项目组每晚调试接口。
说来也怪,A项目实在是非常不顺利,开发、测试、UAT环境已经用了半年多的接口,到了线上竟然不通。具体情况LZ这里就不多说了,介绍起来比较复杂。最终为了保障项目的进度,LZ决定采取保守方案,将接口更改为RMI通信先保证进度(因为LZ的项目与这个项目组已经使用了四年的RMI,而且更改的时间可以在两个小时内搞定),同时在有时间的时候,继续查找这个奇怪的问题。
结果这个决定竟然被一封鸡毛信就顶了回来,竟然遭到了X3部门的部门经理的反对,而且是严厉的反对。这让LZ一头雾水,对于LZ的这个决定,LZ思来想去也并没有觉得有什么不妥。仔细想想,或许是最近LZ一直在调用他们部门的人,换了谁,总会有点不爽吧。
但作为部门经理,不应该如此小肚鸡肠吧。这又回到了刚才的话题,有一说一,有二说二,还是忍气吞声?
当然要说!
这次还与上次不同,上次只是一时的口舌之争,这次可是真正的方案决策。如果不按照LZ所说的办,LZ敢说,进度至少再延迟一个星期,而到时候,背黑锅的还是LZ自己,毕竟这个项目名义上的负责人还是LZ。
于是LZ一封鸡毛信直接杀了回去,这次依然杀了个片甲不留,但是同样,X3部的部门经理LZ也彻底得罪了。这件事,也就仅仅是几天前的事。目前方案依然是按照LZ的方案走,明天就开始实施,结果如何还不得知,但LZ最近确实扛了不小的压力。
所谓进退两难,就是如此。进,得罪人的一件事。退,项目失败,领导另选贤良,LZ归隐山林。
思考
LZ一直在想,这件事进展的这么不顺利,到底是因为什么?自从LZ开始玩DOTA,就明白一个道理。输了不能喷队友,一定是自己发挥的不好。因此LZ一直在想,自己是不是有什么地方做的欠妥,或者是决策有误。
但想来想去,LZ也没想明白到底哪里应该改善,除了那两次与X2、X3部部门经理的冲突,但就算如此,也最多是少得罪两个人,项目进度本身也不会有任何变化。而且要说加班,LZ可是至始至终一天没落,为何就没人理解LZ的压力与辛苦呢。想到这,LZ甚至有撂挑子不干的冲动。但理智告诉LZ,临阵脱逃,是万万不可。
如果此时LZ逃了,那么将来必定难成大事,俗话说一朝被蛇咬十年怕井绳,同样的一件事上,你被打垮一次,那么下一次你就连接都不敢接了,更别提把事情办成。这件事,LZ绝对不允许它发生,LZ必须拿下这关,哪怕再困难。
这次事情虽然还没有结束,但也让LZ明白,没有人会在你一无所获的时候理解你,大家理解你的前提是,你把事情干成了。事情干成了,你的所有辛苦都将是可歌可泣的,如果事情失败,你的所有辛苦都将是你无能的表现。
因此,这件事,LZ必须不择手段拿下!