任何一项新技术在诞生之初都是粗糙的,比如从莱特兄弟的飞机上你几乎看不到现代飞机的影子,暴露的驾驶、简陋的蒙皮,除了样子有些类似外,你很难再找到他们的共同点。粗糙的1.0版本并不妨碍技术的发展,技术的推动者会持续地摆弄这个新事物,制造新配件、试验新材料、发展理论和解决问题,一点点推动新技术向着成熟发展。
总结技术发展的机制,一般有两种,分别是内部替换(internal replacement)和结构深化(structural deepening)。内部替换是指用更好的部件(子技术)更换某一形成阻碍的部件。结构深化是指寻找更好的部件、材料或者加入新组件。一旦技术踏上这条道路,就会出现技术的不同版本,因为内部替换与结构深化并没有规定具体的变化路径,相反它给出了各种各样的可能性。这时达尔文理论中的变异和选择就能在技术这个领域内发挥作用了,通过选择更好的方案来解决其内部设计问题,技术的不同版本将逐步得到改善。
当一项技术涉及了商业或军事的议题,总会有人来逼迫技术给予更多功能,技术人员就不得不去寻找更好的组件、更优化的结构,不断进行组件间的调整和平衡,这就是内部替换。因此我们会看到技术会随着发展而变得越加复杂。技术人员可以去寻求新的更好的部件或更好的材料去克服技术障碍,也可以通过加入新的零部件或是添加零件系统来消除障碍,这样旧的部分就被保留下来,新的部分加入进来辅助旧部分完成工作,这就是结构深化,这种做法在我们的日常工作中更加常见,比如某个部件发热严重,我们通常的做法不是更换这个部件而是为它安装一套冷却系统。为了突破局限而不断加入次级系统,技术因此发展得越来越精致。技术结构就是这样不断被”加深“从而变成了重重叠叠的复合体。
这样方式方法在软件系统中也随处可见,我们在考虑和设计软件架构时总会主动地增加次级系统或次级模块来完成下面的目的:
- 加强基本性能——功能性
- 对改变或异常进行监视并作出反应——异常处理
- 适应更广泛的任务范围——可扩展
- 增强安全性和可靠性——安全性、可靠性
一个成熟可商用的软件系统就是这样一步步地构建起来,替换旧组件、增加新模块/系统总是不停地在发生,而在软件系统中我们也有一句类似的至理名言——“计算机科学中的所有问题都可以通过引入一个间接层解决”。不难看出,技术的发展深深依赖于结构的深化。
个体技术的形成和发展的理论是否也同样适用于技术体呢?或者说我们通过简单的加和就能获得新的技术体了呢?对于这个问题,作者的回答是域实际上并不是单个技术的加和,他们是连贯的整体,是关于设备、方法、实践的族群,它们的形成和发展具有个体技术不同的特征。技术体不是被发明出来的,而是类似于一种结晶的过程,可能通过跨度几年甚至几十年发展才能获得。比如,数字技术出现与上世纪40年代,但直到现在它仍然在发展。那么域是如何进化的呢?
域的形成有两种模式:一是围绕核心技术联合而成的,比如计算机自诞生起,它的相关技术如存储系统、程序语言、外部设备就不断地围绕它聚集;一是从一个现象簇中建构起来的,比如大家中学学过的电子、电磁波理论逐步地演化成电学、电气学、无线电学等。由此作者提出了一个有趣的域生命周期:
- 诞生,解决母域中的特定问题,在理解和实践中固话、发展
- 青春期,解决发展中的阻碍,产生可行的技术并应用于市场
- 成熟期,市场由狂热走向冷静,新的域以自己的方式深入地影响经济,进入稳定成长阶段
- 晚年,鲜有重要理念产生,有些域会被取代,但大多数还得以存在并服务于人类
这样例子在我们的身边数不胜数,比如今天在前端开发领域绝对主流的JavaScript,它在诞生时只是Netscape公司需要让网页上的元素动起来,让JavaScript 真正第一次得到重视是 Ajax 这门技术。Ajax 的出现让页面的元素可以与远程的服务器进行交互,使得JavaScript开始变成了一门值得研究的技术,前端的表现力得到了大幅度的提升。Node.js让JavaScript转正成一门正式的开发语言,其中的关键就在于V8 这个JavaScript 引擎,它的重点解决了JavaScript 执行慢的问题。当NPM 这个包管理器登场,从而降低了众多开发者参与的门槛时,JavaScript 终于迎来了属于自己的爆发,各种各样的程序库让人眼花缭乱。前端开发也由少数人的爱好,成为了一个专属的职位,像 React、Angular、Vue 等框架的出现,更是让前端开发有了工程的味道。
接下来作者回到他经济学者的身份,讨论技术体出现并发展时对经济有什么影响。一项新技术的到来会引起经济中的价格和生产网络在各行各业伸展、重塑,技术体也有类似的效果也会引起经济模式的扩展性调整。已有产业去适应新的技术体,从中提取、选择它们所需要的内容,并将其中部分零部件和新领域中的部分零件组合起来,有时还会创造次生产业,这就是经济的重新域定。回顾人类历史,每个时代的经济都会随着新的技术体的到来而重塑,如铁路、电气化、大规模生产、信息技术等渗透到经济当中时,旧结构可能崩溃,新结构便取代了它的位置,新的产业替代旧产业。
域和经济共变和共创过程,称为“颠覆性改变”。
这也就是我们时常听到的一个词——产业升级。
作者在前面几章谈了那么多的标准工程、结构深化、颠覆性改变与重新域定,实际上完整地阐述了一个更宏大的话题——创新。创新存在于新的解决方案转变为标准工程的过程中;创新存在于由发明引发的根本性新技术产生的过程中;创新存在于这些新技术在改变内部组件或者结构深化时,通过增加组件而获得发展的过程中欧给你;创新还存在于技术体从出现到随时间而发展并改变与之遭遇的产业过程中。我们总是不断在现有的工具箱中的零部件或实践去发现或组合新的解决方案;或者如何不断将实践过程与新的工具、新的技术体、新的域组合起来,这些活动贯穿在所有的经济活动之中。
这两个章节给予的启示是在于结构深化的理解和应用,其实相比更换新的技术组件这种“内部替换”,研发团队更加倾向与新增组件来完善已有功能,因为新的技术组件的更替有时不容易把控还需要付出学习成本,通常团队只有在没有办法的情况下去追求更新技术组件,在做这种选择时团队需要承受相应的风险。而新增组件来完善功能则是一种非常通用与有效的方法,这不单单是在软件领域在其他工程领域也是这样。因此不能简单地把新增组件这样一个活动看作是是一个修修补补的方案,相反要看作一个关键的活动加以重视,因为通过“结构深化”我们不仅能解决原有障碍,还能增加整个系统的可靠性与稳定性,它对于推动我们内部技术的发展和演进具有非常重要的作用。