向Linus学管理

1.1. 导言

Linus Torvalds 在2004年把一篇讲"Linux内核的管理风格"的文章放在了内核源码文档里。这篇文章有意对应他以前写的关于编码 风格的文章(比如烧书仪式),也有技术人员熟悉的Dilbert卡通的影子。 Henrik Ingo 写"Open Life: The Philosophy of Open Source"一书的时候,拿这篇文章作了后记。

这篇文章其实是总结了Linus十几年里领导开源运动的经验。更重要的是,它讲述了一种与传统不同的做事理念,一种后互联网时代的、尊重技术和自由的理念。

Linus的写作诙谐生动,完全不同于ESR的《大教堂和市集》。所以我作了比较自由的翻译。以下是译文。

1.2. Linux内核的管理风格

(Linux kernel management style, by Linus Torvalds. Retrieved from http://openlife.cc/node/43, Jan-28-2008)

这个简单文档描述Linux内核偏爱的(或编造的,取决于你问谁)管理模式。它在一定程度上是编码风格文档的影子,主要写来避免一遍又一遍回答同一类问题*。

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

不管怎样,开讲了:

1.2.1. 第一章:决定

每个人都觉得管理者是作决定的,作决定是很重要的。决定越大、越艰难,管理者就越伟大。这一点很深刻、很明显,但不见得正确。

  • 事情的要义是避免-作决定的必要性。特别是,当有人告诉你"是甲还是乙,我们需要你来作决定",你作管理的麻烦就来了。你手下的人一般比你更懂具体问题,所以要是他们找你作一个技术性的决定,你死定了。要替他们作决定,你显然水平不够。

(推论:如果你手下的人不比你更懂具体问题,你还是死定了,尽管出于完全不同的原因。说白了就是你站错了岗位,应该他们-来管理你的才华才对。)

  • 所以要义是避免-决定,至少避免大的和艰难的决定。作小的、不重要的决定还好了,而且让你挺挺板板、面上有光。所以一个内核管理者需要的是把大的艰难的决定变成没人在乎的小事情。
  • 帮你点拨一下,大决定和小决定的区别在于你能否事后修补得了。如果你犯错了的时候(而且你会-犯错),你能返回来弥补损失,那么你可以把任何的决定变成"小决定"。一下子,你的表现机会多了一倍:你要作两-个不重要的决定,错误决定"加上"正确决定。
  • 而且大家甚至会认为这是领导才能(咳咳,狗屁,咳咳)。因此避免作重大决定的要点成了仅仅避免做不可逆反的事情。不要被牵引到一个无路可逃的角落里。困在角落里的耗子或许是危险的,困在角落里的管理者不过是个可怜虫。
  • 事实上,不管怎样-,没有人会愚蠢到让一个内核管理者承担太大的财政责任,所以纠正错误一般不是多难。既然你没有机会浪费掉你倾家荡产也还不清的巨额经费,你要纠正的不过是一个技术性的决定。那就好办了:告诉每个人你是个不称职的白痴,说对不起,把你让大家上一年作的无用功都扔掉。一下子,你一年前作的决定也不见得是什么重大决定,既然能简单的撤销掉。
  • 然而事实上,有些人搞不来这个办法。有两个原因:
    • (一)承认自己是傻瓜做起来蛮难的。我们都喜欢保持形象,公开认错有时候是很困难。
    • (二)对下级的工程师来说,被人告知自己上一年的工作落得一文不值,也是很恼火的。实际的工作结果-可以删除了事,但你可能就永久性的失去了这个工程师的信任。记住,"永久性"是我们要避免的第一件事,这样你的决定最终还是一个重大决定。
  • 所幸的是,你对两个原因都可以棋高一着,未雨绸缪,防患未然。办法是:事先就承认你狗屁不懂,告诉大家你的决定不过是摸着石头过河,说不定就掉河里了。
  • 你应该永远保留改变决定的权利,而且要让大家明白-这一点。而且在你做了真正的傻事之前承认你是个傻瓜要容易的多。
  • 这样,当事情真的到了傻冒的地步,人们不过是翻下眼皮,说:"唉......真是灵验啊......"
  • 这种事先承认不足的做法可能还会让下面真正做事的人三思而后行,想一下值不值。说回来,如果他们-都不确定是个好主意,你铁定了不应该给他们开绿灯,煽风点火。至少要让他们在开始大动作之前好好想一下。
  • 记住:他们在细节上应该知道的比你多,而且他们一般觉得一切已在掌握之中。作为管理者,你能做的最好的事情不是给他们填充信心,而是给他们适量的批判理性。

  • 顺便说一下,另外一个避免决定的办法是装可怜,简单地问"我们为什么不能两个都做呢?" 相信我,这个有用。如果不清楚哪条路子更好一些,他们最终会整明白的。答案或许是两帮人都挫败灰心,双双放弃。
  • 这听起来像是个失败,但它一般是两个项目都有问题的迹象,大家无法决定的原因是双方都错了。结果是你成了智慧的舵手,而且你又避免了一个本来会死得很难看的决定。

1.2.2. 第二章:人

大多数人都是傻瓜,当管理者就意味着你不得不和这一点打交道。或许更重要的是,他们-不得不和你-打交道。

  • 事实证明,消除技术性问题还是容易的,消除人脑筋里的问题就没那么容易了。你就不得不忍受这些问题,他们的还有你自个儿的问题。

然而,为了做好内核管理者,最好记住不要自绝后路,伤及无辜,或树敌过众。现实是,疏远人们是蛮容易的,把他们拉拢回来就难了。因此"疏远"直接归类到"不可逆反"的事情里,就是第一章里说的大忌。

  • 这里只有两条简单的规则:
    • (一)不要骂人猪头(至少不要在公开场合下)
    • (二)要是你忘了第一条,学会怎样道歉
  • 第一条的问题是太容易违反,因为你有一万种骂人猪头的办法*,有时不自觉就骂了,而且几乎总是义愤填膺、义正严词。
  • 而且你越是骂的热血沸腾(让我们来面对事实,你可以骂几乎任何-人猪头,你往往不-会骂错),事后你越难道歉。
  • 要解决这个问题,你其实只有两条路子:
    • (一)成为道歉专家
    • (二)"遍洒博爱,处处留情",这样没有人会觉得受到了特殊待遇。骂出新意,骂出水准,他们没准会找到艺术的享受。
  • 第三条路子,始终如一的作谦谦君子,是行不通的。没有人会信任城府太深的人。
  • *保罗西蒙的歌唱道"失恋五十种",是因为老实说,"骂一个程序员猪头一万种"没有那么押韵。不过我相信他肯定考虑过这个。

1.2.3. 第三章:能人

尽管现实是大多数人都是傻瓜,不幸的推论包括你也是傻瓜之一,尽管我们都心安理得的自认比傻瓜高明(让我们来面对事实,没有人自认傻瓜或不如傻瓜),我们还是应该承认我们不是独步江湖,总会有一些人不像我们一样的傻瓜。一些人嫉贤妒能,另一些人从善如流。

  • 确定你,作为一个内核管理者,属于第二种。贴紧了高手能人,因为他们会使你的工作变容易。特别是,他们将能够替你作决定,这正是事情的要义。
  • 所以你要是发现了比你聪明的人,顺水推舟好了。你的管理职责很大程度上就成了说一下"听起来是个好主意,放手去干吧",或者"这个不错,那个XXX怎么样呢?"。第二个版本尤其有效:你要么学到一些关于"XXX"的新东西,要么指出了聪明人都没想到的东西,表现得胸有-韬略。随便那种情况,你都是赢家。
  • 另外一件要小心的事情是,一个人在一方面厉害不见得在其他方面也厉害。你或许煽动谁做什么,但是让我们来面对事实,他或许精通自己的一亩三分地却其他什么都做不来。好的消息是,人们自然而然的倾向于选择自己擅长的事情来做。所以你真的-煽动一下,一般不见得会造成什么不可逆反的后果,只是不要用铁扇公主的芭蕉扇来煽。

1.2.4. 第四章:担当

事情总会出错的,大家会找人来责怪。哈,就是你了。

  • 担当责任其实不是那么难的,尤其是当大家心里也有数,不全-是你的错的时候。这带来了担当责任的最好的方式:代人受过。你会因为挑起了担子而心安,那个真正搞砸了的家伙不会成为众矢之的而颓废,至于那个因为你的失职而丢失了半个硬盘的A片的家伙,也会嘟嘟囔囔的承认你至少没有猥猥琐琐的推卸责任。
  • 然后,私下-告诉那个搞砸了的家伙是他搞砸了(如果你能发现他的话)。这样不仅让他以后避免重犯,而且让他知道他欠你一个人情。而且,或许更重要的是,他可能就是那个能修补事故的人。因为,让我们来面对事实,你肯定不行。
  • 担当责任也是最初你来作管理者的原因。这是领导者的本分。大家能信任你,给你荣誉,是因为你在必要的时候能说"是我不好"。而且如果你已经遵循了前面的规则,你现在说这个应该很在行了。

1.2.5. 第五章:禁区

比骂人"猪头"更招人恨的是用挖苦的语调骂人"猪头"。你可以为前一个道歉,后一个你都不会有道歉的机会。即使你其他方面都做的很好,他们可能也不会再听你的了。

  • 我们都自我感觉良好,就是说当别人指手划脚的时候,真的-是可忍孰不可忍。你可能在才智品行上超出你周围所有的人,但是你要不是真的想-招惹谁的话*,不要"表现"得太明显。类似的,处理问题不要太客气或微妙。客气往往会隔靴搔痒,不得要害。就像人家说的,"在互联网上,没有人听得到你微妙"。大张旗鼓、锣鼓喧天的把你的意见摆出来,不然你没法指望大家领悟到。
  • 一点幽默可以帮助润滑你的蛮横和说教。过分夸张到荒诞的地步,既能充分表达你的观点,又不至于让对方难堪,因为他只会认为你在发疯。这样就可以绕过我们每个人都有的、抵制批评的心理盲区。
    • *支一招:和你的工作不直接相关的网络论坛(译者按:Linus是说新闻组。没看到西方国家的论坛事业有中国这么发达。)是发泄的好地方。隔三岔五的,狞笑着写点侮辱人的帖子来点燃战火,会让你再次焕发青春。只是不要把战火烧到自己的老巢。

1.2.6. 第六章:为什么是我?

  • 既然你的主要职责好像就是代人受过,赤裸裸的展示自己如何不称职,显然的问题是:那你为什么还要做呢?
  • 首要的是,可能有也可能没有尖叫着的小女生(或者小男生,我们不要作道学家或性别岐视)来敲你更衣室的门,作"负责人"会-给你带来巨大的个人成就感。不用说你的"领导"其实是拼命从后面追赶大家、努力跟上大家的步伐。每个人还是会认为你是"负责人"。

如果你能驾驭得了,这是一项伟大的工作。


原文: http://wiki.woodpecker.org.cn/moin/LinuxKernelManaStyle

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 习笔记整理 一、Linux 简介 Linux,全称 GNU/Linux,是一种自由和开放源代码的类 Unix 操作系统,它主要是由 Linus Torvalds 在 1991 年创建的。Linux 操作系统具有多用户、多任务、多线程、支持多种文件系统、网络功能强大等优点。 二、Linux 基础命令 1. 基本操作命令 cd:切换目录,例如:cd /usr/local ls:查看目录下文件,例如:ls /usr/local mkdir:创建目录,例如:mkdir test rmdir:删除目录,例如:rmdir test cp:复制文件,例如:cp a.txt b.txt rm:删除文件,例如:rm a.txt mv:移动文件或修改文件名,例如:mv a.txt b.txt 或 mv a.txt /usr/local 2. 文件操作命令 cat:查看文件内容,例如:cat a.txt more:分页显示文件内容,例如:more a.txt less:分页显示文件内容,例如:less a.txt head:显示文件头部内容,例如:head a.txt tail:显示文件尾部内容,例如:tail a.txt grep:查找文件中的关键字,例如:grep "hello" a.txt 3. 权限相关命令 chmod:修改文件权限,例如:chmod 755 a.txt chown:修改文件所属用户和组,例如:chown user:group a.txt su:切换用户,例如:su root sudo:以管理员权限执行命令,例如:sudo apt-get install nginx 4. 网络相关命令 ping:测试网络连通性,例如:ping www.baidu.com ifconfig:查看网络接口信息,例如:ifconfig netstat:查看网络连接状态,例如:netstat -an nslookup:解析域名,例如:nslookup www.baidu.com 5. 系统管理命令 ps:查看进程状态,例如:ps -ef top:实时查看系统资源占用情况,例如:top kill:终止进程,例如:kill 1234 free:查看系统内存使用情况,例如:free -m df:查看磁盘使用情况,例如:df -h 三、常用 Linux 发行版 1. CentOS CentOS(Community Enterprise Operating System)是一款基于 Red Hat Enterprise Linux(RHEL)源代码的 Linux 发行版,它是一个稳定、可靠且高性能的服务器操作系统,广泛用于企业服务器领域。 2. Ubuntu Ubuntu 是一款基于 Debian 的 Linux 发行版,它以易用性、稳定性和安全性著称,适合用于桌面和服务器领域。 3. Debian Debian 是一个由志愿者组成的开源社区开发的 Linux 发行版,以稳定性和安全性著称,适合用于服务器和桌面领域。 4. Fedora Fedora 是由 Red Hat 公司赞助的一个社区项目,它是一个面向桌面用户的 Linux 发行版,以最新的软件包和技术为特点。 四、Linux 常用软件 1. Apache Apache 是世界上最流行的 Web 服务器软件之一,它是一款免费、开源的软件,支持多种操作系统和编程语言,适用于企业和个人网站搭建。 2. MySQL MySQL 是一款流行的关系型数据库管理系统,它是免费、开源的软件,支持多种操作系统和编程语言,适用于企业和个人网站数据存储。 3. Nginx Nginx 是一款高性能的 Web 服务器软件,它是免费、开源的软件,支持多种操作系统和编程语言,适用于企业和个人网站搭建。 4. Git Git 是一款流行的分布式版本控制系统,它是免费、开源的软件,支持多种操作系统和编程语言,适用于团队协作和代码管理。 五、Linux 习资源推荐 1. Linux 命令大全 2. Linux 教程 3. Linux 习路径 4. Linux 知识库 5. Linux 命令在线手册 六、总结 本文介绍了 Linux 的基础知识、常用命令、常用发行版、常用软件和习资源,希望能够帮助读者快速了解 Linux 并入门。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值