因为我所在团队的开发进度问题,让我对效率问题有了一些新的想法。在想法汇总成熟之前,关于效率的话题暂时停一下,我打算把其他话题先写一写吧。
今天给大家带来的是关于学习型团队的一点看法。
众所周知的一个事实是:国内企业招募人手一般倾向于招来就用,或者挖过来用,而不希望自己培养人才。毕竟培养人才需要承担成本和风险,最后还有可能被别的企业挖走,替他人做嫁衣,所以,所谓的学习型团队,国内同仁实际上应该接触的不多吧——当然,很多国内公司招募的时候也会自称“学习型团队”。
很多年前,我刚入行的时候,曾经参加过微软的某个培训。听到微软的培训人员介绍他们的企业文化时,其中有一项十分令人神往:微软的培训人员说,在微软总部的开发人员,每个人都可以随时对自己喜欢的技术定一个技术主题讲座,预定一个办公室,发一个内部公告,然后其他感兴趣的同事就可以一起参加,互相学习。他们的管理层不仅不会因为他们在上班时间歇工学习而横加阻拦,甚至于还会要求员工,每年至少要参加/主办若干次技术讲座。
在我当时的理解中,这种企业文化应该就是所谓的学习型企业/学习型团队的全部样子了——现在想起来真有点井底之蛙感。
那时候,刚好我处在一个新兵遍地的小公司(我自己当然也是新兵了),于是我提议把微软的套路搬进来,提升团队每个人的能力。这一提议居然也受到了相当的重视,公司允许拨(少量的)经费给我们采购技术书籍,也同意我们个人自行开办技术讨论会。但是技术学习仅限下班时间,工作时间是绝对不准占用的。但是这条看起来很有前途的学习型团队之路没有多久就彻底走不下去了。开始的几次,还有几个人会积极的准备技术讨论的主题,再往后,就必须指派这周该张三,下周轮李四,再往后,完全走不通,只能不了了之。
难道是中国的技术人员不爱学习吗?还是中国技术人员不乐于分享?要么就是占用下班时间让大家不快?
这个问题的答案,一直困扰了我很多年!直到最近这段时间在外籍团队中工作才让我重新审视过去失败的经历。
让我重新思考这个问题的,其实是另一个问题。经常有人出于各种目的来问:“在你们部门中,谁的技术最好?”
什么叫做“最好”呢?我恐怕答不出来。因为外籍团队中的开发人员谁都不是最强的。这一点在之前的小节中提到过,外国人的分工很细,职责也分得比较散,有擅长前端的、有擅长后端的、有擅长结构与分析的、有擅长编写脚本做配置管理的、有擅长服务器维护的、也有擅长其他领域的。我们只能大致上说,做某件事,某人很强,而不能简单的回答说某人就是团队中最强的。(实际上团队中如果有最强的人存在,他会主动离开团队,稍后我会提到的)
与之相比,国内的从业氛围更多地集成了中国教育的伟大传统——不准偏科,严禁跛腿!
每个程序员从接受教育到参加面试,再到实际工作,用我们的话说,都是“一站式”。既要懂数据库,又要会开发,甚至连前端js,平面ps最好也都能懂一点,否则面试一定要吃苦头!在国内,只有样样精通的“牛人”才会被视作精英,成为团队的核心成员。而非精英人士往往抱着向精英看齐的心态,从精英同事身上学习,这种不良教育习惯直接影响到国内从业人士的进阶之路。
回到我新兵时代的那个自我组织学习的失败经历上来。我们不难发现,微软之所以能够每个人轮流讲课,乃是因为他们分工明确,每个人都有别人不会的花样可以去讲,每个人也有不会的花样可以从别人身上去学;而我们的自我学习之路之所以走不通,恰恰正是因为一群新兵(即使有老手也一样)的知识结构完全重叠,谁也讲不出别人不知道的新花样。
这种场合下,如果有一两个老手,高手,情况会不会好一些呢?
这恰恰又是我们失败的原因之一(非主要原因)!
在现在的团队中,技术最好的无疑是CTO(瑞典老外),但是这家伙从来就不参与我们的具体开发任务。基本上可以说他大多数时候没有做技术。好像这种情况在国内公司中也比较常见,但是我感觉到原因和结果都与这些外籍人士完全不同。
国内团队的CTO或者所谓的老手,往往会把自己陷入一种救火队员的角色中。甚至在很多国内管理学课程中也有教他们如果脱离救火队员身份的招数。不难想象,团队中渴望“学习”的数量庞大的初级、中级、高级程序员们都期待从技术更为“权威”、“厉害”的上级那里学习,那各级上级们又岂能从救火队的身份中摆脱出来呢?硬要摆脱的话,只能撒手不管!
这事我最近就经历过一次。我调入外籍团队之前的旧团队,接受了一项任务,把某网站从A服务器迁移到B服务器。领导为了以防万一,让我参与支持,以免他们弄出问题来。其实事情挺简单的,Copy数据库、Copy网站文件夹、重设DNS就可以万事大吉。应该没有超过任何技术人员的能力范畴。但是这样还是出了问题。某人Copy完数据库和网站文件夹后,没有修改数据库连接字符串,结果是不言而喻的。但是他既不向任何人报告,也不做任何尝试,直到我去主动问他进展如何的时候, 他才模模糊糊的告诉我说“有点问题,运行不起来”!我原本以为是很麻烦的情况,结果一查,只是30秒钟就能处理的小问题。
这个故事让我相信了,有高手处于绝对权威位置的团队,其他成员肯定会安于现状,停用自己的大脑,让权威成员指导自己做事!一边可以学习别人的技能,一边又不用承担责任——多么符合中国人的价值观啊!
所以,最强的技术人员脱离团队在一定程度上是有好处的。避免推诿,每个人的脑子都动起来,结果自然比一两个脑子指挥一群打字员要高效得多!
当然,脱离团队并不代表当甩手先生。国内有不少这样的CTO,为了脱离救火队员的角色,甩手不管,只在几个关键节点去“把关”。这样的团队往往会抱怨领导不负责,瞎指挥,敷衍了事。而一旦出现了纠纷或者质量问题,则会责怪CTO让自己“背黑锅”!我们目前的外籍CTO虽然平时绝不干预我们的开发过程,但是每天都会出现在我们的晨会上。而且有多个团队一起开发的时候,CTO会参加所有团队的每一个晨会。当某个团队出现了不好的现象或问题的时候,CTO就出现了——而不是等问题出现之后站出来做责任认定工作。
小结一下吧:
所谓的学习型团队,肯定是好的事物,因为可以提升团队的战斗力。我们需要了解的是为啥国内公司很难或者很少能有真真的学习型团队。
1、国内企业喜欢用一专多能的人,甚至是不专但是多能的人。团队分工比较粗犷,导致了国内技术人员的知识结构重叠很大,互相学习的可能就比较小了,互相了解之后往往会发现别人会的和你自己会的其实差不太多,没什么特别新鲜的。而外国团队,比如我举例中的微软,那是专家和专家之间的学习,是真正无止境的学习。
2、基于上述观点,外国程序员(仅指欧美日俄,咖喱国之流可以忽略)的单兵作战能力,在其专攻方向上绝对优于中国程序员。用大家乐于接受的传统词汇表示就是“跛腿的”。但是,这是优点,真的是优点!用一个不跛腿的中国团队和一个全都跛腿的外国团队比比,就会发现中国团队处处软肋只能做基本的任务(甚至连外包都不一定胜任),而外国团队却总能掌握核心技术。
3、不要迷信牛人或者牛企业,不止你一个人有跟着领导学的想法,领导会被你们烦透之后撒手不管的。试着让自己在一个较小的领域成为专家,看看效果如何!最简单的做法是买书看,别嫌贵!中国不是有老话说的嘛:读好书,好读书,读书好!
4、员工的学习是对企业有益的,哪怕员工跳槽了,依然是对行业有益的,至少可以说成是对中国有益的吧。因此某些外国公司可以用工作时间让员工学习,是对公司和行业总体有益。相比而言,国内公司就显得小家子气多了!国情所限,管理理念有待进步啊!
5、学无止尽!别瞧不起新人,也别对高手有任何自卑感,平常心,平常心!
2012-09-09 22:37:20