分享

[连线杂志] 弗雷德·布鲁克斯谈设计

 昵称9480586 2012-03-29

Photo: Master Planner: Fred Brooks Shows How to Design Anything

布鲁克斯表示,我们总认为很多设计工程的限制因素是资金,实际上这种想法是错误的。

摄影:Marco Grob

九个月的妊娠不可能通过请九个怀孕妇女而加速成一个月,同样,在北卡罗来纳大学的计算机科学家弗雷德·布鲁克斯看来,为了加快软件开发的进度就多塞进几个程序员的办法也是行不通的;超越某一限度时,这种方法不仅会造成过犹不及,而且还会增加拖累。早在35年以前,布鲁克斯就将这段箴言写进了一本名为《人月神话》(The Mythical Man-Month)的小技术手册中,当时有一种流行的错误观点认为:更多的人力意味着更快的进度,这本书正是根据这种错误的假设来命名的。现如今,布鲁克斯的这种洞察力已经上升为布鲁克斯定律了。《人月神话》的销量现在依然保持在每年10000本,而布鲁克斯,这位IBM公司最成功大型机IBM’s System/360的缔造者,也被世人奉为了传奇。眼下,这位传奇人物刚刚完成了一本新书,在这本名为《设计中的设计》(The Design of Design)的散文集中,布鲁克斯将自己的各种研究理念扩展到了建筑、硬件系统甚至领导学等各个领域。《连线》的执行主编凯文·凯利(Kevin Kelly)最近采访了布鲁克斯,二人就失败的益处、小写字母和苹果有什么值得我们学习之处等一些奇奇怪怪的问题作了深入讨论。

连线:一个上世纪40年代在北卡罗来纳烟农家庭里成长起来的孩子,是如何迈入计算机科学这个行业的呢?

布鲁克斯:我从小就爱收集地图,为了给这些地图做索引,我曾尝试了各种各样的方法,在这种不断的尝试过程中,我对自动数据检索的概念产生了浓厚兴趣。1944年,才13岁的我从一本杂志上读到了一篇介绍Harvard Mark 1型计算机的文章,从那以后,我就立志投身于电脑行业。

连线:你如愿以偿的接触到电脑是在50年代,当时你用它做了什么?

布鲁克斯:那是我研究生一年级的时候,当时我和一位朋友写了一段谱曲的程序。因为我们熟知的唯一大型曲谱样本就是赞美诗,于是我们就尝试利用这段程序创作普通拍子的赞美诗。最后谱出来的曲子非常棒,简直可以直接出售给唱诗班了。

连线:你曾经设想过可以利用电脑做任何别的工作吗?

布鲁克斯:没有这样想过。当时的电脑主要是用来科学计算的,例如计算火箭的轨道。

连线:所以个人电脑的出现让你感到惊讶?

布鲁克斯:让我感到最惊讶的是这些个人电脑会变得如此便宜。现在我们每年能卖出上百万台的电脑,而放在五年前,如果你敢下这样的雄心壮志,肯定要被同行的人笑死。

连线:什么原因促使你写出了《人月神话》呢?

布鲁克斯:在我准备离开IBM时,小托马斯·沃森(Thomas Watson Jr.)问我,“你负责开发了IBM 360的硬件和软件部分,那么跟我说说这二者的开发过程有何区别?”我当时告诉他说,要马上回答这个问题实在太困难了,但我会好好考虑一下。于是,后来就有了那本《人月神话》,我的答案都在书中。

连线:现在连不是从事程序员工作的人也会读这本书,这种情形是不是让你感到颇为惊讶?

布鲁克斯:的确,想不到35年以后大家依然会觉得这本书还能派上点用场。所以说我们遇到的问题基本上没变。

连线:你觉得自己最大的技术成就是什么?

布鲁克斯:我觉得自己做过的最重要的一个决定就是把IBM 360从6字节改成8字节,从而使小写字母变得可以使用了。这种改变渐渐变得无处不在了。

连线:你曾经说过,你为IBM 360 OS开发的作业控制语言(Job Control Language)是“有史以来最糟糕的计算机程序语言。”你对自己的要求一直是这样苛刻吗?

布鲁克斯:比起成功来,从失败中你能学到更多。失败的时候,你会强迫自己去搞清楚到底是哪一部分行不通;而成功的时候,你则以为每件事都做得很好,但实际上有些部分明显是差强人意的。失败会强迫你面对现实。

连线:以你的经验来看,最好的设计流程是怎样的?

布鲁克斯:伟大的设计不是来自于伟大的流程;它来自于伟大的设计者。

连线:《设计中的设计》这本书不就是要让那些伟大的设计者们去创造更好的设计流程吗?

布鲁克斯:设计流程的关键在于确定你手中最稀缺的资源。也许你会说,最稀缺的不是钱吗?但实际并非如此,以NASA登月为例,资金不是问题,稀缺的是轻便;每一盎司的载重量都需要地面上成吨的材料支援。再比如设计海边渡假村的时候,最大的限制是海湾景致。你需要使你的整个团队能理解你正在优化的稀缺资源是什么。

连线:对于过去十年中设计的变迁你有何看法?

布鲁克斯:1975年开始创作《人月神话》的时候,我就劝告程序员要“抛开第一版本”,再去打造第二版。但是在编辑《人月神话》20周年纪念版的过程中,我开始意识到不断的增量迭代(incremental iteration)是一个更为可靠的方法。如果你打造了一个快速的样本放在用户面前以检验其用途的话,你将会有很多意想不到的发现。

连线:你是一位苹果用户。从苹果产品的设计中你学到了什么?

布鲁克斯:宝丽来相机的发明者埃德温·兰德(Edwin Land)曾经说过,他的设计思路是首选从你想要的东西开始,然后一步一步的克服技术障碍。我认为史蒂夫·乔布斯也是这样做的,他是从愿景而并非是一堆产品特性中开始设计的。

连线:过去的几十年中,我们看到大多数技术都有了显著的性能提升——但软件似乎一直停留在原地。为什么软件是个例外呢?

布鲁克斯:其实软件并非是个例外;真正的例外是硬件。历史上从来没有技术能像电脑硬件这样获得如此快速的性价比提升。软件的进步更像是汽车或飞机的改进:虽然我们看到了稳定的性能提升,但这种提升是渐进式的,并非是一蹴而就。

连线:你从事软件业已经有50多年了,你能描绘一下再过50年软件会变成何种模样吗?

布鲁克斯:真的没办法预测。我过去所有的预测后来被证明都是短视的。例如,我曾经认为软件设计团队中每个人设计的代码应该共享,但后来我才发现,封装会起到更好的效果。

连线:对刚从事工业设计和软件架构的年轻人,你有何建议?

布鲁克斯:设计,设计再设计;不断寻找富有见地的批判。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多