04 ESLint和Dijkstra-评点茹炳晟文章中的一段话
本文要评点的以下这段话,来自茹炳晟老师的文章《从未实现“工程化”的软件工程(写在《AI 时代人月神话》出版之前)》,https://mp.weixin.qq.com/s/S1a_IH-IfYsoF2cHGFgGqw。
和之前的评点一样,我把茹炳晟老师的这段话标了编号,逐一评点。

原文[05]
软件工程的代际传承,是活的知识在活的人群中的流动,不是文件的归档,而是心智的播种。
评点1
贬低“文档”,推崇“心智”,这是敏捷圈子和后来的DDD圈子的大神、大佛们喜欢的格调。
不妨先看看前人的说法——特别是被茹炳晟老师拿来背书的前辈是怎么说的。
Fred Brooks
茹炳晟老师写了一本书,书名借用了《人月神话》,不妨来看看Fred Brooks在《人月神话》里的说法:


注意《人月神话》提到的“含糊不清”。
我经常批评敏捷伪创新、领域驱动设计伪创新。它们为什么受欢迎?就是因为这些伪创新给懒惰无能留下了偷奸耍滑的空间——解释权都在他的“心智”里,怪不得伪创新买家频频喊“受用”、“受用”。
以下截图来自我写的《软件方法》:

大家碰到,可以去仔细观察,凡是喊着受用、受用的,是不是留下了偷奸耍滑的空间。
Edsger W. Dijkstra
茹炳晟老师的文章里也提到了Dijkstra,虽然是张冠李戴,见《04 ESLint和Dijkstra-评点茹炳晟文章中的一段话》。
以下来自Dijkstra的文稿EWD237,A preliminary investigation into Computer Assisted Programming(https://www.cs.utexas.edu/~EWD/transcriptions/EWD02xx/EWD237.html),Dijkstra的说法和Brooks很相似:
Finally, the observation that even in the construction of very small programs the production of its documentation (or should I say "prae-documentation" to drive the message home?) is already a very rewarding excercise.
最后一点观察是:即使在构造非常小的程序时,制作其文档(或者我该说“预文档”以便把这一点讲透?)本身就已经是一项极有回报的活动。
Why is it so hard, at present, to force programmers to make the appropriate prae-documentation? There is a historical reason: they have not been trained to do so. There is a psychological reason: they overestimate their powers and think that they can do without it and experience the making of prae-documentation as an additional burden.
为什么现在如此难以促使程序员制作恰当的预文档?有一个历史原因:他们从未受过这样的训练。有一个心理原因:他们高估了自己的能力,认为自己没有预文档也照样能行,并且把制作预文档视为额外的负担。
In the process of program composition many "small" decisions have to be taken: some of these decisions can be taken in parallel (i.e. independent of each other), other decisions must be taken one after another (i.e. it is the one decision that makes the other relevant). It is certainly the task of the prae-documentation to record the intermediate stages.
在程序组装过程中,必须做出许多“小”决策:其中一些决策可以并行做出(即彼此独立),另一些决策则必须一个接一个地做出(即前一个决策的存在才使后一个决策变得相关)。记录这些中间阶段,无疑是预文档的任务。
Ivar Jacobson
Dijkstra还是说得太委婉了,Ivar Jacobson要直率得多。
在2017年的《Escaping Method Prison(逃离方法监狱)》(https://www.infoq.com/articles/escape-method-prson/)中,Ivar Jacobson和Roly Stimson批评了软件开发的伪创新:方法论的品牌化。采纳某品牌方法论的人就像进入了监狱,该方法论的Guru就是狱卒。
★如果您没意识到“品牌化”的严重性,可以看看另外一个领域的这个:

★敏捷和DDD各种造词,还有近来的FDE,就是造出来的“品牌”。《软件方法》第一章用ABCD清理了各种花里胡哨的造词。
造词和“方法监狱”的问题,不是我这篇文章的重点,感兴趣的同学可以去看Ivar Jacobson的原文,有时间我再另写文章。
在这篇文章中,Ivar Jacobson谈到了隐式方法和方法监狱的关系:
Organizations using a tacit method are generally not aware of the problem with method prisons, even though they are often the most caught in the prison because they can’t explain their method and they consequently can’t easily change it.
使用隐式方法的组织通常意识不到方法监狱的问题,尽管他们往往是被困在监狱中最深的,因为他们无法解释自己的方法,所以要改变它是不容易的。
可以看到,造词和鼓吹“心智传承”是配套使用的。造出花哨的新词是为了断绝和以往知识的联系,剥夺了买家的客观检验标准,只能通过“心诚则灵”来领会。
组织社会学
这不只是软件行业或软件组织的问题。
拒绝成文,以“沟通”为名,强调当面言说和心智感应,是企业宗教化甚至邪教化的特征之一。
因涉及宗教批评等敏感内容,我这里就不列举具体人物和著作了,感兴趣的读者可以自己搜索相关组织社会学资料。
2万+



被折叠的 条评论
为什么被折叠?



