频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

大师品软件——软件之痛与应对之道 前言

作者: (美)David S. Platt 著 杨明军 译 出处:清华大学出版社  2007-11-12 16:49    砖    好    评论   进入论坛
阅读提示:《大师品软件——软件之痛与应对之道》从程序员、用户等多方面分析了造成应用软件、网站如此糟糕的原因,针对所述的每个问题,他同时给出了正反两方面的典型例子,让读者知道什么是不应该出现的,同时还要知道这种糟糕的结果原本可以完全避免。本文是该书的前言。

前言

现在的软件糟糕透顶。没有更好的方式能够形容当前的状态。软件是不安全的,它允许各种恶意软件通过互联网侵入您的家用电脑上。软件也是不可靠的,当您最需要它的时候,它会突然崩溃,使您的几小时甚至几天的辛勤劳动付之东流,而且没有办法挽回。软件非常难用,对于那些最简单的操作,都需要浪费大量的脑细胞才能弄明白怎么回事。

对于您而言,这已经司空见惯。您并不笨,尽管您读过的“傻瓜”系列丛书(译者注:傻瓜系列丛书图文并茂,且简明易懂,是上佳的计算机学习的入门类读物)会让您相信自己是一个傻瓜。现在的软件确实糟糕,您可能也一直这样认为。事实确实如此。虽然这是一本没有使用术语的非技术性著作,但它精确地解释了现有环境是如何形成的,以及您能够做些什么来改变它。“我要立即买下来!还要多买几本送给我的朋友们。”非常好的想法。我说过您不是一个傻瓜。

15年前,甚至是10年前,普通老百姓在日常生活中还不曾接触软件。我的父母不会通过电子邮件将生日贺卡寄给小孙女,也不会希望我通过这种方式发送照片。他们在纸质登记簿上面结算支票账户,并用墨水笔在漂亮的挂历上记录日程安排。只有少数人能够经常使用软件,他们往往将软件作为自己工作的一部分,比如旅行社使用航空订票系统办理订票手续。这些人使用的软件是经过定制的小型应用程序,这些软件需要昂贵的专有硬件,培训和持续支持也需要庞大的开支,并且系统不能用于其他目的。而万维网(World Wide Web,WWW)曾经只是一个仅在学术圈内流行的高科技玩艺儿。大多数人甚至不知道它的存在,更甭提从它上面下载自己喜欢的音乐和图片。

然而,几乎在一夜之间,整个世界发生了翻天覆地的变化,而且人们似乎完全没有注意到这个变化。我的父母现在使用财务软件包来管理他们的支票账户,通过电子方式付账,这样无须浪费邮票,而且能够自动显示电子存折和已结算支票,就像本人亲自到银行柜台处理一样。现在,他们不仅要求使用电子邮件传递孙女的照片,而且还要求视频聊天。现在普通的家庭用户已经可以使用廉价的无限制高速网络接入互联网。Web现在已经无处不在。美国宾夕法尼亚州已经将其汽车牌照上面印制的口号“The Keystone State(基石州)”去掉了,换成了州政府网站地址:www.state.pa.us(参见图1)。佛罗里达州则做得更好一些,它保留了自己的口号,但是将州名换成网站地址:MYFLORIDA.COM(参见图2)。由于普通人可以方便廉价地获取以前需要非常昂贵和复杂的设施才能够得到的信息,因而旅行社的业务很大程度地萎缩了。

图1  宾夕法尼亚州汽车牌照上面显示网址而不是口号
 
图2  佛罗里达州汽车牌照上面显示网址而不是州名
今天,我们生活在软件的海洋之中,但是大多数用户并不了解软件如何形成或者为什么按照现在这个模式运转。我们只知道自己并不是很喜欢这些软件。每个人都曾有过不愉快的软件使用经历,就像我们曾经经历过不愉快的航空旅行,比如航班延迟或者行李投送错误。您干了一整天的活,但是忘了保存自己的文档,然后这个该死的程序突然瘫痪,致使您所有的劳动成果付之东流。当您看着程序崩溃,内心的滋味我们也深有体会。自从1982年被《时代》杂志评为“年度人物”以来,个人电脑的声誉每况愈下。漫画《退化》(参见图3)很好地诠释了大多数用户的心声。
  
图3  现在用户已经改变了自己的思想,不是吗?

软件本来不会如此糟糕,也不应该如此糟糕,但事实却是这样。其中一个原因在于开发程序的程序员、架构师和项目经理不能很好地理解他们的客户,而他们本该像其他行业的设计师一样必须了解自己的客户。软件公司的产品之所以糟糕,原因不在于开发人员不知道该怎样做好某一件事情,而是他们不知道要做些什么。他们脱离了自己的客户(某些客户应该被称为“牺牲品”),这些客户花钱购买软件,而且他们往往并不知道真相。软件开发人员往往解决了错误的问题,添加一些除了他们自己没有人会关心的功能,并在这个过程中伤害了所有的用户。如果他们理解谁是他们的用户,他们就可以做出不同的更好选择。

举例来说,微软的Office应用程序比如Word和Excel允许用户通过鼠标,将主菜单(就是那个有着“文件”、“编辑”和“帮助”的菜单)从窗口顶部位置拖到屏幕的其他任何一边,或者漂浮在文档上方(参见图4)。我从来没有见过,也没有听过有人曾经使用过这项功能,即使我在Office团队中的联系人也没有使用过它。那么为什么要在程序中添加这项有损程序的功能呢?偶尔(通常是比较疲倦时)我将鼠标指针移动到“文件”菜单上方并单击,但是移动距离稍微多了一点点,然后就发现自己拖着菜单条在满屏幕地晃动。我必须停下手头的工作,将菜单条重新拖放到它原来的位置,然后将其停靠在原来的位置上,即工具栏的上方。然后再花上半分钟时间痛骂设计这项愚蠢的所谓“功能”的笨蛋的八辈祖宗。这听起来并没有什么大不了,但是每天两次浪费半分钟,再乘以10亿用户,这样每天就累计浪费足足27个人的一生光阴 。

如果把这项功能从软件中完全删除,我和绝大部分用户的生产效率都将得到提升,因为不必花时间转移注意力去处理这项没有任何意义的功能所带来的各种麻烦。此外,为了提供这项功能,需要增加若干额外的程序指令(程序员称之为“代码”)。而我们知道对于任何一台机器,零部件越多,它的可靠性就越低。同样的道理,这些额外指令会增加程序崩溃和安全隐患的可能性。微软公司花了大笔的钱为这项愚蠢功能进行设计、编写、测试、调试,以及建立文档和提供支持等工作。如果将这笔钱烧掉(当然把这笔钱给我更好),那么这个程序会更好一些。最糟糕的是,这些不利于提高生产力的小玩意消耗了宝贵的资源,而这些资源本来应该用于用户真正最关心的那些功能,比如减少程序崩溃的频度,在崩溃时不要给用户的劳动成果造成损失。

有一个比较极端的例子可以用来说明软件公司如何将资源浪费在这些不利于提高生产力的功能上,它就是微软Office助手(Clippy,参见图5),这是个能够说话、能够跳舞而且令人讨厌的回形针形象(1997年微软将其添加进来,但是应广大用户的强烈要求,2002年又将其停用) 。

  
图4  微软Word主菜单漂浮在文档的上方

    
图5  已停用的Office助手(Clippy)

软件不仅仅是现在糟糕,而且如果我们不要求它停下来的话,它将继续一如既往地糟糕下去。只有用户开始需要的时候,汽车制造商才会按照我们的要求改进汽车的安全性(安全气囊、ABS系统)、可靠性(能够减少故障的更好引擎)和可用性(CD播放器和茶杯架)。购买具备这些功能的汽车,而不考虑那些没有这些功能的落后产品。我妈妈经常告诫我,如果自己没有更好的想法,就不要抱怨。我确实有很多更好的主意,并且在我指出当前软件设计决策中存在的失误之处时,我会告诉您更好的解决办法。虽然本书并不是一份教您如何设计软件的指南,但是我会教您我所知道的所有方法,消除不良程序设计带来的最恶劣影响(举例来说,关闭确认对话框,这样在将文件拖到Windows回收站时,就不会跳出一个对话框喋喋不休地询问您“真的要删除吗?”)。更重要的是,本书诠释了一种思想:为了能够让软件厂商听到您我的心声,以便不让其软件继续糟糕下去(最好马上停止),我们需要采取哪些措施。微软停用Office助手Clippy就是一个很好的例子。

与此同时,我不得不告诉您,开发软件与制造实体产品之间存在着非常大的差别。假设您在制作一张木桌,原材料的内在性质排除了一些设计选择,但要求其他的设计选择。举例来说,您知道它不能焊接,但是您可以使用螺钉加固,并且不能使其太薄,以免弯曲得太厉害。在另一方面,软件受到的内在约束要少得多,基本上没有限制。正如弗雷德里克•布鲁克斯在他的软件开发著作《人月神话》(The Mythical Man-Month,Addison Wesley出版社1995年出版。译者注:中文版《人月神话》已由清华大学出版社2002年出版)(由于现在多数项目的进度抓得都非常紧,我建议将书名修改为《人周神话》(The Mythical Geek-Week))中所述,程序员处理的“几乎是纯思维对象(thought-stuff)”。我总是这样描述程序设计:“试图将烟雾塞进瓶子里面”。所以,本书将解释哪些事情(比如,断电保护以及编写能够兼容前一版本 的程序)用软件确实比较困难,而又有哪些事情仅仅是由白痴设计师做出的愚蠢设计决策造成的,他们本应该了解得更好。

我在哈佛大学开放学院(Harvard University Extension School)以及世界各地的公司讲授软件开发课程。我曾经为程序员和开发经理撰写过9本书籍,此外还有很多杂志文章和新闻稿。尽管如此,我仍然可以向您保证,本书的文字绝对不会枯燥。我尽自己的最大努力不使用技术性词汇。举例来说,您不会在书中找到“gigabyte” ,我将使用“占用1/4的磁盘空间”这句话来表示它,因为在写作本书时,这两种表示基本上是同一个意思。

与我所著的其他几本书相比,我发现本书写起来要容易得多。体育新闻记者Red Smith(1906-1982)喜欢说,“写作是一件容易的事情。您只需要划开自己的血管放血就是了。”正如我希望您已经看到的那样,我在讨论这里出现的各种问题时情绪非常激动。当我在现场讲座(“Windows XP是一款物有所值的产品,而Windows 98则是一堆不值得骂的臭狗屎”)讲完之后,我的学生经常会问,“好了,Platt,不要再绕弯子了,告诉我们您到底是怎么想的。”我的回答是“如果您怪我实事求是的话,我承认自己有错。”本书不仅仅为您解决问题,它还在为唤醒这个疯狂职业的理性而大声呐喊。并且,我希望在您阅读完本书之后,也加入到我的呐喊中来。

【责任编辑:雪花 TEL:(010)68476606-8007】

回书目      下一节
专题
见证中国网络安全二十年
NAC安全访问控制
微软Forefront企业安全解决方案
VPN安全技术与应用
安全防范与策略
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
浏览器的战国时代
浏览器的战国时代
ARP攻击防范与解决方案
ARP攻击防范与解决方案
NAC安全访问控制
NAC安全访问控制
· NAC安全访问控制
· 网络布线测试仪器
· Windows Server 2008专..
· Windows远程桌面应用
· 网络故障排除宝典
· 运营商封堵ADSL共享 中..
· 解析35岁技术人的价值..
· 世纪枭雄比尔盖茨的王..
· 主流品牌防火墙配置
· ASP.NET开发教程
· 超级计算机TOP500专题
· Vista SP1对决XP SP3
· SQL Server 2008/2005..
· 程序员如何成长?
· C#技术开发指南
· 虚拟化技术还有点“虚”
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SOA 面向服务架构
SOA 面向服务架构
· SOA 面向服务架构
· SQL Server 2008/2005..
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Windows远程桌面应用
· C#技术开发指南
· Apache技术专题
· Windows集群服务应用
· C#技术开发指南
· 国际文档格式标准开战
· 路由器设置与口令恢复
· Linux 集群技术专题
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SQL Server入门到精通
SQL Server入门到精通
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· C#技术开发指南
· 三层交换技术专题
· Apache技术专题
· C#技术开发指南
· Windows远程桌面应用
· 企业数据恢复指南
· Windows集群服务应用
· 路由器设置与口令恢复
· Linux 集群技术专题
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用