族谱网 头条 人物百科

人月神话

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:579
转发:0
评论:0
内容简介焦油坑跟只为私人使用而单独写出来的组件程序(program)相比,做出软件系统产品(programmingsystemsproduct)所要付出的代价将是九倍以上。估计产品化(productizing)的代价是三倍,若要对组件从事设计、集成、测试,进而凝聚成为一个系统,则代价也是三倍,而且这方面的成本计算基本是独立的。软件开发的另一个难题,是从单一程序到软件系统过程中,所造成复杂度的快速上升,期间并需要包含不同的活动与技能,使得软件开发必须面对多样性的挑战。布鲁克斯最早认识到设计程序、开发软件的差别,他以程序与系统、产品的差异,解释两者之间的不同,并以3×3的复杂度加以说明。人月神话人月神话(英语:Themythicalman-month):这部分讲述人力(man)和时间(month)并不呈现线性关系。指出以大量人员和较短的时间,并不能缩短软件的开发进度。一窝蜂的作业方式无助于软件...

内容简介

焦油坑

跟只为私人使用而单独写出来的组件程序(program)相比,做出软件系统产品(programming systems product)所要付出的代价将是九倍以上。估计产品化(productizing)的代价是三倍,若要对组件从事设计、集成、测试,进而凝聚成为一个系统,则代价也是三倍,而且这方面的成本计算基本是独立的。

软件开发的另一个难题,是从单一程序到软件系统过程中,所造成复杂度的快速上升,期间并需要包含不同的活动与技能,使得软件开发必须面对多样性的挑战。布鲁克斯最早认识到设计程序、开发软件的差别,他以程序与系统、产品的差异,解释两者之间的不同,并以3×3的复杂度加以说明。

人月神话

人月神话(英语:The mythical man-month):这部分讲述人力(man)和时间(month)并不呈现线性关系。指出以大量人员和较短的时间,并不能缩短软件的开发进度。一窝蜂的作业方式无助于软件生产,且会制造麻烦,产生出更差的软件。向进度落后的项目追加人力,只会使进度更加落后。因为新进的人员需要时间了解整个项目,而增加额外的沟通消耗。当有N个人必须在这群人之中进行沟通时(无阶级关系),当N增加,其输出M将抵消其效益,甚至倒退(最后几天所完成的进度,远不如刚开始几天所完成的进度。像是发现了许多错误)。

用“人月”来衡量工作规模的大小是危险的,也是一个容易遭到误解的迷思,使用人月的前提必须是在人力和工时可以互换的情况之下:当一份工作因具有连续性的限制而不可切分时,就算投入再多的人力,也不会对时程有所影响,生小孩就是需要九个月,你叫多少个妈一起生都一样,软件工程就是像这样的工作,因为它必须除错,而除错本身就具有连续性的本质。

人月

人月(英语:man-month)指的是“一个人要花几个月”才能完成软件开发的单位,通常用来评估一件软件项目的大小。以成本会计(cost accounting)为基础的时程预估技术,使我们误把工作量和项目进度混为一谈,人月是个危险并很容易就遭到误解的迷思(myth),因为它假设人力和工时可以互换。

Brooks法则

在一个时程已经落后的软件项目中增加人手,只会让它更加落后。根据Brooks法则,增加人员到一个已经延误的项目里,等于是火上加油。除非你可以把工作区分,让新进人员可在不影响他人工作的状况下有所贡献。

把工作切分给更多人做将造成额外的沟通(communication)代价——训练和相互的交流(intercommunication)。欲增加软件项目的人手,总共必须付出的代价可分为三方面:工作重新切分本身所造成的混乱与额外工作量、新进人员的训练、新增加的相互交流。

外科手术团队

在接受相同的训练、同样都是两年资历的情况下,优秀专业程序员的生产力要比差劲的程序员好上十倍。短小精悍团队是最棒的——尽可能用最少的人。两人团队,其中一人当领导者,这通常是最佳的用人方式。以短小精悍团队开发真正大的系统就太慢了。绝大多数大型软件系统的经验显示,使用一堆人蛮干的方式最耗成本、最慢、最没有效率,做出来的系统在概念上也最不完整。

以一位首席程序员为主、类似于外科手术团队的组织提供了一个良方,既可因少数人的决策而兼顾到产品的整体性,又可因多数人的合作与大幅沟通减少而得到全部人的生产力。

专制、民主与系统设计

在系统设计时,保有概念整体性(conceptual integrity)是最重要的原则。

功能概念复杂度比(这个比值是为了量测使用便利性,对简单和困难的运用都很有效)才是系统设计的最终测试标准。功能多,不见得是好事。

要达成概念整体性,设计必须出自于一个人的想法,或是极少数人的一致决定。

对大型软件项目(小项目也一样)来说,将架构设计独立于实现之外是获取概念整体性强而有利的方法。

如果系统必须保有概念上的整体性,那么就必须有人来控制这些概念,这就是需要专制的原因,无庸置疑。

许多软件架构、实现、实现的工作都是可以同时进行的。(不论硬件或软件设计,都可以同时进行)

第二系统效应

第二系统效应(英语:The second-system effect)就一个人所做过的设计而言,第二个系统是最危险的系统,一般来说,都倾向于过度设计。

当他做第三或之后的系统时,之前的经验会互相印证,以确认出这类系统的一般性特色,而系统彼此之间的不同处,也会帮助他辨别出属于特殊和非通用的部分。除了做些功能上的修饰之外,第二系统效应还有另外一项特征,那就是倾向于将之前已熟悉的技术发挥到淋漓尽致,但却没有留意到,这项技术早就跟目前项目的基本系统假设有冲突而不再适用,OS/360有好多这样的例子。(Windows NT则似乎是1990年代的示例)

对大部分OS/360的设计人员来说,它也是个第二系统,设计成员分别来自1410-7010磁盘操作系统、Stretch操作系统、Project Mercury即时系统、给7090用的IBSYS操作系统等等,几乎没有人拥有两个上述系统的发展经验,所以OS/360可称得上是一个最佳的第二系统效应示例。

意念的传达

巴别塔为什么失败?

沟通

项目工作手册

手册或书面规格是不可或缺的工具,虽然光靠它是不够的。手册载明的是产品的外部(external)规格,用来描述并制定出用户从外观上将或看到的所有细节,撰写手册便是架构设计师的主要工作。当用户和实现人员的反应不断地显示出设计上难以使用或实现之处,手册就会堕入重新准备、修改的轮回之中。为了造福实现人员,将修改的程度予以量化(quantize)是很重要的——在时程上应该要有载明日期的版本信息。

组织

软件需求

失败的软件项目经常发生在开发者与用户间对需求认知的误解。开发者抱怨用户说不清楚需求,而用户抱怨开发者误解他们的意思。布鲁克斯认为“软件开发最困难的单一项目,是精确地决定要建造什么。”

书目

初版

20周年纪念版

二十周年纪念版

增修内容:

将初版中所主张的所有论断整理出一个简洁的摘要,包括了原书的主要理念:就人力配置的比例而言,大型软件项目所面临的是跟小型项目完全不同的管理问题,这引申出产品的概念整体性是其中的关键,而达成概念整体性虽然困难,但却是可能办到的。

作者佛瑞德·布鲁克斯对他当初所提出的这些论断,在经过一个世代之后所做的观察。

转载布鲁克斯1986年发表于IEEE《Computer》的经典论文〈没有银弹〉。

布鲁克斯对于他1986年的论断“十年内不会有任何银弹”所做的回应。

数据源

参考文献

Frederick P. Brooks, Jr.; 译者:钱一一.人月神话:软体专案管理之道. 经济新潮社. 2004年 [2011-04-12]. ISBN 9867889185 (中文(台湾)‎). 

脚注

参见

佛瑞德·布鲁克斯

System/360

没有银弹

软件危机

软件工程

项目管理

外部来源

(繁体中文)人月神话:软件项目管理之道(20周年纪念版)

(简体中文)人月神话(32周年中文纪念版)

(英文)The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)

(英文)Frederick P. Brooks, Jr.个人主页

(英文)Preface to 20th Anniversary Edition, as found on Safari.Informit.com

(英文)Organization and Team Patterns


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱

相关资料

展开
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 卓人月
明末清初仁和(今属浙江)人,字珂月。戏曲作家。明崇祯贡生。善诗文词曲。与孟称舜友善。著有《蟾台集》、《蕊渊集》、《寤歌词》等及杂剧《花舫缘》。
· 唐人月仪帖
《唐人月仪帖》黄麻纸本墨迹,无款,传唐人书,又名《唐人二十月友朋相闻书》。钤有“御府宝绘”“内殿珍玩”“群玉中秘”“明昌御览”“王氏禹卿”“石渠宝笈”“嘉庆御览之宝”等鉴藏印。帖后有明解缙,清王文治等人跋。曾经金明昌内府,宋内府以为清毕源,乾隆,嘉庆,宣统朝内府收藏,原件现藏台北故宫博物馆。《石渠宝笈・三编》有著录。帖为草书,释文为小楷,存草书五十三行,五百四十一字,小楷释文五十四行,五百四十四字。帖分十二月令制为尺牍,前人称为“月仪帖”。此帖文不同于晋索靖《月仪帖》。今缺正月、二月和五月三首。其草书笔势圆劲,擒纵自如,深得晋人风韵,颇似孙过庭草书的风格。草书旁附有楷书释文,字虽小,但飞动变化,不可端倪,宋以后人难有企及者。明解缙跋为唐人书,跋谓:是册“辞古笔精,洞达神妙,中间释字,亦且洒落”。《唐人月仪帖》书势快捷流畅,用笔圆劲甜熟。小楷释文结体秀雅,用笔劲健。书势流美,皆极精工,应出一...
· 人月圆·山中书事
人月圆·山中书事张可久,元代,感慨,历史,抒怀兴亡千古繁华梦,诗眼倦天涯。孔林乔木,吴宫蔓草,楚庙寒鸦。数间茅舍,藏书万卷,投老村家。山中何事?松花酿酒,春水煎茶。译文及注释译文千古以来,兴亡更替就像繁华的春梦一样。诗人用疲倦的眼睛远望着天边。孔子家族墓地中长满乔木,吴国的宫殿如今荒革萋萋,楚庙中。乌鸦飞来飞去。几间茅屋里,藏着万卷书,我回到了老村生活。山中有什么事?用松花酿酒,用春天的河水煮茶。注释人月圆:曲牌名。此词调始于王诜,因其词中“人月圆时”句,取以为名。《中原音韵》入“黄钟宫”。曲者,小令用。有幺篇换头,须连用。诗眼:诗人的洞察力。孔林:指孔丘的墓地,在今山东曲阜。吴宫:指吴国的王宫。也可指三国东吴建业(今南京)故宫。楚庙:指楚国的宗庙。投老:临老,到老。
· 浙江省-杭州卓人月
卓人月(?—?)明末清初仁和(今属浙江)人,字珂月。戏曲作家。明崇祯贡生。善诗文词曲。与孟称舜友善。著有《蟾台集》、《蕊渊集》、《寤歌词》等及杂剧《花舫缘》。
· 人月圆·重冈已隔红尘断
人月圆·重冈已隔红尘断人月圆,金朝,元好问,远山,红尘重冈已隔红尘断,村落更年丰。移居要就,窗中远岫,舍后长松。十年种木,一年种谷,都付儿童。老夫惟有,醒来明月,醉后清风。译文重重叠叠的山峰隔断了繁华喧闹的都市生活,更觉得年丰人寿在我们这个小村落。移居到想要去的人迹罕至之所,那里有窗口可以看到碧绿的山峰,还有屋后茂密的松柏一棵棵。种植那十年成材的树木,耕作那一年收获的谷物,都交给那些年轻人吧。老夫我所要做的,只是清早醒来,欣赏那将落的明月;醉饱之后,充分享受那山间的清风拂面而过。注释人月圆:黄钟调曲牌名。重冈:重重叠叠的山冈。红尘:这里指繁华的社会。要就:要去的地方。远岫:远山。

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信