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

大道至简 前言

作者: 周爱民 出处:电子工业出版社博文视点  2008-01-02 17:00    砖    好    评论   进入论坛
阅读提示:《大道至简》本书是在“思想方法学”这一软件工程尚未涉足过的领域中的实习之作。以下是本书作者前言。

你在做什么

“你在做什么?”我经常这样反问那些跑来问我问题的人们。然后他们就愣住了。

做了许多年的开发,其实有很多人并不知道“自己在做什么”。《愚公移山》的故事里面,愚公为山所阻,苦于“出入之迂”,然后就决定“移山”。看起来伟大而风光的工程,可能只是拍拍脑袋的一时主意——如果只是觉得绕路太远,那么劈山开路岂不是更加经济?

愚公移山只是一种精神追求,而做工程却不是追求精神目标。我们的目标是完成工程,但是你现在环顾一下你的团队:有多少人的眼光是落在工程本身上的呢?

程序员正在调试代码,项目经理在忙着开会,市场经理在请客吃饭,老板可能还在来公司的路上……总之,你的身旁没有什么人关注工程本身。即便有一个人或几个人在像模像样地画着模型图,或者写着需求、分析与设计书,但是对于他们来说,这只是例行的工作,而不是出于工程本身的需要。

其实这也是我在几年前的状态,同时身兼主程、团队负责人和项目经理的时候,我列出的工作清单排满了上班与下班的时间。我甚至忙到不知道自己有多忙。直到我将自己的角色分解到“工程层状模型(EHM)”中,我才渐渐地梳理出自己的工作方法。

《大道至简》这本书的名字并没有什么奥妙。因为是先有了EHM,所以这本书根本上是随着EHM的层次来展开的。它的第一版曾在《程序员》中选载过三期,那时我为了方便就以《从编程到工程》作为书名。后来出电子版时,才恢复到现在这个名字。而本质上来说,这本书还是讲的“从编程到工程”的各个环节。

至于“道”,其实在乎于你的认知。它不过是规律、本质的代名词。现在的书名,更像是一个以程序员出身的工程实践者,在历经10年后,终于领悟到“自己在做什么”时的一声感叹。

《大道至简》向你讲述两个内容:做什么和为什么做。“做什么”作为一种状态或者现象,通常是(阶段性)不变的,所以人们了解自己“在做什么”时大多只需要观察。简而言之,只需要自省,就可以了解自己的所作所为了。然而“为什么做”却相对更难于理解,因为这是“表象下的实质”,潜藏得很深:习以为常,便会根本上忘却“习”的来由。例如项目总监说要一份计划,你大概只需要拿一个以前做过的文档模板,很快就能写出一份项目计划案来。但在这个过程中,你已经忘掉了“项目计划案”真正存在的价值——写它的目的,并不是“完成工作”。

写一份项目计划案的时候,你的角色是项目经理,你的职责是计划与分工,你的目标是工程的时间、进度与质量的平衡。这份文档是工程的纲要,因此阅读群体是整个团队和项目干系人。所有这些,都可能导致文档的规格和措辞存在差异。

所以你需要认识“为什么做”。

这其实并不是非常困难。例如我在工程中经常问的问题是“可不可以不做”——哈哈,看起来我很偷懒似的。其实不然,因为接下来我就会从不同的人那里得到“非做不可”的种种理由。

然而这是方法或者手法。《大道至简》并不告诉你这些具体的方法与手法。我只是叙述了基本的原理与思想。《大道至简》陈述的是一种途径、一个方面,以及一些探求途径、方面过程中的故事与思考。

做事有没有章法,在于你头脑够不够清醒;头脑够不够清醒,在于你是否视见到事物的本实。具体到如何做一件事(例如做软件工程)的方法与步骤,是本书所不能告诉你的。而反过来说,如果你认为你自己“足够清醒”,那么这本书原本也就不会告诉你更多。

你足够清醒吗?

第二版的增改

写这一版的《大道至简》,其实用掉的时间与整个第一版差不太多。但新添加的内容,也就两章三节而已:

第六章,谁是解结的人;

第八章,你看得到工具的本质吗;

第四章第三节,沟通的三层障碍;

第九章第五节,审视AP和XP;

第十章第七节,细解“法”与“式”。

此外,第二版的《大道至简》加入了一个有趣的部分,就是九幅四格漫画和一篇《愚公移山记》。

除了增加的内容之外,本版的《大道至简》还修改了一些章节的位置。例如第七章的“关注点”一节。因为EHM图提出来的不仅仅是一个“多层”的体系,而且它的“关注点”也是EHM体系的一个重要部分。因此放在一起来讲述,会使这个体系更加完整。

还有一些细部修改。例如第一版说李冰与愚公处于“差不多同一时间”。这经不起考究,就改掉了。

关于新添加的章节

第一版的EHM体系中有一个关注点没有详述。也就是“组织”。事实上在“失败的过程也是过程”中,最后一节“工程不是做的,是组织的”,就是打算延伸到“组织问题”进行讨论的。但写第一版的时候,并没有就此展开。所以有些读者在看第一版时,觉得这一段没什么意义。

本版中添加的第六章“谁是解结的人”,讨论的就是组织和管理的问题。承接上文而讨论“组织角色,分工明确,步调一致”等这些问题。为此,在综述EHM的第七章,也修改了“组织”小节的部分文字。

在本版中,我还添加了一章“审视XP和AP”,对敏捷编程与极限编程做了一些讨论。我试图站在更中立的角度上来讨论AP、XP,以及传统的工程过程(例如RUP)。因为本书并不打算去迎合某种或者某些过程、方法与工具。

但即使如此,“敏捷(Agile)”也与本书表达的“灵活(Flexible)”的观点有相近的地方。其实本书在英文名上,就曾考虑过使用“Thinking In Flexible Engineering”这样的名字。我在这里特别补充这一点,是希望不要把本书的思想与AP和XP等同起来。

新添加的第八章“你看得到工具的本质吗”,占了不少的篇幅。其实,对于我自己来说,理解“语言只是工具”是一个顿悟的过程。但对于读者来说,是顿悟还是领悟,则更多的取决于思想方法与工程积累。我不能期望大家都能顿悟,所以就详写了这一章,希望能以渐进的说理,对我的思想脉络做一概括,并阐述工具之于工程的本末。

关于《愚公移山记》

在基本不影响原故事的前提下,我在本书中对愚公移山的故事进行了续写。我在2005年4月就完成了本书的第一版,7月赴西藏旅游时,在珠峰大本营扎营之夜构思了“愚公移山”的续写概要,但到10月发布本书第一版(电子版)时,这篇续却没能够写出来。此次编写第二版,把这一年来在头脑中渐渐清晰的故事重理脉络,编撰成一篇文言,就是附录中的《愚公移山记》。为方便阅读,在本书附录中又附了一篇白话文的版本。

书中的九幅四格漫画,不但概括了故事的大意,也是整本书的框架骨骼。为了使得整个故事更加完整并具连续性,我对愚公移山中人物的历史背景进行了一些设定(姓氏的设定主要是为了避免在故事中出现“愚公n代”这样的写法)。这里先作一些交待:

愚公,复姓公输,祖上虞国人(今山西平陆县北)。后迁居到太行山北,时以虞人自称,性情耿正,人称愚公。

智叟,复姓端木,魏国河曲人(今山西芮城西,风陵渡一带),后迁与愚公毗邻,仍以河曲人自称。

邻人京城氏,世居此地。有孀妻遗男。京城一氏的后代中,有很多复祖姓目夷的人。

序、前言及其他

这一版本,仍请蒋涛先生作序,替换了由他为本书第一版(电子版)所写的序言。在请李维先生做推荐辞时,先生不辞辛劳,寄过来一份推荐序,因此,我敬而重之地做在本书的序中。本书的另一篇序,则是请我的老朋友王昊写的。

第一版的“前言”以“后语”的形式在书末给出,这一版中保留了这个做法,具体的原因参见书末的“前言后语”。

此外,为了便于读者阅读理解本书,我也为新版写了这篇“再版前言”。

【责任编辑:于捷 TEL:(010)68476606】

回书目      下一节
专题
网络工程师职业规划与现状
初探敏捷开发
WCF开发基础
Visual Studio 2005开发基础
测试开发人员参考手册
我也说两句

匿名发表

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


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