19世纪末的中国,那是一个已经开发了3000多年的软件系统,采用封建架构,包含了3亿多行代码,整体运行效率非常低下,而且充斥着无数bug,随时可能发生崩溃。
然后崩溃真的发生了,长达100年间,无数工程师和架构师试图找到解决的方法,重新开发吧,推到一切旧有的代码,重新编写,采用全新的架构,当然采用哪种架构也是争论的焦点,有说民主的,有说君主立宪的,还有搞军阀割据的,还有玩复辟的。。。。
但是他们都忘了一个很重要的问题,这个系统中,每个模块,既是系统的一部分,也是系统的开发者,他们由运行的每一行代码组成又是这些代码的编写者,任何方案只有得到绝大多数模块的支持才能实行。
最后,只有毛泽东这个架构师的方案获得了绝大多数模块的支持,并且积极参与开发,从而重新编写改造了大部分模块,但是仍然没有解决问题,运行效率依然不高。
邓小平出现了,他没有试图再次推翻重写一个新系统,而是发现毛的架构没有太大的问题,只是代码编写的质量太差,而且由于急于加入新功能而导致了代码规模过度膨胀(超过13亿行代码了),所以这才是运行效率低下的根源。
所以邓小平的方法不是革命,而是重构,在既有架构下,重构(改革)所有模块,移植其他项目的成功代码(开放),而且采用测试驱动开发的模式(摸着石头过河。。。),开发组实行5年期的sprint(五年计划。。)。
一些重大的重构都会先做个prototype(特区。。。),同时架构上不再固守单一平台,允许异构平台的存在(一国两制,私有制经济)。