写于 2017-02-18 。

两位作者 Brian W. Fitzpatrick 和 Ben Collins-Sussman 都有在开源项目(Subversion)和大公司(Google)管理工程团队的经验。

作者们认为,优秀的工程师文化的核心是 HRT:谦虚(Humility),尊重(Respect)和信任(Trust)。整本书就是对 HRT 的阐释、示例和应用建议。同时还夹杂着创建维护优秀工程师文化的各种经验和技巧。

主要内容

优秀的个人依托于优秀的团队

现代社会大部分的工作对于单独个体来说已经太过复杂,要把事情做成功,只能依靠协作。应该正确认识社交的意义:“ 社交……是通过建立起人与人之间的关系来把事情做成功,而且这种关系延续的时间肯定比项目本身更长。”

团队文化的定义和维护是每个成员的事,而不仅仅是创始人和负责人的事。关于这一点,拉兹洛·博克在《重新定义团队:谷歌如何工作》中也有类似的观点。他认为“任何人都有能力成为一名创始人,也可以成为所在团队的文化创造者”。

优秀 Leader 的素质

Leader 应该关心做什么而非怎么做,相信团队能自己找的解决问题的方法。设置明确的目标,也是让团队齐心协力的有效方法。最好的激励方式,就是项目对每个成员来说都能够成为内部激励。对于工程师来说,只需提供三样东西:自主、精通和目标。

提问是提供帮助有效形式。Leader 的眼光应该放长。不应只关心这一个问题的解决,而是要帮助成员成长。通过提问的方式一步步引导,让成员依靠自己的力量找到答案,是对他们技术、主人翁意识和责任感的培养。

允许失败。因为 即使失败了,相比于只尝试那些你知道自己肯定能完成,你所得到的会多得多。

坦诚。如果有什么不知道,那就明确地表示不知道。如果有什么事情不能说,就明确地表示不能说。

对事不对人

好的团队文化,能不断吸收有益的元素,同时也能保护成员不受偏激和恶意行为的影响。注意要对事不对人,带来负面影响的是行为,而非个人。为一个人定性是很幼稚的想法。需要从团队中剔除和改造的是行为和想法,而非一个个的成员。

在大组织中发展的一些技巧

对不确定的事情提出疑问,不要害怕和上级争论,但一定就事论事。

在经理问你进展之前,就主动汇报自己在干什么。

不管技术债务有多少,永远不应该花超过三分之一的时间做防御性的工作,因为这些工作产生不了“看得见”的结果,否则就等于政治自杀。

沟通的指导原则就是在同步沟通的时候(比如开会),人越少越好。而在异步沟通的时候(比如 Email),涉及的听众越多越好。

内部沟通强烈推荐采用群聊的方式,这样大家的发言都是当着团队所有人的面。一方面每个人说话前会更慎重,一方面也方便其他人以自己喜欢的方式获取信息。

不在源代码中署名,因为很多人只能接触到一小块代码,署名会让大家在修改代码时产生更多顾虑。

我的看法

HRT 的着眼点是每个人应该怎么样,而不是团队应该怎么样,所以这些原则适用于任何团队。

谦虚

年纪越大,就越知道自己的局限。知识越丰富,越知道自己的无知。绝大部分时候,我们的想法和行为只是历史洪流中微小的一部分。对自己和对外界的看法,依赖于我们的认知地层,后者又依赖于学识和阅历。回顾过去,当时认为重要的东西,现在看来价值有限。曾经自认为的独一无二的想法,原来只是千万个类似想法中的一个。

尊重

“出身”很重要。一个人的发展,很难超越自己的出身太多。总要付出一整个青春的努力,才能进入更高一点的阶层。位于阶层顶部的人,往往是经过了几代人的奋斗,一点一点积累而来。我们的优秀,建立在先辈们的优秀之上。所以和别人比没有意义,起点不同。要和自己比,和先辈们比,看有没有通过努力让自己站得更高,走得更远。

一人一个活法。每个人有自己的世界观价值观,以自己的狭隘妄自评判别人的生活,是幼稚的。每个人至少能比别人更知道自己想要什么,想过什么样的生活。哪怕想法一样,同样的努力,最终结果也会大相径庭,各有各的难处。成熟的一个表现就是接受差异,尊重不同。

信任

人总有长处和短处,哪怕都是长处,时间精力也不能让我们事必躬亲。科学技术的发展,每一件事背后的复杂性大大增加,要做成一件事,越来越依靠协作。组织制度健全程度的一个评判方法,就是你对陌生人有多信任。公司内部也是如此,如果别人辜负了你的信任,最终给对方带来的损失比你自己的更大。