一本由经济学家撰写的讨论技术起源、进化与发展的书籍对我们这群技术从业者带来何种启示?拿到这本书时,我带着这样的疑惑,而当我合上这本书时,我带着这样的思考。
读完整本,我不敢说我读懂了这本书。个人认为到目前为止,我对这本书的思考仍然停留在书本上文字描述内容上,最多是有了一些额外的结合自己经历的发散。即使是没能从表面向下挖掘到更深层次的内涵,作者的一些只言片语仍然象划拨夜空的闪电那样击中我的思维,使我突然意识到一些以前从未想到过的东西,比如技术的组合、递归性、域定、标准工程等,突然之间对技术这样一个从未曾认真思考但又身在其中的范畴有了新的认识。
总得来说我个人觉得这是一本很有意思的书,技术的本质这个看似内容将无比枯燥的标题,作者却用异常生动的语言进行了阐述,引用了许多普通人都有所耳闻的例子,比如DNA、F-35、蒸汽火车等,使得这本书读起来非常不再乏味。
基本认知
通过阅读这本书,我认识到关于技术的三个基本原理:
- 技术都是某种组合,这意味着任何具体技术都是由当下的部件、集成件或系统组件建构或组合而成的;
- 技术的每个组件自身也是缩微的技术;
- 所有技术都会利用或开发某种效应或现象;
技术组件的集成或组合是为了满足它们的目的。从这里起,对于“创新”就有了新的认识,它可以借由组合已有的技术就能触发新技术的诞生,而不是突然降临的颠覆式的东西。在建构新技术时,既可以选择从宏观角度组合更大的技术复合体来建构新技术,也可以从微观角度深入研究技术的组成替换或更新更小的组件从而获得技术的进步。影响我们能否创新的因素取决于对技术中每个组件理解的深刻程度。
既然技术是组合而成的,技术就是结构化。任意一个技术,总有一个主要集成负责执行基本原理以及其他支撑主要组合体执行的次集成,这样的结构又可以在每个主集成和次集成中发现,所以对技术的进一步认识是:
- 技术具有层级结构:整体的技术是树干,主集成是枝干,次级集成是纸条,最基本的零件是更小的分枝
- 技术具有递归性:结构中包含某种程度的自相似组件,也就是说,技术是由不同等级的技术建构而成的
技术既可以向上融入到另一个更大范畴或向下分解到一个更细小的技术上,因而在真实世界中,技术高度可重构的,它们是流动的东西,永远不会静止,永远不会完结,永远不会完美,也就是创新永远存在。
我们日常工作是域和标准工程的写照
个体技术会聚集成群,因为它们具有某种形式的共性、或者是可以使共同工作成为可能而共同固有的能力,这便是域。它以一种工具箱的形式存在,我们可以从中选取有用的元器件或一系列的应用规范建构一个装置的元器件,这个过程就是域定,而当我们以一套不同的内容来表达既定的目的,则称之为重新域定。最最典型的例子就是iPhone。
工程师与这些多变的技术进行结合的产生了一个标准工程的概念,即执行一个新项目时,在已知可接受的原则下聚集方法和设备的过程,是对已有技术的新的计划、试制和集成过程。在这个过程中工程师专注于解决问题,选择适宜的组件作为解决方案。他们总是倾向于重复使用以前曾经用过的解决方案,并且倾向于使用可获得的现成组件,所以当一个解决方案被多次使用后就成了一个模块,并因作为适用于标准用途的模块而具有包容性,它也成了一项技术。
这里对于软件开发和设计的指导意义是非常明确的,这是从原理上解释了为什么我们要思考组件复用,为什么要沉淀优质的软件资产。
新技术从何而来以及我们做何种准备
复用固然能帮助我们快速可靠地解决问题,但是我们总会遇上从未遇到过的新问题,那么新技术是如何产生的?它产生于将需求和能满足需求的原理链接的过程之中,其中的配套解决方案以及次级解决方案最终使得需求得以满足。
这是一个新技术产生的范式,建立需求与现象的链接,而在这其中的合适的可行性解决方案是我们努力寻求的东西,我们寻求的过程其实逐步深入理解问题的过程,即找到一个解决我们面临的问题的根本性原理,事实上这要求我们具备两点:
- 熟悉被应用的原理、现象的相关实践或理论内容,这样才知道正确性与可行性
- 拥有足够丰富的功能储备库,也就是有更多实现目的的候选路径
其实这是对软件行业技术从业者的一个本质要求,为了时刻能够应对未知,精深的理论知识、广博的知识面、充足的备选方案以及落地代码的能力是一个优秀从业者和创新者的必要素养。
技术发展的机制,一般有两种,分别是内部替换(internal replacement)和结构深化(structural deepening)。内部替换是指用更好的部件(子技术)更换某一形成阻碍的部件。结构深化是指寻找更好的部件、材料或者加入新组件。多样性是技术令人着迷的部分,每一种可能都有机会引领未来,我们在这场“自然选择”中起了决定性的作用,通过选择更好的方案来解决其内部设计问题,技术的不同版本将逐步得到改善。
结构深化是在我们的日常工作中更加常见,我们习惯于增加一个系统来调协原有系统,使其功能更加完善和稳定。技术结构就是这样不断被”加深“从而变成了重重叠叠的复合体。这样方式方法在软件系统中也随处可见,甚至有一句类似的至理名言——“计算机科学中的所有问题都可以通过引入一个间接层解决”,我们在考虑和设计软件架构时总会主动地增加次级系统或次级模块来完成下面的目的:
- 加强基本性能——功能性
- 对改变或异常进行监视并作出反应——异常处理
- 适应更广泛的任务范围——可扩展
- 增强安全性和可靠性——安全性、可靠性
所以我们软件设计和开发领域奉之为经典的东西,从作者对技术的解构角度看就是存在必然性,从一般性原理上作出的解释也印证了软件设计中增加层来解决诸如依赖问题、适配问题的合理性和正确性。
总结
作者以经济学者的身份,通过研究技术对经济的作用进而探讨了技术是什么,技术如何而来和怎么发展这样本质性的问题。正如我开篇说的,作者的很多想法是让我能够体会到深意的,但这样的深意对我的启示却是我现在尚不能完全理解的,这是一本值得反复阅读和推敲的书,特别是在工作中不断地结合工作心得来体会。