dram.me

软件工程和计划

补遗

  1. 赫希曼“可能主义”的一个体现是:抓住计划之外的可能性。就像一开始想做Pascal代码格式化工具,之后想到JSON的格式化工具,进而想到JSON的解析和序列化工具。只要思路是清晰明确的,那么目标的变更甚至反复都是正常的现象,要勇于承认过去的错误或缺陷,勇于拥抱未来。—— 2017-01-29

  2. 布鲁克斯在《人月神话》第二章有讨论程序设计人员的乐观主义,《设计原本》第一部分有讨论各类设计模型。—— 2017-02-13

这两天趁着过年在家,带回来《入世哲学家——阿尔伯特·赫希曼的奥德赛之旅》看看,虽然只翻看了序及第一章的部分内容,但也引发了一些思考。

在韦森的序中,提到赫希曼关于经济学家“理性自负”问题的讨论:“经济学家无法免俗,同样受困于普遍的‘权力欲望’,因此往往不‘承认他自己的能力也是有限度的’。由此所导致的一个结果是,经济学家们产生了‘一种错觉:利用作为一门科学的经济学,就可以为不发达国家绘就详尽的发展蓝图’。”(序中韦森引语)

这让我想到布鲁克斯曾提到过的软件工程师过于自信的问题,比如传统的瀑布模型就假设每一阶段都是完美的(该观点在《人月神话》或者《设计原本》中提及,现在书不在手边,随后在补遗中再对原话进行引用)。

在序中,韦森多次提及哈耶克,哈耶克也多有类似的表述,赫希曼部分思想也是直接受到哈耶克的影响。

那么如何在软件开发过程中规避甚至于解决这一问题呢?布鲁克斯给出的答案是承认计划的不完美性,转而应用类似“螺旋模型”这样的反复迭代机制引导软件开发流程。而赫希曼提倡“将注意力集中到可能的路径、奇特的事物、异常的现象以及突发的和意外的后果”的主张(序中韦森引语),在软件工程中是否也可以得到应用?