人月神话阅读笔记03
本次阅读了该书最后几章,我发现《人月神话》只是顺便讲讲软件而已,大部分内容全是关于团队,人类历史是一个舞台,总是上演着相同的故事。随着文化的发展,这些故事的剧本变化非常缓慢,而舞台的布局却在随时改变。正是如此,我们发现二十世纪本身会反映在莎士比亚、荷马的作品和圣经中。因此,某种程度上,《人月神话》是关于人与团队的书,所以它的淘汰过程会是缓慢的。
我想这也是《人月神话》这本书的成功之处吧。我渐渐开始思考一个问题,到底什么是人月神话?或许答案是:一个程序让vczh一年刚好可以写出来,但是你如果找到了12个vczh同时写,一个月肯定是写不出来的。人和月是两个单位,人月自然是它们相乘了,神话的意思就是说,这两个量是不能乘的。12个他可能会为了选方案吵起来,这样就需要多于一年的时间才能写完。也可能谁都不服谁跑去单干各自用一年做出12个来。这对我有了极大启发。
最后想谈一下本书极为重要的一个观点:概念完整性。一个整洁、优雅的编程产品必须向它的每个用户提供一个条理分明的概念模型,这个模型描述了应用、实现应用的方法以及用来指明操作和各种参数的用户界面使用策略,。用户所感受到的产品概念完整性是易用性中最重要的因素。(当然还有其他因素。Macintosh 上所有应用程序界面的统一就是一个重要的例子。此外,有可能建立统一的接口,尽管它可能很粗糙,就像 MS-DOS。)
有很多由一个或者两个人设计的优秀软件产品例子。大多数纯智力作品,像书籍、音- 154 - 乐等都是采用这种方式创作出来的。不过,很多产业的产品开发过程无法负担这种获取概念完整性的直接方法。竞争带来了压力,很多现代工艺的最终产品是非常复杂的,它们的设计需要很多人月的工作量。软件产品十分复杂,在进度上的竞争也异常激烈。
任何规模很大或者非常紧急,并需要很多人力的项目,都会碰到一个特别的困难:必须由很多人来设计,但与此同时,还需要在概念上保持与单个使用人员的一致。如何组织设计队伍来获得上述的概念一致性?这是《人月神话》关注的主要问题。其中一点:由于参与人数的不同,大型编程项目的管理与小型项目在性质上都不同。为了获得一致性,经过深思熟虑的,有时甚至是英勇的管理活动是完全必要的。