简单来说,关心团队文化的原因就在于如果不努力营造它,那么团队最终会因为某个特别强势的人的出现而被注入他个人的文化基因。这种文化或许是生产力强劲的健康文化,能产出大量的优秀代码。但事实往往相反,你会突然发现自己在争执和争斗中浪费了太多精力,没有办法集中精神去设计和编写代码。不仅如此,团队拥有一个共同的价值观并愿意为之奋斗是非常重要的事情。要是团队不在意自身的团队文化,那么不仅构建强烈的团队认同感以及对自身工作的骄傲感会变得十分困难,而且会很容易受新人影响而引入糟粕。 大多数工程师都会犯的第一个错误是假设建设团队文化是负责人的事。这种想法再离谱不过了:尽管创始人和负责人通常会关注团队文化的健康情况,但其实每位成员都是团队文化的一部分,都要为定义、维护和保护它作出贡献。每当有新人加入时,她并不只是从团队负责人那里了解团队文化,而是从一起工作的每个成员身上学习。例如,你在仔细检查新同事的代码的时候,会向她解释为什么你的团队是按照某种方式写代码的,这样她很快就会明白团队重视的是代码里的哪些部分。她还会通过观察团队的工作、交流,以及解决冲突的方式来学习团队文化。 所谓“强壮的文化”,是指能接受有益的改进,同时又能抵御有害的激进变化的团队文化。最成功的团队文化都把大部分的注意力放在了开发优秀软件上面。如果你的团队把主要精力放在了其他东西上(比如聚会、开会,或是怎么把别人踩下去等),那么也许你们很团结,但是却写不出什么东西来。如果你最高兴的时刻是写代码和发布产品,那么最好还是找一个重视这些东西的团队,然后努力维护这样的氛围吧。并不是说缺乏强壮和生产力的文化就没有办法发布产品,只不过在缺乏这些特质的团队文化里,发布产品需要耗费你更多的时间和精力。强壮的文化能为你提供专注、效率和力量,这些东西都能让团队更快乐。 团队文化有意思的地方就在于如果你清楚地定义好它,它是会进行自我选择的。在开源世界里,那些构建在HRT之上,专注于编写干净、优雅、可维护代码的项目会神奇地吸引拥有相同价值观(即尊重信任他人,并且致力于编写干净、优雅和可维护的代码)的工程师加入。然而,如果你的团队文化是侵略性的、欺凌性的,或者是感情用事地进行人身攻击的话,那最终吸引过来的也只能是这样的人罢了。 我们在Apache软件基金会已经见过很多这样自我选择的文化了:ASF聚集了很多软件开发团队,它们大多都是社区性质的团队,采用共识决策 <sup>1</sup> 的方法运营。很多新成员加入邮件列表的时候,或是无意或是有意,会有一些和团队文化冲突的行为。社区成员一般会尝试教育新人(有时会很有礼貌地进行教育;有时候,唔~,就“不是那么客气”啦),假如这位新人对ASF团队的做事方法不感兴趣的话,他就会离开去寻找更适合自己的项目。 在企业里,团队的自我选择是通过招聘来实现的,这可以是潜移默化地筛选潜在候选人重视的技术和优势,也可以是明确地在招聘过程中考察与团队文化的契合度。Google在招聘过程中采用的是明确的方式,因为它在面试的时候十分重视文化上的契合度:如果一个人在参加Google的面试中各方面都像是超级明星工程师一样,却无法和团队合作,或是要求非常结构化的环境的话,面试官还是一样会在反馈里亮起红灯。 如果你在招聘的时候不重视团队文化的契合度,结果招了一个不合适的人,那最后无论是让他融入团队还是请他走人都要耗费你大量的精力。不管结果如何,其代价都是非常高昂的,还不如在招聘的时候就确认新成员能够和现有团队一起工作。 确认新成员的文化契合度的唯一方法就是在面试的时候注意这方面的东西。很多公司(比如Google)都将文化契合度作为面试官面试候选人时的考察点之一。有些公司为了避免招聘失败甚至采用更激进的做法:他们会在技术面试之前先进行单独的面试来考察文化契合度,对于价值观不同的人根本就不予考虑,哪怕他们在技术上没有问题。这种流程对于建立和保护强壮的文化是至关重要的,而且并非偶然的产物;事实上它通常都是由公司创始人和早期员工有意识地设立的。 * * * * * > <sup>1</sup> 译注:不是简单地少数服从多数,具体请参见维基百科。