Linux内核的管理风格,每个人都可以从中学到点什么 (一)

Linus Torvalds 在2004年把一篇讲“Linux内核的管理风格”的文章放在了内核源码文档里。这篇文章有意对应他以前写的关于编码风格的文章(比如烧书仪式),也有技术人员熟悉的Dilbert卡通的影子。Henrik Ingo 写“Open Life: The Philosophy of Open Source”一书的时候,拿这篇文章作了后记。
这篇文章其实是总结了Linus十几年里领导开源运动的经验。更重要的是,它讲述了一种与传统不同的做事理念,一种后互联网时代的、尊重技术和自由的理念。
Linus的写作诙谐生动,完全不同于ESR的《大教堂和市集》。所以我作了比较自由的翻译。以下是译文。

******

Linux内核的管理风格
(Linux kernel management style, by Linus Torvalds. Retrieved from http://openlife.cc/node/43, Jan-28-2008)

这个简单文档描述Linux内核偏爱的(或编造的,取决于你问谁)管理模式。它在一定程度上是编码风格文档的影子,主要写来避免一遍又一遍回答同一类问题*。
管理风格是很个人化的,比起简单的编码风格条例更难量化,所以这个文档跟现实可能沾边也可能不沾边。它开始于游戏,但是不见得就不作数。你只有自个儿决定。
顺便说一下,我们说到“内核管理者”的时候,完全是说技术带头人,不是公司里那些作传统管理工作的人。如果你是在订单上签名的人或者对你们组的预算知道一丁半点,你几乎一定不是个“内核管理者”。这些建议对你可能适用也可能不适用。
首先,我建议你买一本《高度成功人士的七个习惯》,不——要读它,烧了。表一下决心。
(*) 这个文档不见得“回答”多少问题,更大程度上是展示我们的无知,让提问者死了这条心。

不管怎样,开讲了:

第一章:决定

每个人都觉得管理者是作决定的,作决定是很重要的。决定越大、越艰难,管理者就越伟大。这一点很深刻、很明显,但不见得正确。
事情的要义是避免——作决定的必要性。特别是,当有人告诉你“是甲还是乙,我们需要你来作决定”,你作管理的麻烦就来了。你手下的人一般比你更懂具体问题,所以要是他们找你作一个技术性的决定,你死定了。要替他们作决定,你显然水平不够。
(推论:如果你手下的人不比你更懂具体问题,你还是死定了,尽管出于完全不同的原因。说白了就是你站错了岗位,应该他们——来管理你的才华才对。)

所以要义是避免——决定,至少避免大的和艰难的决定。作小的、不重要的决定还好了,而且让你挺挺板板、面上有光。所以一个内核管理者需要的是把大的艰难的决定变成没人在乎的小事情。

帮你点拨一下,大决定和小决定的区别在于你能否事后修补得了。如果你犯错了的时候(而且你会——犯错),你能返回来弥补损失,那么你可以把任何的决定变成“小决定”。一下子,你的表现机会多了一倍:你要作两——个不重要的决定,错误决定“加上”正确决定。

而且大家甚至会认为这是领导才能(咳咳,狗屁,咳咳)。因此避免作重大决定的要点成了仅仅避免做不可逆反的事情。不要被牵引到一个无路可逃的角落里。困在角落里的耗子或许是危险的,困在角落里的管理者不过是个可怜虫。

事实上,不管怎样——,没有人会愚蠢到让一个内核管理者承担太大的财政责任,所以纠正错误一般不是多难。既然你没有机会浪费掉你倾家荡产也还不清的巨额经费,你要纠正的不过是一个技术性的决定。那就好办了:告诉每个人你是个不称职的白痴,说对不起,把你让大家上一年作的无用功都扔掉。一下子,你一年前作的决定也不见得是什么重大决定,既然能简单的撤销掉。

然而事实上,有些人搞不来这个办法。有两个原因:
(一)承认自己是傻瓜做起来蛮难的。我们都喜欢保持形象,公开认错有时候是很困难。
(二)对下级的工程师来说,被人告知自己上一年的工作落得一文不值,也是很恼火的。实际的工作结果——可以删除了事,但你可能就永久性的失去了这个工程师的信任。记住,“永久性”是我们要避免的第一件事,这样你的决定最终还是一个重大决定。

所幸的是,你对两个原因都可以棋高一着,未雨绸缪,防患未然。办法是:事先就承认你狗屁不懂,告诉大家你的决定不过是摸着石头过河,说不定就掉河里了。你应该永远保留改变决定的权利,而且要让大家明白——这一点。而且在你做了真正的傻事之前承认你是个傻瓜要容易的多。

这样,当事情真的到了傻冒的地步,人们不过是翻下眼皮,说:“唉……真是灵验啊……”

这种事先承认不足的做法可能还会让下面真正做事的人三思而后行,想一下值不值。说回来,如果他们——都不确定是个好主意,你铁定了不应该给他们开绿灯,煽风点火。至少要让他们在开始大动作之前好好想一下。

记住:他们在细节上应该知道的比你多,而且他们一般觉得一切已在掌握之中。作为管理者,你能做的最好的事情不是给他们填充信心,而是给他们适量的批判理性。

顺便说一下,另外一个避免决定的办法是装可怜,简单地问“我们为什么不能两个都做呢?” 相信我,这个有用。如果不清楚哪条路子更好一些,他们最终会整明白的。答案或许是两帮人都挫败灰心,双双放弃。

这听起来像是个失败,但它一般是两个项目都有问题的迹象,大家无法决定的原因是双方都错了。结果是你成了智慧的舵手,而且你又避免了一个本来会死得很难看的决定。

(待续)