外科医生团队重温人月神话
人月神话
FREDERICK P. BROOKS, JR
1975
焦油坑
程序、产品与系统
编程产品(Programming Product) = 程序(Program)x 3
编程系统(Programming System) = 程序(Program)x 3
编程系统产品(Programming System Product) = 程序(Program)x 9
编程的苦与乐
编程的乐趣:创造;对他人有用;整个过程魔术般的力量;学习的乐趣;纯思维驾驭的介质(盗梦空间)。
编程的苦恼:必须追求完美;对他人的依赖(由他人设定目标、供给资源、提供信息);寻找琐碎的bug;产品在即将完成时可能已趋于陈旧(产品不尽人意)。
人月神话
缺乏合理的时间进度是项目滞后的最主要原因
对估算技术缺乏有效的研究——乐观主义;
估算技术假设人-月可以互换(用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话);
由于对估算缺乏信心,PM通常不会有耐心持续估算——轻视系统测试、空乏的估算;
对进度缺少跟踪和监督;
发生偏差时下意识地增加人力——重复产生的进度灾难。
外科手术队伍
程序员的优和劣
最好和最差程序员的生产率10:1,运行速度和空间5:1。经验和实际的表现没有联系。
得出的结论很简单:如果一个200人的项目中,有25个最能干和最有开发经验的项目经理,那么开除剩下的175名程序员,让项目经理来编程开发。有OS/360的实例。
对于效率和概念的完整性来说,最好由少数干练的人员来设计和开发,而对于大型系统,则需要大量的人手,以使产品能在时间上满足要求。如何调和这两方面的矛盾呢?
Mills的建议:外科手术队伍
大型项目的每一个部分由一个团队解决。
首席程序员(外科医生),副手(外科医生的后备),管理员(辅助外科医生管理事务性工作),编辑(管理文档),两个秘书(管理员和编辑各一个),程序职员(技术记录),工具维护人员,测试人员,语言专家。共10人的团队。
贵族专制、民主政治和系统设计
在系统设计中,概念完整性应该是最重要的考虑因素。也就是说为了反映一系列连贯的设计思路,宁可省略一些不规则的特性和改进,也不提倡独立和无法整合的系统,哪怕它们其实包含着许多很好的设计。
如何获得概念完整性
编程系统(软件)的目的是使???算机更加容易使用。对于给定级别的功能,能用最简洁和直接的方式来指明事情的系统是最好的。简洁和直白来自概念的完整性。每个部分必须反映相同的原理、原则和一致的折衷机制。在语法上,每个部分应使用相同的技巧;在语义上,应具有同样的相似性。因此,易用性实际上需要设计的一致性和概念上的完整性。
评论:上述是来自1975年的观点,或可看作是“易用性”的根源。现在看来,易用性显然不是软件开发质量要求的全部(仅占六个目标的一个)。但是,保持设计的概念完整性和设计表述的简洁和直白,无疑是使设计能够付诸实现的关键因素。因此,这段描述在今天仍然是有广泛现实意义的。
专制和民主
概念的完整性要求设计必须由一个人,或者非常少数互有默契的人员来实现。而进度压力却要求很多人员来开发系统。有两种方法可以解决这种矛盾。第一种是仔细地区分设计方法和具体实现。第二种是组建外科医生式编程开发团队的方法。
对于非常大型的项目,将设计方法、体系结构方面的工作与具体实现相分离是获得概念完整性的强有力方法(360计算机产品线的成功和操作系统的失败)。
画蛇添足
结构师的交互准则和机制
牢记是开发人员承担创造性和发明性的实现责任,所以结构师只能建议,不能支配;
时刻准备着为所指定的说明建议一种实现的方法,同样准备接受其他任何能达到目标的方法;
对上述的建议保持低调和平静;
准备放弃坚持所作的改进建议。
自律——开发第二个系统所带来的后果
在开发第一个系统时,结构师倾向于精炼和简洁。他知道自己对正在进行的任务不够了解,所以他会谨慎仔细地工作。当他着手第三个或第四个系统时,先前的经验会相互验证,得到此类系统通用特性的判断,而且系统之间的差异会帮助他识别出经验中不够通用的部分。注:此处特指操作系统,或者同类系统的设计。作者在此举了Stretch计算机的例子。
第二个系统是设计师们所设计的最危险的系统。一种普遍倾向是过分地设计第二个系统,向系统添加很多修饰功能和想法——画蛇添足。
贯彻执行
他只是坐在那里,嘴里说:“做这个!做那个!”当然,什么都不会发生,光说不做是没有用的。——哈里·杜鲁门,《关于总统的权力》
文档化的规格说明——手册
手册、或者书面规格说明,是一个非常必要的工具,尽管光有文档是不够的。手册是产品的外部规格说明,它描述和规定了用户所见的每一个细节。同样的,它也是结构师主要的工作产物。(后文描述了手册的结构和编制技巧,现在已不在适用)
会议和大会
无需多说,会议是必要
您可能关注的文档
- 党政机关公文格式全部.ppt
- 光幻视与光游戏四级下册综合实践.ppt
- 全区艾滋病诊疗工作情况和要求8.ppt
- 全区艾滋病诊疗工作情况和要求.ppt
- 全国职业院校技能大赛高职组化工仪表自动化赛项规程.doc
- 全球大势与中国机会下分答案.doc
- 全国前家院线背景介绍及经营特色.pptx
- 八十代香港经典电视剧怀旧情结之四:再向虎山行.docx
- 八台山隧道进口端隧道通风方案.doc
- 八台山隧道进口端隧道开挖钻爆设计施工方案.doc
- (2026春新版)部编版八年级语文下册《第一单元》PPT课件.pptx
- 2018电力监控系统网络安全监测装置技术规范.docx
- 2022电力监控系统安全防护方案审核要点.docx
- 2014电力电缆光伏系统EN 50618欧标.docx
- (2026春新版)人教版二年级数学下册《第三单元 万以内数的认识》教案.docx
- (2026春新版)人教版二年级数学下册《第四单元 万以内的加法和减法》教案.docx
- (2026春新版)人教版二年级数学下册《综合与实践 时间在哪里》教案.docx
- (2026春新版)苏教版二年级数学下册《综合与实践 时间有多长》教案 .pdf
- (2026春新版)部编版三年级语文下册第3单元(教案).docx
- (2026春新版)部编版三年级语文下册第8单元(教案).docx
最近下载
- Dräger德图呼吸机Oxylog 3000 plus用户手册.pdf
- 零售业销售数据分析方法与应用.docx VIP
- 会计信息系统:财务篇 教案全套 宋红尔 第1--9章 系统管理---UFO报表.docx
- 个体化音乐干预减轻腹腔镜手术病人术前焦虑的研究.pdf VIP
- 精品解析:黑龙江省哈尔滨市德强高级中学2023-2024学年高一下学期开学验收考试数学试题(解析版).docx VIP
- GB50108–2024《地下工程防水技术规范》.pptx VIP
- 2023年上海初三语文一模试题说明文阅读汇编含答案.doc VIP
- 2025年福建省中考物理试卷(附答案解析).docx VIP
- Specialized English for Medical Imaging Technology医学影像 技术专业英语.pptx VIP
- 改建工程路面结构设计毕业设计.doc VIP
原创力文档

文档评论(0)