An image to describe post 实名推荐熊节《敏捷中国史》,IT 历史不止有趣的故事

许多人大概还记得列宁有句名言:“忘记历史就等于背叛”,也承认历史的重要价值。但是,IT的历史有什么价值,有多重要?恐怕对许多人来说,IT的历史只是有趣故事的集合。

这不奇怪,因为“计算机的历史”实在不是一门显学。许多人都认为,计算机(或者“IT行业”)太年轻,一切尚待摸索,发展又太快,所以不了解过去,完全不是什么问题。我以前也这么想,不过在这个行业干了十多年之后,我不得不承认,多懂点IT的历史真不是坏事。

有时看到一些程序员写的程序职责混杂,最基础的操作和存储都没有分离,真是让人无语。人类希望制造“能计算的机器”由来已久,19世纪英国数学家、发明家、机械工程师查尔斯·巴贝奇设计的分析机堪称现代计算机的雏形。

在艰难的设计摸索中,巴贝奇敏锐意识到了几个对现代计算机至关重要的原则,其中之一就是运算和存储必须分离,不能因为最终结果只有一个,系统设计就不分职责。虽然巴贝奇的分析机没能制造出来,但他天才的设计理念仍在造福我们。如果巴贝奇能活到今天,看到这样的程序估计要气得跳脚。如果如今写程序还要像以前上私塾那样,估计程序员要在先贤祠堂里挨板子了——尽管这不可能发生。

不过,这正是我今天推荐《敏捷中国史》的理由所在。与常见的“IT技能培训”不同,《敏捷中国史》由熊节这位开发专家撰写,讲解的却不是具体的IT技能,而是接近20年的开发演变历史。长期以来,外行虽然能把故事讲好,又缺乏专业素养,经常闹一些笑话,而IT行内人士更多擅长讲解专业技术,不擅长也没兴趣讲IT的历史。反过来想,IT行内人士来正经讲IT历史,这恰恰是《敏捷中国史》的独到之处。而且我相信,熊节讲的这段历史值得如今的从业人员了解。那么,它包含了哪些内容呢?

先不要被“敏捷”所迷惑,以为是它是在念经。其实不是,这里说的“敏捷”,其实是相对传统开发模式而言的。那是什么模式?瀑布式开发、大版本、长周期、部署繁杂…… 似乎一切都与今天流行的“开发”不同。《敏捷中国史》所讲的,就是这种转变的故事。简单来说,它主要包括两方面的内容。

一方面是全球的IT发展潮流。

举个例子,像我这样“入行比较早”的开发人员都还记得,曾经有个东西叫EJB,一度非常红火,成为企业应用中当仁不让的主力。EJB也得到了大批产业人士的推崇——当时“中国Java第一人”,深圳金蝶中间件有限公司技术总监袁红岗就声称:“如果项目中没有使用 EJB,就不能算是真正使用了 J2EE 技术”,斩钉截铁,言犹在耳。

EJB是什么?是当年Sun主推的技术方案之一,其设计初衷是成为基于RPC(远程过程调用)的分布式应用架构。简单说,可以把远端进程当成普通对象,像本地Java方法那样简单调用。所以,对象需要考虑分布,RMI成为标配,XML更是铺天盖地……

为什么如今的分布式架构和EJB看起来截然不同?很大程度上是因为敏捷开发的领袖们发出了不一样的声音。Martin Fowler大力主张“分布式对象设计的第一原则就是对象不能分布”,他提出的解决之道是如今开发的常识:

Put all the classes into a single process and then run multiple copies of that process on the various nodes. That way, each process uses local calls to get the job done and thus does things faster. You can also use fine-grained interfaces for all the classes within the process and thus get better maintainability with a simpler programming model.

这还不算,另一位大神Rod Johnson更是写了一本振聋发聩的著作《Expert One-on-One J2EE Development without EJB》,书名直接打脸。什么,你不知道Rod Johnson是谁?那你更应当去读IT的历史了。如今大红大紫的Spring框架,可不是石头缝里蹦出来的。

当年EJB为何得到厂商的大力推广?敏捷阵营又如何颠覆了Sun的“亲儿子”EJB?这个故事在《敏捷中国史》里有专门描述。看完,估计你会对如今热炒的、有各路人士站台的技术潮流有更多的看法,这是好事。

另一方面是国内的IT发展故事。

第一个例子是微软的公众印象。如今微软在国内开发者心中的形象并不太好,甚至C#的开发人员都已经越来越难招了。但是倒回去20年,画面可截然不同。对许多开发者来说,“Visual C++就是C++的同义词”。在2001年,著名程序员孟岩写了《VC 不是梦想,C++ 需要自由的心》。在中文世界里用“梦想”、“自由”这样的词汇来描述一种编程语言,就算他不是第一个也差不太远。

把当年如日中天的微软批评为“封闭”、并振臂疾呼“在我们程序员的心中,没有凯撒,我们可以把你当朋友,但是你别想做我们的主子”、“不自由,毋宁死”,这些真诚的呼声,在当年看来是极具开创性和震撼力的观点。如今这样的声音似乎不见了,即便有也往往伴随着各式嘲讽。这到底是好事还是坏事?我不知道答案。但知道历史上有过这样的呐喊,总不是一件坏事。

另一个例子来自敏捷在国内的落地。今年初任正非老先生专门写了封信,强调软件工程。那么,如今成为普遍共识的“敏捷开发”,在各家公司是如何导入的?《敏捷中国史》里用三节,分别讲述了敏捷在阿里、华为、腾讯落地的故事。

简单来说,华为采用的是“三步走”的策略,2008年先在核心网、无线等产品线试点,成功之后再全面推行,由系统工程部提出了完整的规范和详细的计划。而在腾讯,之前已经有模糊的敏捷的实践,所以研发管理部没有设计全公司的整体路线,而是以平台和服务的形式提供给各团队,自由选择。

阿里巴巴的故事最神奇,2005年8月,雅虎以雅虎中国全部资产和10亿美元为代价,换取了阿里巴巴30%的股权(后来看这是雅虎历史上最正确的选择)。原来雅虎中国的广告团队整体切换为阿里广告团队,后来成立了阿里妈妈。阿里巴巴的敏捷实践,最早就是这支团队在2006年3月开始的。联想到早期雅虎和Sun的工程师为阿里的技术做出了很重要的贡献,我们是不是可以得出结论说:阿里巴巴的文化确实有独到之处呢?

当然中国的故事还不只这些。在阅读过程中我经常遇到尘封许久的名词,比如“软件蓝领”,当时很多人主张要学习印度,像培养流水线工人一样培养软件开发人员;又比如CMM,这个概念一度大热,各公司都以能拿一个CMM x为宣传……这些东西为什么后来沉寂了,消失了?我似乎没想过,此时听作者娓娓道来,是一种享受。

我一直很认同秦晖老师的话:“主义可拿来,问题须土产”。在技术领域也是如此,单纯是贩卖些流行的概念,尽管光鲜亮丽,更像绣花枕头,其实不能产生多少实际价值。唯有静下心来收集信息、了解情况、细致分析,投进去足够多的工夫,才能发现真问题,才能推动解决问题。

如果上面的故事让你产生了兴趣,如果上面我的观点让你认同,建议你阅读《敏捷中国史》。我相信,在阅读过程当中,你收获的并不只是“历史故事”,肯定还有对现实的更立体的了解,以及其它启发。

再介绍《敏捷中国史》的作者熊节。

如果你阅读计算机书籍时留意过译者,应当记得和这个名字相关的有一系列重磅作品:《重构》、《软件工艺》、《实现模式》。但他其实不是专门的译者,而是技术专家,现任宝尊电商成都研发中心总经理,曾任 ThoughtWorks 总监咨询师、 CSDN 技术主编。

我们都知道,在这个年代,做技术的收入远远超过写一套IT历史。所以,愿意花这么大力气写整套历史,除了兴趣和情怀,实在找不到更好的理由了。

最后,《敏捷中国史》未来有书籍出版计划,目前是以在线课程形式在GitChat提供。我觉得这是好事,一方面它本身天然适合分章分节阅读,另一方面,读者的许多疑问也可以及时提出,得到作者解答。

有兴趣的读者,赶紧上车吧。

An image to describe post 实名推荐熊节《敏捷中国史》,IT 历史不止有趣的故事

适宜人群

  • 致力于高效开发的程序员

  • 对 IT 发展感兴趣的人士

  • 互联网从业人员

购买须知

  1. 本课程为图文课程,共计 35 篇。

  2. 付费用户可享受文章永久阅读权限。

  3. 本课程为虚拟产品,一经付费概不退款,敬请谅解。

  4. 本课程也可在 gitbook.cn 上购买和阅读。

订阅福利

  • 本课程限时特价 49 元,3 月 8 日恢复至原价 69 元。

  • 订购本课程可获得专属海报,分享专属海报每成功邀请一位好友购买,即可获得 25% 的返现奖励,多邀多得,上不封顶,立即提现。

  • 提现流程:请在 GitChat 服务号中点击“我—我的邀请—提现”进行提现。

An image to describe post 实名推荐熊节《敏捷中国史》,IT 历史不止有趣的故事