这是一篇关于描述期望的 Linux Kernel 管理风格的简短文章,它在某种程度上与 CodeStyle 文档类似,是避免一遍又一遍的回答相同(或相似)的问题。

本文档并非通过解决问题来实现避免回答问题,而是让提问者痛苦地,显然地意识到我们也没有任何思路解决问题。

管理是非常个人化的,而且比简单的代码风格更难量化。所以这篇文章可能,也可能没有,与你的现实有很多共鸣。这篇文档出自于乐趣,但这并不意味着这篇文档中没有干货,一切都取决于你自己的看法。

顺便说一句,当谈论“Kernel 管理者”时,都假设这些管理者是技术领导人,而不是在一些公司中的传统管理者。 如果你需要签署采购订单或者你有任何关于采购订单的工作,如果你的团队有关于预算的工作内容,那么你肯定不是 Kernel 管理者。 这些建议可能适用于你,也可能不适用于你。

首先,我建议你买一本《高效人士的七个习惯》 ,但不要阅读它。烧了它,这是一个伟大的象征性姿态。

#第一章 决定

每个人都认为管理者应该做出决策,而且做出决策是重要的。 越是重大和痛苦的决策,就越应该由管理者做出。这看似非常深刻和明显,但事实并非如此。

这个游戏的名称应该叫做“避免做决策”。特别是,如果有人告诉你“我们现在必须在 A 和 B 中做选择” ,那你作为管理者就有麻烦了。你的组员应该比你更了解细节,如果他们要你来做出技术决定,你就完蛋了,你显然没有足够的能力为他们做出决定。

如果你管理的人,不比你了解更多的细节,你也完蛋了。因为你做错了工作,你应该来展现你的才华,而让他们来管理你。

所以这个游戏的名称叫做“避免做决策”,至少是避免做重大而痛苦的决策。做一些小而无关紧要的决策没关系,这也会让帮助你知道现在在做什么。所以作为内核的管理者,你应该做的是把大而痛苦的决策,拆分成没人关心的小决策。

有一点可以帮助人意识到大决策和小决策之间的差异:小决策是可以事后修正的决策。只要始终保证你的决策如果错了(你 一定会 错的),你有办法通过回滚来消除损失。这样你就做出了两个决策(第一个错误的决策,和后续回滚的正确决策。)

这时候人们就会意识到你展现的领导力(狗屁)。

因此,避免做出重大决定的关键就是避免去做无法挽回的事情。 不要陷入一个你无法逃脱的窘境。 走投无路的老鼠可能会让人觉得很危险,但一个走投无路的管理者只会显得很可怜。

事实上,无论如何,都不会有人蠢到让 Kernel 管理者去承担巨大的财务责任,因此管理者通常很容易走回头路。因为管理者没机会浪费大量的、他无法偿还的金钱,所以他唯一可做的决策就是技术决策,而技术决策很容易回滚:只需要告诉所有人你是一个无能的白痴,然后说声抱歉,然后取消所有你去年让人做的无意义的工作。这样,突然间,你去年做的决策就不再是一个 “大” 决策,因为他很容易被撤销。

事实证明,对有些人而言,这个方法很困难,主要有两个原因:

  1. 承认自己是个白痴比看起来更难。我们都喜欢保持形象,所以在公开场合承认自己的错误确实很难。
  2. 告诉一个一线工程师,他去年做的工作毫无意义,这非常残忍。虽然你可以通过删除代码来撤销工作,但你不可挽回的失去了那位工程师的信任。请记住,“不可挽回” 是我们始终要避免的事,所以你做的决策最终还是会变为一个 的决策。

令人高兴的是,上述两个原因都可以通过以下方法得到有效缓解:

  1. 预先承认你并没有任何的思路,并预先告诉别人你的决策纯粹是初步的,并且可能是错误的。
  2. 你应该始终保留更改决策的权利,并让人们意识到这一点。

在你还没有真正做一件事时,就承认自己的愚蠢要容易的多。然后,当这个决策真的被证明是愚蠢的时候,人们只会耸耸肩,然后说“哎呀,他又做蠢事了”。

这种预先承认自己无能的做法,也能让那些实际做这项工作的人三思而后行,让他们去思考这件事是否值得做。毕竟,如果他们自己都不确定这件事是否是个好主意,你不应该通过承诺他们的工作将会产出成果等行为来鼓励他们。让他们在付出努力前,三思而后行。

记住:你管理的人,作为一线的工程师,比你了解更多的细节,而且他们通常也对自己要做的事值得与否有他们自己的回答。所以你作为管理者,你能做的不是灌输信心,而是要对他们正在进行的事进行批判性思考。

另外,避免做出决策的另一种方法就是看起来很可怜的向他们说:“我们不能两者都做吗?”。相信我,这个策略有效。如果你不清楚哪个方案更好,他们会最终找出答案。

但答案也可能是,尝试这两个不同决策两个队伍,都对他们的情况感到沮丧。这听起来无疑是个失败,但这也是一个信号:两个项目都存在一些问题,参与其中的工程师无法决定两个策略哪个更好的原因是:这两个决策都是错的。

#第二章 人

大多数人都是白痴,作为一个管理者意味着你需要处理这个事实。而且可能更重要一点是,你的组员需要处理你这个白痴。

事实证明,纠正技术错误很容易,但消除人格缺陷造成的影响很难。你必须与你组员和你的人格缺陷共存。

为了让自己做好成为 Kernel 管理者的准备,你最好记住,不要烧毁任何的桥梁,不要轰炸任何无辜的村民,也不要疏远 Kernel 的开发者。疏远人相当容易,但要消除这个疏远则很困难。因此 “疏远” 是一个不可逆的决策,而这就是我们在第一章中所说的要回避的决策。

这里有一些简单的准则:

  1. 不要说别人是傻逼(最起码不要当众说)
  2. 在你忘了规则 1 的时候,记得道歉

准则 1 很容易做到,因为你有一百万种方式暗示一个人是傻逼(而不是直接说出)。有时你都没意识到你这么做了,通常当这发生时,说明你隐含着一种炙热的信念“我是对的”。

你越确信你是对的(你相信你有能力叫任何人傻逼,而且你相信你通常是正确的),你事后就越难道歉。为了解决这个问题,你实际上只有两个选择:

  1. 非常善于道歉
  2. 平等的散播“爱”,以至于没有人会真正的感受到自己受到了不公平的攻击。你可以让这个攻击足够有创意,以至于他们甚至会觉得有点好笑。

“始终保持礼貌” 并不是一个合理的选项,因为没有人会相信一个如此明显的隐藏自己真实性格的人。

#第三章 人(二)

事实证明大多数人都是白痴,可悲的是,由这个事实可以推论你也是个白痴。虽然我们可以依靠“我比普通人更优秀”这个想法来安然度日(面对现实吧,没有人会相信自己是平均水平,或平均水平以下),但我们也要承认,我们不是世界上最聪明的人,总有人不像你一样白痴。

一些人对聪明人反应很糟糕,而另一些人则利用聪明人。

需要保证,你,作为一个 Kernel 管理者,属于上述第二类人。拍那些聪明人的马屁,因为他们会让你的工作更轻松。特别的是,他们会为你做出决策,这也就是第一章中我们所说的“避免做决策”意义所在。

所以,当你发现有人比你聪明时,就顺其自然吧。此时,你的管理职责很大程度上就变成了“听起来是个好主意,大胆的去做吧”,或者 “听起来不错,但 XXX 怎么样?”特别是第二个版本,你既可以让他学习 XXX 的知识,又可以通过指出聪明人没有想到的事情来显得自己做了 管理 。无论怎样,你都是胜者。

你还需要意识到,一个领域的优秀并不意味着能复刻进另一个领域。所以你可能鼓励一个人在特定的方向努力,但需要面对的现实是,这个人可能擅长他现在做的事,然后在其他所有方面都很差。好消息是,人们总会倾向于回到自己擅长的领域,所以你在鼓励某人在一个特定方面努力的行为通常是可逆的,只要你别鼓励的太用力。

#第四章 责备

事情总会出错,而且人们总是希望有个人能接受指责。没错,你就是那个人。

接受指责实际上并不难,尤其是当人们有点意识到这不全是你的错时。这让我们想到了承担指责的最佳方式:为另外一个人承担指责。你会为做了好事而感到开心,他会因为没有收到指责而感到开心,而那个因为你的无能和失去了他全部的 36G 色情收藏的家伙(指用户)也会勉强承认你至少没有逃避。

然后,私底下告诉那个搞砸事情的开发者(如果你能联系到他的话),他把这件事搞砸了。这样他不仅可以在未来避免再犯同样的错误,而且他也会知道他欠你一个人情。而且更重要的是,他才是那个能解决问题的人,让我们面对现实吧,真正解决问题的肯定不是你。

承担责任是你成为管理者的首要原因。人们信任你,并且让你体现荣耀的一部分原因就是你是那个能说“我搞砸了”的人。如果你遵循了之前的规则,那么目前为止,你应该很擅长说这句话。

#第五章 要避免的事

有一件比被人叫白痴更让人讨厌的事,那就是被道貌岸然的叫白痴。第一个你还可以道歉,第二个你就得不到道歉的机会了。即使你之后改善了,他们也不会再听你。

我们都以为自己比别人更优秀,这意味着当别人摆架子时,确实会惹恼我们。你可以在道德和智力上优于你周围的每个人,但不要试图让它变得太明显,除非你真的 打算 激怒某个人。

提示:你可以在与你工作没有直接关系的互联网组织里发泄对某人不满。你可以通过带着冷笑,写一些侮辱性的帖子,时不时的发发脾气,来净化自己的心灵。记住,不要在离家太近的地方拉屎。

同样,不要对事情太客气或态度太微妙。人很容易变得过于礼貌进而掩盖问题,正如人们所说,“在互联网上,没有人能听出你的微妙”。 使用一个大锤子来敲击要点,否则你没法指望人们真正理解你的观点。

一些幽默可以帮助加强你的观点并传达给别人。对一件事太过分到荒谬的描述可以帮助对方理解,同时不会让听者感到痛苦,因为他们只会认为你觉得你的例子很愚蠢。因此,它可以帮助我们克服对批评的心理障碍。

#第六章 为什么是我?

既然管理者的主要责任似乎变为了为别人的错误承担责任,并且让人明显的看出你的无能,那么一个问题就呼之欲出了:为什么一开始你要做管理者?

首先,虽然你可能会,也可能不会,听到十几岁的女孩子尖叫着敲你更衣室的门,但你同样会因为 “负责” 而获得巨大的个人成就感。请不要介意这样一个事实:你真正的领导力是保持跟上其他人,而且尽可能快的追赶他们。其他每个人仍然会认为你才是那个真正应该负责的人。

如果你能了解这个工作,那管理将是一个伟大的工作。

#Reference

Linus on kernel management style [LWN.net]