`
weimou66
  • 浏览: 1245408 次
文章分类
社区版块
存档分类
最新评论

我的职场战争--一年来的开发组内战实录

 
阅读更多

一 战争准备阶段

一年前,国内分社派我带着几名程序员来到日本,进入一个世界级大公司做项目,这里先期驻在了一个日本总社的社员X。没有人想到战争已经临近。

二 战争酝酿阶段
日本人不会叫你闲着,头一个月就开始了下马威。我们开始做一个项目,X作为leader带领大家做项目A,我也参加了A项目,同时还承担另一个项目B的设计。结果,预计一个月的项目A,我们做了两个月,平均每人月加班180小时,结果失败了,被日本人彻底推翻了。我觉得大家尽力了,可是一点办法也没有,因为确实有很多客观原因。
现在回头来看,失败是必然的:
因为这几个程序员都只有一年不到的Java开发经验,不会数据库,而且没有技术天才,近乎什么都不会。而X可能是个硕士毕业,有近两年Java工作经验,也没有高明到指导新手的地步,而且估计没有领导项目经验。而我不会Java,还要担当两个项目A,B的数据库设计和SQL函数开发。
这样的团队,居然去做一个短工期高强度严要求的项目,可笑吧。
更可恶的是,北京公司根本没有把我和X的地位明确,我们这些人不清楚,日本现场方面也不知道,这下就注定了战争的不可避免。

三 战争的爆发
日本方面对项目A十分不满,那么项目B开始后,自然就要想到要换Leader。一是因为我工作经验丰富且先接触到项目B,另一个是项目B的基本设计和数据库设计是我做的。很自然,日本方面就决定我做项目B的开发Leader。也就是说X的地位出现了问题。估计在他眼里,我抢了他的位置。

导火索终于出现了,为了做好项目B,在无法换人的情况下,只能在项目管理和内部合作上想办法了,我就在内部会上总结了一些这方面的问题,准备和大家一起讨论如何解决问题和加强合作。很遗憾,这些问题显然都是X的问题,估计X认为我是开他的批判会,长达一年的职场战争就此爆发。

四 战争初期(项目B开始第一个月)

总社社员X的反应如此剧烈,以至于项目立刻进入了全面战争状态。这是谁都没有预料到的。

X采取了(不支持,不合作,不执行)的低强度高恶心度的总体战战略,我由于准备不足,完全处于束手无策状态。

在这一时期,我提出的几乎任何和X相关的建议(都是针对项目A中暴露出的问题)均惨遭失败。具体如下:

提案1 Java类设计和架构设计先行。
目的:优化结构,加快开发速度,便于控制开发状态,利于以后的升级
反应:X沉默无响应。组员表示无能力。
结果:放弃。
提案2 Java讲座
目的:提高编码水平,掌握目前开发水平,解决当前技术问题
反应:X反对。原因:没有时间。
结果:放弃。
提案3 每日例会
目的:发现问题及时解决,项目进展及时掌握,鼓舞士气
反应:X反对。原因:没有时间。
结果:放弃。
提案4 代码Review
目的:检查代码质量,发现技术问题,解决方法共享
反应:X反对。原因:从未听说过,兼没有时间,所以没有必要。
结果:放弃。
提案5 安装通用测试环境
目的:了解开发状况,测试已有程序,提前进入结合测试
反应:X反对。原因:等待日方提供测试服务器。
结果:放弃。
提案7 引入技术攻关体制
目的:通过专人负责,固定时间对应,来内部解决处理技术难点
反应:X反对。原因:计划不好调整。
结果:放弃。
提案8 引入Java开发规范
目的:提高代码的可读性和规范性,避免将来被客户要求返工
反应:X反对。原因:Eclipse已经足够,时间不足。
结果:放弃。
还有向日方现场方面和总公司方面申请Java 技术支援等建议,也由于各种原因搁浅。
很显然,Java开发方面处于严重失控状态(从设计-开发到质量-测试都无人负责了)。

小组内部气氛十分险恶,开会时处于双峰对峙,流水无言状态。团队已经崩溃,人人精神紧张,体会到了度日如年的境界。

至于我是如何应对的,项目进展情况究竟如何。下一回分说。

五 帝国反击战(1)

前文说到,由于项目A的失败,我们已经处于背水一战的地步。再失败就要拍屁股走人了。

而小组的技术能力却令人惊讶的低。据日方现场的评价,来做项目的韩国team和中国team都有过几个,我们属于最差的。当然,日本人说的是最差的之一,我的理解是最差的。这必须要承认。举例来说,项目B开始开发一周了,还是两个组员没有配好开发环境,以至于每天要系统重启动3-5次,而且其他人包括X去帮忙,也找不出原因。

在组员技术水平短期无法大幅提高的情况下,可行的办法就是管理和沟通上下功夫了,我是这么考虑的。可是没成想这个思路遭到了X的强烈反弹。内部出现严重对峙,几近崩溃了。很显然,技术已经不是最重要了,组织成了第一位了。

摆在我面前的道路有3条(当然,还有别的选择,不过可执行性很小):
1 搁置争议,埋头开发--各扫门前雪
这个办法能够避免组织的进一步破坏,危险是技术问题无法解决,协作也失去了,重蹈项目A的失败之路。也就意味着项目B之后我们该收拾收拾走人了。
2 引进一个Java高手--鲶鱼效应
希望能解决技术问题的同时,将项目内部搅浑,避免崩溃。不过这需要客户同意,而且我们手头还要有这样的人。无论能不能进来还是进来后能不能起作用,都不是可控制的。
3 明确我在项目中的领导地位--借势压人
希望公司能明确我和X的主从关系,可避免一些内耗或出了问题时能责任分明。说句实话,不怕项目死最怕死的不明不白,还帮别人背黑锅。

如果是你,你会选哪一条路呢?
估计就是个

六 帝国反击战(2)

在短短两周之内,我和X就从淡如水的关系变成了浓如血的关系。现场的日本人都怕了,只要我们两个在一起说点什么,日本人系长就跑过来插花打岔,调节气氛,生怕两个人打起来。
日本公司说什么话都十分暧昧,在这种时刻,我更加觉得自己的定位和公司定位的模糊,有些无所适从了。无所作为也是不行的,内部技术不足和组织崩溃,无论如何学鸵鸟假装不存在,怕是办不到。如果是X先告一状,到时候先入为主,我怎么说都有问题了。

于是,我和手下联名向北京分公司和东京总公司反映现场情况,主旨写的是技术力量不足需要Java高手加盟,顺便把X的不合作表现反映了上去。这一下,各方面着急了。北京方面立刻来了电话,追问细节。当我提出要么明确我和X的地位要么替换X时,得到了一个意想不到的消息。。。。

7 帝国反击战(3)

说实在,到日本这一趟,个人并没有想太多,赚点生活费罢了。可是,人在江湖,身不由己。

北京公司来电话,苦口婆心,要求我们要和总公司打好交道:姿态要低一点,凡事让一点,出事儿忍一点。这是我对公司来电的总结。呵呵,说实在,我也很理解。外包公司就是这样,见到客户都是小心翼翼,忍气吞声的,胆子一个比一个小。和总公司也是这样小心,却是我没有想到的。

也许这之中还有些门道吧。。。回想一下,自己也是有做事不周的地方,又没有什么历史恩怨,和X搞好关系也不是不可接受。于是,我提出:公司按月报销一定交际费用,用于团队内部喝喝酒聚一聚,加深了解。公司也爽快的答应了。另外,项目上没有Java高手的问题,我不得不和公司强调,这个问题不尽快解决,即便大家团结如兄弟,项目也是没结果的。。。
---------------------------------------
第二天上午,我修改了基本设计。把数据库功能全部放在数据库端用procedure实现。这样,数据库的功能就为我一个人承担了。数据库设计-外部接口定义-功能实现,还有基本设计一肩挑,感觉自己是个超人。换句话说,我一个人要在3周内为4个界面Java开发者,一个C底层开发者提供一百多个函数。原因很简单,Java团队没有时间和能力来开发数据库功能了。
第二天下午,我邀请X一起去居酒屋喝酒,X痛快接受。

8 暗流

这顿饭还是比较比较顺利的。彼此交了交底,天南地北说了一番。最后,在比较融洽的气氛中,我对前一段的不愉快表示有责任,希望X谅解,并表示希望一起努力把项目B做好。X是如何表示的不是很清晰了,不过应该是很自然地结束了饭局。

从这一天起,项目内恢复了平静。在各方的认同下,双leader制开始了。

因为设计主要是我做的,和各个组员的接口也是我这里定义的,所以基本上项目处在我的管理之下。X埋头做自己部分开发,积极反对姿态也没有了。我松了一口气,这下子精力终于可以放在项目上了。

周末,我请同组的一起去吃烤肉。无论如何,也应该放松一下了。

回想起来,那时的确是太忙了,每天都要干到晚上10点,而且是背水一战,人人都是精神压力巨大。

X的Java技术应该说还可以,而且原来考虑到他还要担当一部分管理和Java辅导职责,所以他负责的部分相对来说最简单。所以他比计划提前一天就完成了开发任务,应该说还在等我的procedure.

而我,紧赶慢赶还是比计划迟了一天才做完所有的procedure,应该说万幸的是,除了X,其他人都还没有到达调试SQL的阶段。可是我无法高兴起来---因为就这前后2-3天,X已经向日本现场方面反映了3次,由于我没有及时提供procedure,影响了Java方面的开发进度。

不过,我已经无法把注意放在这上面了。因为有两个Java组员的进展明显滞后,而且看不出有能完成的可能。一周后,日本方面终于认清了现实,从总公司调来一个Java高手,他将在一周后来现场替换了其中一位,该组员将于两周后离开日本。另一位组员则被调去做测试,他的程序由X接手。

9 心得

现在想起来,对于这些新人,心理压力的确是巨大的。
-来到一个陌生的工作环境
-语言不通完全没办法交流
-连续3个月,每天加班到晚上十点,周末还要加一天班
-项目A的彻底失败,也失去了对技术的信心
-两个leader的争执,导致没有人关怀和舒缓他们的焦虑。

这种种情形,叫他们完全失去了斗志。没有精力和劲头的队伍,打胜仗谈何容易啊!!


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics