Linux 内核管理风格

这是一份简短的文档,描述了 Linux 内核偏好(或者说,根据你问的人不同,可能是编造的)的管理风格。它在一定程度上旨在与 process/coding-style.rst 文档相呼应,主要目的是避免一遍又一遍地回答相同(或相似)的问题[1]

管理风格非常个人化,比简单的编码风格规则更难量化,因此这份文档可能与现实有关,也可能无关。它最初只是心血来潮,但这不意味着它不可能是真的。你需要自己判断。

顺便说一下,当我们谈论“内核管理者”时,指的是技术负责人,而不是公司内从事传统管理工作的人。如果你签署采购订单,或者对你团队的预算有所了解,那你几乎肯定不是内核管理者。这些建议可能适用于你,也可能不适用。

首先,我建议你去买《高效能人士的七个习惯》,然后不要读它。烧掉它,这是一个很棒的象征性姿态。

总之,以下是正文

1) 决策

每个人都认为管理者做决策,并且决策很重要。决策越大、越痛苦,管理者就必须越强大才能做出它。这看起来很深刻、很明显,但实际上并非如此。

诀窍在于要避免做出决策。特别是,如果有人告诉你“选 (a) 或 (b),我们真的需要你对此做出决定”,那么作为管理者,你就麻烦了。你管理的人应该比你更了解细节,所以如果他们来找你做技术决策,你就完蛋了。你显然没有能力替他们做出那个决定。

(推论:如果你管理的人并不比你更了解细节,那你也完蛋了,尽管原因完全不同。那就是你找错了工作,而且应该是他们来管理你的才华才对)。

所以诀窍是避免做决策,至少是那些重大而痛苦的决策。做出小而无关紧要的决定是可以的,这会让你看起来知道自己在做什么,所以内核管理者需要做的,就是把那些重大而痛苦的决策变成没人真正在意的小事。

认识到重大决策与微小决策的关键区别在于事后能否纠正你的决策,这会很有帮助。任何决策都可以变得微不足道,只要你始终确保,如果你错了(而你肯定会错),你总能通过回溯来弥补损失。突然间,你因为做了两个无关紧要的决策——一个错的一个对的——而显得更有管理才能。

人们甚至会把这视为真正的领导力( 狗屁 )。

因此,避免重大决策的关键在于避免做那些不可逆的事情。不要把自己逼到无路可退的死角。被逼入绝境的老鼠可能很危险——被逼入绝境的管理者只会让人觉得可怜。

结果发现,反正没人会傻到让一个内核管理者承担巨大的财政责任,所以回溯通常相当容易。既然你不可能浪费巨额资金导致无法偿还,那么你唯一可以回溯的就是技术决策,而技术决策的回溯非常简单:只需告诉所有人你是个无能的笨蛋,说声抱歉,然后撤销过去一年让大家做的所有无价值的工作。突然间,你一年前做出的决定终究不是什么重大决定,因为它很容易就能撤销。

结果发现,有些人对这种方法有困难,原因有二

  • 承认自己是白痴比看起来要难。我们都喜欢维护面子,公开承认自己错了有时确实非常困难。

  • 有人告诉你过去一年所做的工作最终毫无价值,这对那些可怜的普通工程师来说也可能很难接受,尽管实际的工作通过删除很容易就能撤销,但你可能已经不可挽回地失去了那位工程师的信任。记住:“不可挽回”是我们一开始就试图避免的,而你的决定最终还是成了一个大决策。

幸运的是,通过预先承认你一点都不懂,并提前告诉人们你的决定纯粹是初步的,而且可能是不对的,就能有效地缓解这两个问题。你应该始终保留改变主意的权利,并让人们非常清楚这一点。而且在你还没有真正做蠢事之前,承认自己愚蠢要容易得多。

然后,当事情真的被证明是愚蠢的时候,人们只会翻个白眼,说“哎呀,又来了”。

这种预先承认自己无能的做法,也可能让实际工作的人三思而后行,考虑是否值得做。毕竟,如果连他们自己都不确定这是否是个好主意,你当然不应该通过承诺他们所做的工作会被采纳来鼓励他们。让他们在开始一项重大工作之前,至少要三思而后行。

记住:他们最好比你更了解细节,而且他们通常已经认为自己掌握了所有问题的答案。作为管理者,你能做的最好的事情不是灌输信心,而是对他们所做的事情注入健康的批判性思维。

顺便说一下,避免决策的另一种方法是可怜兮兮地抱怨“我们难道不能两者兼顾吗?”并表现出可怜的样子。相信我,这很有效。如果哪种方法更好尚不明确,他们最终会弄清楚的。最终的答案可能是两个团队都对这种状况感到沮丧而放弃了。

这听起来可能像是失败,但通常这表明两个项目都有问题,而相关人员无法做出决定的原因正是两者都有问题。最终你却能毫发无损地脱身,并且又避免了一个你本可能搞砸的决定。

2) 人们

大多数人都是白痴,而作为管理者意味着你必须应对这种情况,或许更重要的是,他们必须应对

结果发现,虽然技术错误很容易撤销,但性格缺陷却没那么容易消除。你只能接受他们的——以及你的——这些缺陷。

然而,为了将自己塑造成一名内核管理者,最好记住不要过河拆桥,不要伤害无辜的村民,也不要疏远太多的内核开发者。结果发现,疏远他人相当容易,而消除隔阂则很难。因此,“疏远”立即归入“不可逆”的范畴,并根据1) 决策成为禁忌。

这里只有几条简单的规则

  1. 不要称呼别人为混蛋(至少不要在公开场合)

  2. 当你忘记规则(1)时,学会如何道歉

问题在于,违反规则 1 很容易,因为你可以用无数种方式说“你是个混蛋”[2],有时甚至没有意识到,而且几乎总是带着你绝对正确的强烈信念。

而且你越是坚信自己是对的(老实说,你几乎可以称任何人为混蛋,而且你经常是对的),事后就越难道歉。

要解决这个问题,你实际上只有两个选择

  • 变得非常擅长道歉

  • 把这种“爱”均匀地散布出去,这样就没有人会觉得自己被不公平地针对了。让它足够有创意,他们甚至可能会觉得有趣。

始终保持礼貌的选项实际上并不存在。没有人会信任一个如此明显隐藏真实性格的人。

3) 人们 II - 优秀的那种

虽然结果是大多数人都是白痴,但令人遗憾的推论是你也是其中之一,而且虽然我们都可以安心地认为自己比普通人强(老实说,没有人会认为自己是普通或低于平均水平的),我们也应该承认自己不是最聪明的人,而且总会有一些人比你更不笨。

有些人对聪明人反应不好。另一些人则利用他们。

确保你,作为一名内核维护者,属于第二类人。巴结他们,因为他们是能让你的工作变得更轻松的人。特别是,他们能够替你做决策,这正是这个游戏的精髓所在。

所以当你发现有人比你更聪明时,就顺其自然吧。你的管理职责在很大程度上就变成了说“听起来是个好主意——放手去做吧”,或者“听起来不错,但xxx怎么办?”。特别是第二种说法,是学习关于“xxx”的新知识,或者通过指出聪明人没有想到的事情来显得格外有管理才能的好方法。无论哪种情况,你都赢了。

需要注意的一点是,要意识到在一个领域内的杰出成就并不一定能延伸到其他领域。所以你可能会在特定方向上推动人们,但老实说,他们可能擅长自己的本职工作,而在其他方面一塌糊涂。好消息是,人们倾向于自然而然地回到他们擅长的领域,所以当你确实在某个方向上推动他们时,你并非在做不可逆转的事情,只是不要推得太用力。

4) 承担责任

事情总会出错,人们总想找人来责怪。你就是那个人。

实际上,承担责任并非那么困难,特别是当人们多少意识到这并非完全是你的错时。这就引出了承担责任的最佳方式:替别人承担。你因为替罪而感觉良好,他们则因为没有被指责而感觉良好,而那个因为你的无能而失去整个 36GB 色情收藏的人,也会勉强承认你至少没有试图推卸责任。

然后让那个真正搞砸了的开发者(如果你能找到他们)私下里知道他们搞砸了。这不仅是为了让他们将来避免犯错,也是为了让他们知道他们欠你一个人情。而且,或许更重要的是,他们也可能是能解决问题的人。因为,老实说,肯定不是你。

承担责任也是你之所以能成为管理者最初的原因。这是让人们信任你,并让你拥有潜在荣耀的一部分,因为你是那个可以大声说“我搞砸了”的人。如果你遵循了之前的规则,那么现在你应该已经很擅长说这句话了。

5) 应当避免的事项

人们有一种东西比被称作“混蛋”更讨厌,那就是以道貌岸然的语气被称作“混蛋”。前者你可以道歉,后者你根本不会有道歉的机会。即使你其他方面做得很好,他们也可能不再听你的了。

我们都认为自己比别人强,这意味着当别人摆架子时,这真的会让我们很不爽。你可能在道德和智力上都比你周围的人优越,但除非你真的打算惹恼某人[3],否则不要表现得太明显。

同样,不要对事情过于客气或含蓄。客气很容易就会过头,并掩盖问题,而且正如他们所说,“在互联网上,没有人能听懂你的含蓄。”用一个大而钝的物体把重点敲进去,因为否则你无法真正指望人们理解你的意思。

一些幽默可以帮助缓和直言不讳和说教的语气。夸张到荒谬的程度可以把一个观点传达清楚,而不会让接受者感到痛苦,他们只会觉得你很傻。因此,这有助于突破我们所有人对批评的个人心理障碍。

6) 为什么是我?

既然你的主要责任似乎是为别人的错误承担责任,并让其他人痛苦地意识到你无能,那么显而易见的问题是,为什么一开始要这样做?

首先,你可能不会有尖叫的少女(或少年,我们在这里不要带有评判性或性别歧视)敲响你的更衣室门,但你因为“掌权”而获得巨大的个人成就感。别管你实际上是通过努力跟上别人的步伐,并尽力追赶他们来领导的这一事实。所有人仍然会认为你是负责人。

如果你能搞定它,这是一份很棒的工作。