初读本书让我想起我读研究生的一位软件工程的导师。他不高,讲话带方言,常常咬文嚼字让人听不懂整句话的意思。可是他几乎每一节课都只在重复一个课题,变与不变。比如聊到即时通讯工具,往对方传消息是正常做法,往对方传送视频是微创新,而往对方传送的如果是运行一半的程序,则是变;又比如完成一个软件,你应该首先关注它内部会变更的部分。这种变化涉及到多重含义,比如软件功能因不同的用户群而有不同的理解,比如因时因地软件应该有不同的展现,或者把变更的部分作为软件的独立配置可动态改变。寥寥数语,对我之后关于软件构建的印象却影响很大。仅以此书评,纪念我这位已逝去的可敬可佩的倪老师。
变化有多个层次。
第一层,基于系统内的改变。书用了群论来支撑变与不变的观点。群是由某一共同特征的成员组成。群成员以各种不同的顺序来组合,而组合的结果相同。群内必定包含恒等成员和相反成员,使得成员间的组合仍然为成员本身,或者为恒等成员。系统内的改变虽是改变,可是不颠覆系统本身,即对事物没有质的提升,属于所谓“第一序改变”。
第一序改变对我们的影响常常是问题形成的原因。明明想解决事情的,却发现越弄越糟。源于群内有多个成员,个人有不同欲望,无论人本身还是社会,都是悖论的结合体。书中举了个例子,就像失眠。失眠的人睡不着很痛苦也意识到这个问题,心中数着好多只绵羊,强迫自己能够睡着。而睡着本身是自然而然的过程,不能带有强迫。于是绵羊常常越数越多,失眠人终于一夜未庥。所以下次遇到这种时候,只有反过来让自己睁开眼睛一定不能睡着,自己才能莫名奇妙地入睡。悖论是问题产生的第一种原因。
问题产生的第二种原因。根据常识,抵制一件令人痛苦或不愉快事情的解决方法,就是将其对立者引入该情境中。“持续加强统一行动”是他们改变的方式,而这一解决方案即成为问题本身。这个要求好高。它要求我们的思想和行为都不按照常理出牌,不按照别人的思维发散。有人跟你谈论悲伤,你就可以骂醒他。有情侣在路边吵架,最好你去问个路。有人高谈阔论自己的知识,你要表示质疑而不是附和。这个过程可能无情无厘头或者有失风度,可是能带来相反效果。从群论的观点来看,系统内在第一序改变潜能,足以应对变动,而其结构维持不变,就像两位水手往两边卖力狂妄地拉着一条船,船向一方倾斜,出现问题了,另外一方想要解决问题让结构保持不变,于是也很卖力。于是双方越来越卖力。比如恋人之间拼命想要对方证明对自己的爱,就是这种结构的映射。
问题产生的第三种原因。陷入可怕的简化或者乌托邦主义。典型的简化是轻易认为“这个问题不是问题”,从而否定问题本身。轻易说一件事情很简单只不过暴露了说话者头脑的简单。相对于过度简化,乌托邦是另外一个极端。它主要包括三种方式:“内射式”,由于当事人苦于无法达成自己的目标,而觉得是个人有所欠缺而导致的;“满怀希望地跋涉,胜过抵达目的地”。这类行为稍微有受虐倾向,享受目的没有达成的过程,容易落入拖拉的圈套。比如大考之前不想复习,反而会去看看小说或者打打游戏,享受这种煎熬本身;第三种,“投射式”,跟第一种的区别在于认为出现问题,问题不在自己,在社会环境。这类行为容易站在道德的制高点去批判其它人,认为自己才是站在真理的一方,肩负着维护世界和平,社会公平的审判人角色。
这两种行为最大的问题是在于面对问题,采用的观点或者采取的方式不合理,可能到导致想要解决“并不存在”的问题,无法区分事实或者事实的前提,容易怀疑自己或者质疑他人。都是不利于解决问题的。
第二层,改变之改变。书中用了逻辑类型理论来解释超越既定系统的架构变化。“凡涉及某集合的全部成员者,必定不是该集合的一员”。若以其中一个来解释另外一个,势必导致荒谬和混淆。此是第二序改变。
挑战悖论常常能刺激事情完成第二序改变。我们常常会面对希望推动某事物能够“自发地”完成。老师要求学生“自发”去学习;恋人希望伴侣自发地做自己想要他做的事情,如果是我开口提出来的,那就不想要了。这种场景下,解决之道总是成为问题本身。
面临问题,直捣问题的核心关键是研究是什么而非为什么,把矛头直指解决之道。以结果为导向来思考,“是什么”比“为什么”重要的多。譬如最常见的,程序员在完成代码的时候有时候会遇到一些无法解决的问题,习惯的做法是模拟一个测试环境测试过程中发现错误得到一些错误提示,把错误提示复制粘贴到谷歌上搜素,看看是怎么一回事。面对错误,大家的第一反应总是“肿么了”。但实际上一旦各种阴差阳错,曲线救国解决了问题之后再来回顾问题产生之初,以及从问题产生到我解决问题的所有有用功来衡量就会发现,某个错误为什么发生根本一点都不重要,这个成功是如何到达的才是最终目的。所以一第二序改变要求我们在开始时不拘泥于细节,以结果导向,做尽量多的有用功。
完成第二序改变其实比想象中困难好多。或者有重新框定问题的艺术,或者有冷静定位问题层次的意识;“化暗为明”,“小题大做”,“故意忽视”,“仁慈地破坏”,利用情景使人好奇,或者愤怒等与该情境不相称的情感,能够给问题的解决打开一道小缺口。我们是要做制定游戏规则的人,而不单纯是在玩游戏本身。