维护(Mainteance)
掌握了道的程序员这样说:
"即使一个程序只有三行长,某天它也不得不被维护"
5.1
一个正常使用的门不需要在折叶上加油.
一个喷射出的激流不会产生停滞.
无论声音还是思想都不能在真空中传播.
软件如果不用就会腐烂.
这里有伟大的神秘.
注释:这些都是自然现象,没有任何的神秘可言.
5.2
一个经理问一个程序员需要多长时间来完成他正在工作的程序."我将在明天完成"程序员迅速回答.
"我想你太不认真了"经理说道,"说真的,需要多长时间?"
程序员想了一会儿,"我有一些新特性,我想加进去.这将会需要至少两个星期."他最后说."这也超出了我的预料",经理坚持道:"我会满意的,如果你简单地告诉我什么时候程序将会完成."
程序员同意了.
几年过去了,经理退休了.在退休午餐时,他发现程序员在终端上睡着了.他整夜都在编程.
注释:经理不相信程序员,这是一个普遍问题.外行是不能够正确领导内行的.
5.3
一个初学程序员一次被分配给一个简单的财务软件包编码.
初学者疯狂地工作了很多天,但当主管检查他的程序时,他发现,它包含一个编辑器,一个概念化的图形集,和人工智能的接口,但是没有任何财务的东西。
当主管谈到这些时,初学者变得愤慨."不要这么没耐心,"他说,"我会在最后加进财务的东西."
注释:程序员忘记了自己的真正目标,迷失在软件开发的编码之中.就象有时我们自己迷失在某项技术中一样,忘记了技术是为人服务的.
5.4
一个好的农夫会忽略他所种下的一颗庄稼吗?
一个好的教师会略过哪怕最下等的学生吗?
一个好的父亲会容许一个孩子挨饿吗?
一个好的程序员会拒绝维护他的代码吗?
注释:不能.绝对不能.
管理(Management)
掌握了道的程序员这样说:
"让程序员多而管理者少---这样他们都会有效率"
6.1
当经理们举行无尽的会议时,程序员写游戏.当会计们讨论季度利润时,开发预算将被销减.当资深科学家谈论蓝天时,云彩将要来临.
确实,这不是编程之道。
当经理作出约束,写游戏的程序员被忽略.当会计做长期计划时,协调和秩序将被恢复.当资深科学家注意道手头的问题,问题将很快被解决.
确实,这才是编程之道。
6.2
程序员为什么没有效率?因为他们的时间被浪费在会议上。
程序员为什么反抗?因为管理的干预太多。
程序员为什么一个接一个地放弃?因为他们被累坏了。
在可怜的管理下工作,他们不再尊重工作。
6.3
一个经理将要被解雇,但一个为他工作的程序员发明了一个新程序,它变得流行而且销售很好.作为一个结果,经理保住了他的工作.
经理试图给这个程序员一些红利,但程序员拒绝了,他说:"我写那个程序因为我想它是一个有趣的想法,所以我并不期望报答."
经理听到这些,评论道:"这个程序员,尽管他在一个小的职位,他理解作为一个雇员的真正责任.让我们提升他到管理咨询的高级职位."
但是当谈到这些,程序员再一次拒绝了,说道:"我存在所以我可以编程.如果我被提升,我什么都做不了,除了浪费别人时间.我可以走了吗?我有一个程序,我正在写它."
注释:真正的程序员并不是为了钱财,为了利益,为了权利而编程的.他们不求名利,所以可以专心致志来编程.凡事都需要用心来做,否则不可能有真正的成就.
6.4
一个经理到程序员哪里并且告诉他们:"这样来看待你们的工作时间:你们将在早晨九点来和下午五点离开."对于这些,所有的程序员都变得生气而且几个人当场要辞职.
所以经理说:"好吧,在这种情况下你们可以设置你们自己的工作时间,只要你们按照日程表来完成你们的项目."程序员现在满意了,中午来到,工作到凌晨时分.
注释:经理是为程序员好,提供一个良好的工作习惯和生活习惯,程序员盲目的反抗表面上成功了,实际上使自己的生活陷入了无边的无规律的生活之中,不经意中破坏了自己的生活.
有限公司的智慧(Corporate Wisdom)
掌握了道的程序员这样说:
"你可以降一个公司主管演示一个程序,但你不能使他象计算机一样思考."
注释:人和计算机是两种不同的东西,计算机尤其独特的文化,不是计算机的专业人员往往难以理解这种独特的文化.
7.1
一个初学者问掌握了道的程序员:"在东方,有一个巨大的树状结构,人们叫它总部.它被副总裁和会计所胀满.它发出大量的备忘录,每个都写着"去,然后"或者"去,这里",没有人知道是什么意思.每一年新的名字被加到树枝中,但是所有的都没有用处.这么一个不自然的实体怎么会存在呢?
掌握了道的程序员回答道:"你发现了这个巨大的结构而且被它没有合理的目的而困扰.难道你不能从它无尽的活动中得到享受吗?你难道不喜欢在它隐藏的树枝下享受没有打扰的编程吗?为什么你要为它的没有用处而打扰呢?"
注释:每个人有自己关心的东西,不要去关心很自己没有关系的事情.不是自己应该关心的问题,不要用它来打扰自己.
7.2
在东方,有一只鲨鱼,它比所有其他鱼都大.它变成了一只鸟,它的翅膀象云彩一样充满了天空.当这个鸟穿越陆地时,它带来一个从总部的消息.它把这个消息掉到程序员中间,象一只海鸥在沙滩上做了个标记.鸟随风上升,蓝天在它的背上,它回了家.
初学者程序员疑惑的盯着那只鸟,因为他明白它不是鸟.一般的程序员惧怕鸟的到来,因为他惧怕它的消息.掌握了道的程序员继续在终端上工作,因为他不知道鸟的来去.
7.3
象牙塔的魔法师带着他最新的发明给掌握了道的程序员来检查.魔法师将一个大的黑盒子推进程序员的办公室,程序员在安静中等待.
"这是一个集成的,分布式的,通用的工作站",魔法师开始了,"有效地设计,有一个专用地操作系统,第六代语言,多种状态的艺术人机界面.它花了我的助手几百个人年来构建.它不是令人惊异吗?"
掌握了道的程序员轻蔑地抬起了眉头."它真的令人惊异."他说.
"总部已经命令了",魔术师继续道,"每个人都使用这个工作站作为新的程序的平台.你同意这样吗?"
"当然",程序员回答,"我将立刻把它运到数据中心去!"魔法师返回到塔中,非常高兴.
几天后,一个初学者走到程序员的办公室说"我找不到我的新程序的列表了,你知道它可能在那里吗?"
"是的",程序员回答,"列表被堆放在数据中心的平台里."
7.4
掌握了道的程序员从一个程序转到另一个程序而没有恐惧.没有管理上的改变能伤害他.他不会被解雇,甚至当项目被取消时.为什么是这样呢?他被道所填满.
硬件和软件(Hardware and Software)
掌握了道的程序员这样说:
没有风,草不移动.
没有软件,硬件是无用的.
8.1
一个初学者问掌握了道的程序员:"我发现一家计算机公司被其他所有的都大得多.它塔一样压在它的竞争对手上,象巨人在侏儒中一样.任何一个它的分支都可以包含一个完整的企业.为什么是这样呢?"
程序员回答道,"为什么你问如此愚蠢的问题呢?那个公司是大的因为它是那么大.如果它只做硬件,没有人会买它.如果它只维护系统,人们会象对待仆人一样对待它.但是因为它组合了所有这些事情,人们认为它是众神之一!不再试图去奋斗,它不用努力而征服."
注释:有些事物是历史形成的,不完全是由现实可以解释的,如果考察其发展历史,就会得到正确的解释和结论,如果只考虑现在的状况,就难免会感到迷惑.
8.2
一天一个掌握了道的程序员遇到了一个初学者程序员.掌握者注意道初学者在出神地玩手持计算机游戏."对不起",他说,"我可以看一下它吗?"
初学者脱离了注意力将设备交给掌握了道的程序员."我看这个设备声称有三个层次的玩法:容易,一般和难",程序员说道."可是每个这种设备有另外一层的玩法,在那时设备不试图去征服人,也不被人所征服."
"请问,伟大的程序员",初学者恳求道,"怎样一个人寻找到这种神秘的设置呢?"
程序员将设备掉到地上,在脚下压碎.突然初学者受到启发.
注释:软件开发的种种规则,种种方法,种种理论,都是可以被踩碎的.软件和人应该和谐相处, 人不去想征服计算机,计算机也不想征服人.计算机是人的创造物,是人的工具而已.
8.3
有一个程序员他在微处理器上工作."看我在这里多好啊"他对一个来访问他的主机程序员说,"我有我自己的操作系统和文件存储设备.我不必须和其他人共享资源.软件是自包含的而且容易使用.你为什么不退出你目前的工作而且加入我这里呢?"
大机程序员于是开始向他的朋友描述他的系统,说道:"大机坐在那儿,象一个古代的智者,在数据中心的内部进行沉思.他的磁盘设备端端相连,象一个巨大的机器海洋.软件是多面的,象一个钻石,象远古的丛林一样令人费解.程序,每一个都独一无二,在系统中移动象快速流动的河流一样.这就是为什么我很满意我所在的位置."
微机程序员听完了这些,陷入了沉默.但这两个程序员仍然是朋友,直到生命的尽头.
8.4
硬件和软件在去改变山的路上相遇了.软件说,"你是阴我是阳.如果我们一起旅行,我们将变得有名而且挣大量的钱."这样这一对起身动程,想着征服世界.一会儿,他们遇到了固件,他穿着破旧的衣服,拄着一根荆棘的拐杖前进.固件对他们说:"道超越了阴和阳.它是沉默的,而且静止的,象一池水一样.它不追求名声,所以没有人知道他的存在
.它不追求财富,因为它自已内部完整.它存在,超越了时间和空间."
软件和硬件,羞愧地返回了他们的家.
注释:这里的软件和硬件是比喻,比喻软件厂家和硬件厂家,试图用这技术作为手段来征服世界 .作者对此进行了讽刺。
收场白(Epilogue)
掌握了道的程序员这样说:
“你离开的时间到了.”