《人月神话》学习笔记
《人月神话》学习笔记
码农小飞飞
在手游开发的路上越走越远!
展开
-
第15章 另外一面
1.对于软件编程产品来说,程序向用户所呈现的面貌-文档,与提供给机器识别的内容同样重要。2.即使是完全开发给自己使用的程序,描述性文字也是必需的,因为它们会被用户-作者所遗忘。3.培训和管理人员基本上没有向编程人员成功地灌输对待文档的积极态度-文档能在整个生命周期对克服懒惰和进度的压力起促进和激励作用。4.这样的失败并不都是因为缺乏热情或者说服力,而是没能正确地展示如何有效和经济地编制...原创 2019-05-28 15:41:26 · 85 阅读 · 0 评论 -
第14章 祸起萧墙
PERT(Program/Project Evaluation and Review Technique)即计划评审技术,简单地说,PERT是利用网络分析制定计划以及对计划予以评价的技术。它能协调整个计划的各道工序,合理安排人力、物力、时间、资金,加速计划的完成。在现代计划的编制和分析手段上,PERT被广泛地使用,是现代项目管理的重要手段和方法。1.“项目是怎样被延迟了整整一年时间的--一次一...原创 2019-05-28 11:44:05 · 122 阅读 · 0 评论 -
第13章 整体部分
1.第4、5、6章所意味的煞费苦心、详尽体系结构工作不但使产品更加易于使用,而且使开发更容易进行切bug更不容易产生。2.“许许多多的失败完全源于那些产品未精确定义的地方。”3.在编写任何代码之前,规格说明必须提交给外部测试小组,以详细地检查说明的完整性和明确性。开发人员自己无法完成这项工作。4.“自上而下地进行设计(逐步细化)将会是最重要的新型形式化软件开发方法。”5.在每个步骤...原创 2019-05-28 10:50:12 · 74 阅读 · 0 评论 -
第12章 干将莫邪
1.项目经理应该制定一套策略,并为通用工具的开发分配资源;与此同时,他还必须意识到专业工具的需求。2.同天文工作者一样,大部分系统调试工作总是在夜间完成。3.抛开理论不谈,一次分配给某个小组的连续的目标时间块被证明是最好的安排方法,比不同小组的穿插使用更为有效。4.主程序库应该被划分成:(1)一系列独立的私有开发库;(2)正处在系统测试下的系统集成子库;(3)发布版本。正式的分离和进度...原创 2019-05-27 18:04:21 · 173 阅读 · 0 评论 -
第11章 未雨绸缪
1.化学工程师已经认识到无法一步将实验室工作台上的反应过程移到工厂中,需要一个实验性工厂来为提高产量和在缺乏保护的环境下运作提供宝贵经验。2.对于编程产品而言,这样的中间步骤同样是必要的,但是软件工程师在着手发布产品之前,却并不会常规的进行实验性系统的现场测试。3.第一个开发的系统对于大多数项目并不合用。它可能太慢、太大,而且难以使用,或者三者兼而有之。4.系统的丢弃和重新设计可以一步...原创 2019-05-27 16:26:01 · 183 阅读 · 0 评论 -
第十章 提纲挈领
1.“前提:在一片文件的汪洋中,少数文档成为了关键的枢纽,每个项目管理的工作围绕着他们运转。它们是经理们的主要个人工具。”2.对于软件项目,关键文档是:目标、用户手册、内部文档、进度、预算、组织结构图和工作空间分配。3.因此,即使是小型项目,项目经理也应该在项目早期对上述的一系列文档进行规范化。4.以上集合中每一个文档的准备工作都将注意力集中在思索和对讨论的提炼上,而书写这项活动需要上...原创 2019-05-27 14:44:59 · 108 阅读 · 0 评论 -
第九章 削足适履
1.除了运行时间以外,程序所占据的内存空间也是主要开销。特别是对于操作系统,它的很多程序是永久驻留在内存中的。2.即便如此,花费在驻留程序所占据内存上的金钱仍是物有所值的,比其他任何在配置上投资的效果都要好。规模本身不是坏事,但不必要的规模是不可取的。3.软件开发人员必须设立规模目标,控制规模,发明一些减少规模的方法。4.规模预算不仅仅在占据内存方面是明确的,同时还应该指明程序对磁盘的...原创 2019-05-27 11:25:31 · 125 阅读 · 0 评论 -
第八章 胸有成竹
1.仅仅通过对编码部分时间得估计,然后乘以其他部分的相对系数,是无法得出对整项工作的精确估计的。2.构件独立小型程序的数据不适用于编程系统项目。3.程序开发随程序规模的大量增长而增长。4.相对于其他活动,全职程序员仅将50%的时间用于编程和调试。5.生产率是系统各个部分交互的函数。6.当使用适当的高级语言时,程序编制的生产率可以提高5倍。...原创 2019-05-27 10:57:55 · 216 阅读 · 0 评论 -
第七章 问什么巴比伦塔会失败
1.巴比伦塔项目的失败是因为缺乏交流以及交流的结构-组织。交流2.“因为左手不知道右手在做什么,从而进度灾难、功能的不合理和系统缺陷纷纷出现。”由于存在对其他人的各种假设,团队成员之间的理解开始出现偏差。3.团队应该以尽可能多的方式进行相互之间的交流:非正式的进行简要技术陈述的常规项目会议,共享的正式项目工作手册[以及通过电子邮件]。项目工作手册4.项目工作手册“不是独立的一篇...原创 2019-05-24 15:12:46 · 1182 阅读 · 0 评论 -
第六章 贯彻执行
1.即使是大型的设计团队,设计结果也必须由一个或者两个人来完成,以确保这些决定是一致的。2.必须明确定义体系结构中与先前定义不同的地方,重新定义的详细程度应该与原先的说明一致。3.出于精确性的考虑,我们需要形式化的设计定义。同样,我们需要记叙性定义来加深理解。4.必须采用形式化定义和记叙性定义的一种作为标准,另一种作为辅助措施;他们都可以作为表达的标准。5.设计实现,包括模拟仿真,...原创 2019-05-24 14:40:47 · 149 阅读 · 0 评论 -
第五章 画蛇添足
1.尽早交流和持续沟通能使结构师有较好的成本意识,使开发人员获得对设计的信心,并且不会混淆各自的责任分工。2.结构师如何成功的影响实现:(1)牢记是开发人员承担创造性的实现责任;结构师只能提出建议。(2)时刻准备着为所指定的说明建议一种实现的方法,准备接受任何其他可行的方法。(3)对上述建议保持低调和平静。(4)准备对所建议的改进放弃坚持。(5)听取开发人员在体系结构上改进...原创 2019-05-24 11:14:59 · 113 阅读 · 0 评论 -
第四章 贵族专制、民主政治和系统设计
1.“概念完整性是系统设计中最重要的考虑因素。”2.“功能与理解上的复杂程度的比值才是系统设计的最终测试标准”,而不仅仅是丰富的功能。3.为了获得概念完整性,设计必须由一个人或者具有共识的小型团队完成。4.“对于非常大型的项目,将体系结构方面的工作与具体实现相分离是获得概念完整性的强有力方法。”(其同样适用于小型项目。)5.“如果要得到系统概念上的完整性,就必须有人控制这些概念。这...原创 2019-05-24 11:03:04 · 199 阅读 · 0 评论 -
第三章 外科手术队伍
1.同样有两年经验且在受到同样培训的情况下,优秀的专业程序员的生产率是较差的程序员的10倍。2.经验和实际表现之间没有相互联系,我怀疑这种现象是否普遍成立。3.小型、精干队伍是最好的-思绪尽可能少。4.两个人的团队,其中一个是领导者,常常是最佳的人员使用方法。5.对于真正意义上的大型系统,小型精干的队伍太慢了。6.实际上,绝大多数大型编程系统的经验显示,一拥而上的开发方法是高成...原创 2019-05-24 10:51:28 · 158 阅读 · 0 评论 -
第二章 人月神话
1.缺乏合理的时间进度是造成项目滞后的最主要原因,它比其他所有因素的总和影响还大。2.良好的烹饪需要时间,某些任务无法在不损害结果的情况下加快速度。3.所有的编程人员都是乐观主义者:“一切都将运行良好”。4.由于编程人员通过纯粹的思维活动来开发,我们期待在实现过程中不会碰到困难。5.但是,我们的构思本身是有缺陷的因此总会有bug。6.围绕着成本核算的估计技术,混淆了工作量和项目...原创 2019-05-23 16:47:42 · 170 阅读 · 0 评论 -
第一章 焦油坑
1.编程系统产品(Programming Systems Product)开发的工作量是供个人使用的、独立开发的构件程序的9倍。我估计软件构件产品化引起了3倍工作量,将软件构件合成完整系统所需要的设计、集成和测试又加强了3倍的工作量,这些高成本的构件在根本上是相互独立的。2.编程行业“满足我们内心深处的创造渴望和愉悦所有人的共有情感”,其提供了5中乐趣:(1)创建事务的快乐。(2)开发...原创 2019-05-23 16:25:11 · 141 阅读 · 0 评论