对PlantUML们的评价-《软件方法》全流程引领AI-第1章 02
AI辅助的建模步骤-《软件方法》全流程引领AI-第1章 03
第1章 ABCD工作流
1.5 警惕和揭秘伪创新
初中数学里要学习全等三角形、相似三角形、SSS、SAS……,到了高中以后学了正弦定理、余弦定理等解三角形的知识……就不会再回去用初中的方法解题了。
但是,不是所有人都能学会高中的知识,比如说张三。
张三可能会这样解释:
“我这个人能力比较弱,只能掌握全等三角形、相似三角形的方法。”
这样的说法没有问题。
张三还可能会这样解释:
“这个题目比较简单,用全等三角形、相似三角形的方法做足够了,而且这样更方便广大人民群众理解。”
这样的说法也可以。不过,竞争对手不是傻子,市场中哪里有什么"简单题目"!能带来利润的题目都很复杂。
但是,张三如果这样说:
“全等三角形、相似三角形的知识比高中三角函数的知识更深刻。”
这是自欺欺人。
更要警惕的是,有一个李四,也许和张三一样没有掌握高中方法,也许掌握了高中方法但是为了忽悠张三们,偷偷把"全等三角形"改名为"叠合三角形",然后和张三宣传:
“我发明了"叠合三角形"新方法,比高中的三角函数有用,三角函数过时了。”
这就是可恶了。
前文已经提到过伪创新,此处,我们再来详细谈一谈。
1.5.1 你情我愿的伪创新
前面20-30年间,互联网和信息行业的大发展,使得大量没有受过应有训练的人员加入并从事软件开发工作。他们中的一部分人并没有“补课”的意愿和能力,而是致力于寻找可以让他们逃避辛苦学习的伪创新。他们是“伪创新”的买家。
某些开发团队的工作实际上是在装模作样,浪费时间在那里废话刷工作量。在“猪都会飞”的时期,特别是在开发团队的能力不是关键竞争要素的领域,废话刷工作量的危害没那么明显。而开发团队为了突出自己的贡献,想表明所在组织取得的成功来源于本团队超人一等的能力和努力,迫切需要拉上某些“方法”作为面子和证据。他们是“伪创新”的买家。
有买家就有卖家,于是,国外国内就有人炮制出各种投资少,见效快,产量大、门槛低、仪式感十足的伪创新,组成圈子向开发团队宣传。
开发人员和开发团队一接触,欢天喜地连称“受用”,更加心安理得地假装努力,骗客户,骗领导,骗自己。
前些年,伪创新以“敏捷”为名,近年来,伪创新以“DDD(领域驱动设计)”为名。细心观察可以发现,背后的主要推手是同一批人。
1.5.2 不学有术
严谨而系统化地研究某个领域中前人的成果,清楚前人曾经想过什么,做过什么,哪些成功了,哪些失败了,才能提出真正的问题并解决问题——这是真正的创新。
伪创新圈子的“创新”却来得非常容易,可以说是“不学有术”——不学习却能大量输出。
他们不去认真研究前人的成果,而是基于自己碎片化的阅读和经验,把一些朦胧感悟写出来,然后造一个新词来命名,就得到“创新”了。
★有的网红甚至是这样“创新”的:我和公司同事某某(也是网红)讨论了什么什么,就悟到了某某创新。
在伪创新圈子的文字里,常会见到“我突然想到”、“我发现”、“我悟到了”等字眼。
如果仅仅是发表自己的体会或感悟,即使内容是错误的,也是个人自由。伪创新圈子的问题在于:他们硬要把自己的体会包装成“创新”,然后向大家布道。
图1-33 体会和创新的区别
天下没有免费的午餐!“不学”却“有术”的伪创新,它的内容符合以下特点之一:
(1)错误
不管是过去的开发团队,还是现在的开发团队,用上了不但没用反而有害。错误的内容可谓是“百花齐放”,什么样的都有。
(2)过时
悟出来的内容,其实之前已经存在而且在一定时期内发挥了作用,但现在已经被更好的知识取代。
例如,某DDD实践者分享了自己创造的架构表示法,仔细一看,不就是1970年代的数据流图吗?现在在需要画数据流图的地方,使用UML或SysML活动图是更好的选择。
(3)拙劣的模仿
例如,某发明家急于“创新”,模仿现在仍在发挥作用的方法学自己搞了一套,只不过各种名称换成了自己的“造词”。由于不下功夫学习,囫囵吞枣,“创新”的“方法学”比起现有的成熟方法学来,到处是倒退和漏洞。
学霸做了一份试卷,比较难,估计拿不到满分。学渣自告奋勇,硬是要帮学霸改一下以提高分数,你猜会是什么结果?
该掌握的知识没有掌握,就硬着头皮“创新”,后果可想而知。
上面所说的不只是符合软件开发的伪创新,网络上的各种“数学民科”、“物理民科”的“数学创新”、“物理创新”也是非常符合的。
如果这些“民科”能花时间去认真学习大学(本来想说高中,但听说中学要求的学习深度在逐年下降)的数学和物理——就当是卧底,带着批判和找茬的目的去学——学习到能独立把大部分习题做对的程度。
如果他们真的能做到这一步,估计也就不会再相信之前自己瞎掰的那些东西了。
可是有多少“民科”会这样去做呢?如果他有如此认真学习的兴趣和毅力,之前他也不会“不学有术”地频频“创新”了。
我也曾经和软件开发的伪创新圈子说过多次,就算是带着批判和找茬的目的,把我的书看一看,把我出的几百道题做对了。
同上,要是真的把题做对了,他也就不会再去相信那些伪创新了,甚至会为曾经相信那些东西而羞愧。
可惜,没有人能做到。有的人看两页书,题也不做,就啪啪啪发一堆感悟——然后,一直停留在那里。
最后要说明一下:
“民科”说的是做事的态度和方法,并不绑定具体身份——例如定义官方研究机构之外的研究者一律为“民科”。
不少真正的创新来自企业。特别是IT业,一些创新甚至来自非正式团体或个人。不过,官方研究机构的人员筛选,使得伪创新的概率会小一些,至少知道写东西之前要先做研究。
而企业特别是互联网企业在“猪都会飞”的膨胀期,吸纳了各种各样没有严谨态度的人员——所以,大家可以看到一些头部互联网企业会加入很多伪创新的推波助澜中,特别是员工喜欢到处“布道”的企业。
当然,也有著名科学家年轻时真正在研究科学,进入老年之后大脑退化,不能也不愿沿着科学的道路继续探索,同时又面临死亡的无解难题,于是转为宣传宗教甚至宣传迷信。
1.5.3 造词
伪创新圈子很擅长造词,恨不得每个用词都能当演讲题目。
如果人们得知一个东西曾经存在过,那么当这个东西再次被拿出来宣传时,人们会对宣传持有较多的理性,“这东西如果真的这么厉害,那之前怎么……”,宣传的人也会收敛,不至于那么夸张。如果起一个新名字,就会给人一种“全新”的感觉,人们可能就会给一个机会,毕竟是“新”的,没准人家真的有这么牛呢。
例如,说青霉素可以治愈肝癌,大众肯定不信,要是真的可以治愈肝癌那么多年不早就验证了嘛;如果把青霉素改个名字叫“K9527-α”,说可以治愈肝癌,可能就会有患者给它一个机会,买了试一试。
一个机会就够了!大不了这个词不好使了再换个词呗,造词工厂的流水线可是全年开工的!
并不是说青霉素没有价值,杀灭还没有耐药的细菌总是可以的。就算是淀粉做的假药,还可以起到充饥的作用呢。
危害在于,被误导的肝癌患者可能会将宝贵的金钱和时间资源优先用在了“K9527-α”上,耽误了获得更好治疗方案的机会。
1.5.3.1 造词手法1:换词
造词手法可以是换词,相当于X→Y。
例如,把“术语表(Glossary)”换成“通用语言(Ubiquitous Language)”。
换词是比较粗暴的,下面的做法就比较温和。
1.5.3.2 造词手法2:微调
造词手法可以是微调,相当于mX→nX。
微调可以是加减数量,例如,把“六边形架构”的边数减2,得到“四边形架构”。
微调可以是换某个字,例如,把“彩色建模”改成“四色建模”。
1.5.3.3 造词手法3:加前缀
造词手法可以是加前缀,而且可以加不止一个,相当于X→AX、ABX……。
例如,在“愿景”前面加前缀“领域”,得到“领域愿景”;在“事件”前面加前缀“领域”,得到“领域事件”;在“需求”前面加前缀“业务”,得到“业务需求”;在“需求”前面加前缀“用户”,得到“用户需求”。
图1-34是知乎上的一篇阅读量还比较大的DDD(领域驱动设计)文章,先不说“领域模型……反映需求的本质”的说法是错误的,光是看在“需求”前面累计叠加了三个前缀得到的“领域内用户业务需求”就叹为观止了。
图1-34 知乎上的一篇关于领域驱动设计的文章
1.5.3.4 造词手法4:加后缀
造词手法可以是加后缀,而且可以加不止一个,相当于X→XA、XAB……。
例如,在“功能”后面加后缀“架构”,得到“功能架构”;在“功能”后面加后缀“设计”,得到“功能设计”。当然,还可以连起来——“功能架构设计”。
把前缀后缀都利用起来,可以得到“领域用户业务需求功能架构设计”。
显然,在加各种前缀后缀的时候,“发明家”并不真正了解原词和前缀后缀的真正含义,只是为了强调自己对所加前缀后缀的重视——我非常重视领域、业务、用户、架构、设计。
伪创新圈子喜欢用当下的热词作为前缀和后缀,例如现在的“数智化”、“人工智能”等,因为这些热词给了他们造词的理由——××时代都到了,不得整一套新方法啊?
有心的读者可以观察造词圈子的文章,看看有没有类似以下模式的表达:
在[某热词]的时代,[某伪创新]提出[某新词]
在[某热词]的形势下,[某伪创新]提出[某新词]
1.5.4 运作
1.5.4.1 偷梁换柱
步骤如下:
(1)当X比较难时,发明aX,用a来装饰X。a通常是某个带有褒义的形式或仪式。
(2)组圈子互吹互捧aX,把焦点放在a上。
(3)对X畏难的“目标客户”闻风而来,大家热烈讨论a,心照不宣地假装所有人的X已经没有问题。
以“大声建模”为例:
(1)建模比较难,于是发明“大声建模”;
★“大声”是一个形式,这个形式带有褒义:我大声我骄傲,你要是反对“大声建模”,你就是“偷感建模”。不过,以下人士哭晕在厕所:霍金、图灵(口吃)、牛顿+特斯拉+诺贝尔(害怕交际,终身未婚),“大声建模”对他们来说可太难了!
(2)组圈子互吹互捧“大声建模” ,把焦点放在“大声”上。
(3)对建模畏难的“目标客户(软件开发人员)”闻风而来,大家热烈讨论如何“大声”,心照不宣地假装所有人的“建模”已经没有问题。
这样的手法也可以很隐蔽。我们来看“领域驱动设计”,这个看起来不符合我们上面说的aX,别慌,我们这样:
(1)面向对象分析设计比较难,于是把“领域驱动设计”定义为“新一代的面向对象分析设计”;
(2)组圈子互吹互捧“领域驱动设计是新一代的面向对象分析设计” ,把焦点放在“新一代”(或革命性、划时代)上;
(3)对面向对象分析设计畏难的“目标客户(软件开发人员)”闻风而来,大家热烈讨论 “新一代”,心照不宣地假装所有人对“传统的面向对象分析设计”已经熟悉到“见山还是山”,都不屑一谈了。
这样的手法也可以用在其他领域,例如“微笑手术”:
(1)手术很难,于是发明“微笑手术” 。“微笑”是一个形式,这个形式是褒义的,谁能反对“微笑手术”呢?
(2)组圈子互吹互捧“微笑手术” ,把焦点放在“微笑”上。
(3)对手术畏难的“目标客户(医生)”闻风而来,大家热烈讨论如何“微笑”,心照不宣地假装所有人的“手术”已经没有问题——董小姐们的“微笑”可是碾压各位木呆呆医生!
大家可以拿这个思路去观察还有没有类似这种用形式来掩盖内容的“偷梁换柱”。
我以前在文章里也提到过某次“我和小伙伴都惊呆了”的经历:大概是18年前(感慨,今年2025年,已经18年了啊), 一个文科出身的编辑上台大谈敏捷开发一个小时。
没有专门学过计算机科学或软件工程方面的知识(应该没有),也没有从事过软件方面的工作,谈“开发”是谈不来的,但可以谈“敏捷开发”——重点谈“敏捷”嘛,那可太擅长了!
1.5.4.2 染色
“偷梁换柱”是谈a而避谈X,如果这一招不凑效,必须得谈X了,怎么办呢?这时可以用“染色”手法
(待续)