首页 > 其他分享 >05人月神话阅读笔记

05人月神话阅读笔记

时间:2023-05-24 18:24:58浏览次数:28  
标签:项目经理 神话 05 程序 笔记 规模 文档 空间 目标

第9章 削足适履
9.1 程序有多大?除了运行时间以外,它所占据的空间也是主要开销。

当系统设计者认为对用户而言,常驻程序内存的形式比加法器、磁盘等更加有用时,他会将硬件实现中的一部分移到内存上。相反的,其他的做法是非常不负责任的。

由于规模是软件系统产品用户成本中如此大的一个组成部分,开发人员必须设置规模的目标,控制规模,考虑减小规模的方法,就像硬件开发人员会设立元器件数量目标,控制元器件的数量,想出一些减少零件的方法。同任何开销一样,规模本身不是坏事,但不必要的规模是不可取的。

9.2 对项目经理而言,规模控制既是技术工作的一部分,也是管理工作的一部分。

他必须研究用户和他们的应用,以设置将开发系统的规模。接着,把这些系统划分成若干部分,并设定每个部分的规模目标。

首先,仅对核心程序设定规模目标是不够的,必须把所有的方面都编入预算。

在为每个单元设立核心规模的同时,我们没有同时设置访问的目标。

项目规模本身很大,缺乏管理和沟通,以至于每个团队成员认为自己是争取小红花的学生,而不是构建系统软件产品的人员。为了满足目标,每个人都在局部优化自己的程序,很少会有人停下来,考虑一下对客户的整体影响。

9.3 空间预算的多少和控制并不能使程序规模减小,为实现这一目标,它还需要一些创造性和技能。

其中的一个技巧是用功能交换尺寸:

在内存大小一定的情况下进行系统设计时,会出现另外一个基本问题。内存受限的后果是即使最小的功能模块,它的适用范围也难以得到推广。临时空间的尺寸,以及每次磁盘访问的程序数量是很关键的决策,因为性能是规模的非线性函数。

第二个技能是考虑空间——时间的折衷:

对于给定的功能,空间越多,速度越快。这一点在很大的范围内都适用。也正是这一点使空间预算成为可能。

项目经理可以做两件事来帮助他的团队取得良好的空间——时间折衷。一是确保他们在编程技能上得到培训,而不仅仅是依赖他们自己掌握的知识和先前的经验。另外一种方法是认识到编程需要技术积累,需要开发很多公共单元构件库。库中的每个组件需要有两个版本,运行速度较快和短小精炼的。

9.4 精炼、充分和快速的程序,往往是战略性突破的结果,而不仅仅技巧上的提高。这种突破常常是一种新型算法。

更普遍的是,战略上突破常来自于数据或表的重新表达。实际上,数据的表现形式是编程的根本。

第10章 提纲挈领
在一片文件的汪洋中,少数文档形成了关键的枢纽,每件项目管理的工作都围绕着它们运转。它们是经理们的主要个人工具。

10.3 软件项目的文档

做什么:目标。定义了待完成的目标、迫切需要的资源、约束和优先级。

做什么:产品技术说明。以建议书开始,以用户手册和内部文档结束。速度和空间说明是关键的部分。

时间:进度表

资金:预算

地点:工作空间分配

人员:组织图。它与接口说明是相互依存的,如果系统设计能自由地变化,则项目组织架构必须为变化做准备。

10.4 为什么要有正式的文档?

首先,书面记录决策是必要的。

第二,文档能够作为同其他人的沟通渠道。

最后,项目经理的文档可以作为数据基础和检查列表。

只有一小部分管理人员的时间——可能只有20%——用来从自己头脑外部获取信息。其他的工作是沟通:倾听、报告、讲授、规劝、讨论、鼓励。不过,对于基于数据的部分,少数关键的文档是至关重要的,它们可以满足绝大多数需要。

项目经理的任务是制订计划,并根据计划实现。但是只有书面计划是精确和可以沟通的。计划中包括了时间、地点、人物、做什么、资金。这些少量的关键文档封装了一些项目经理的工作。

标签:项目经理,神话,05,程序,笔记,规模,文档,空间,目标
From: https://www.cnblogs.com/yuncannotjava/p/17429161.html

相关文章

  • 04人月神话阅读笔记
    第7章为什么巴比伦塔会失败?7.1巴比伦塔项目的失败是因为缺乏交流,以及交流的结果——组织。他们无法相互交谈,从而无法合作。当合作无法进行时,工作陷入了停顿。7.2因为左手不知道右手在做什么,所以进度灾难、功能的不合理和系统缺陷纷纷出现。随着工作的进行,许多小组慢慢地修改自......
  • 01人月神话阅读笔记
    第1章焦油坑1.1编程系统产品(ProgrammingSystemsProduct)开发的工作量是供个人使用的、独立开发的构件程序的九倍。我估计软件构件产品化引起了3倍工作量,将软件构件整合成完整系统所需要的设计、集成和测试又强加了3倍的工作量,这些高成本的构件在根本上是相互独立的。1.2编程......
  • 02人月神话阅读笔记
    第3章外科手术队伍3.1同样有两年经验而且在受到同样的培训的情况下,优秀的专业程序员的工作效率是较差程序员的十倍。(Sackman、Erikson和Grand)需要协作沟通的人员的数量影响着开发成本,因为成本的主要组成部分是相互的沟通和交流,以及更正沟通不当所引起的不良结果(系统调试)。这一......
  • 03人月神话阅读笔记
    第5章画蛇添足5.1尽早交流和持续沟通能使结构师有较好的成本意识,以及使开发人员获得对设计的信心,并且不会混淆各自的责任分工。面对估算过高的难题,结构师有两个选择:削减设计或者建议成本更低的实现方法——挑战估算的结果。后者是固有的主观感性反应。此时,结构师是在向开发人员......
  • mall学习笔记(6)
    1.@Autowired和@Resource注解的区别@Autowired和@Resource注解的区别和联系(十分详细,不看后悔)_莫小兮丶的博客1.@Autowired注解是Spring提供的,而@Resource注解是J2EE本身提供的2.@Autowird注解默认通过byType方式注入,而@Resource注解默认通过byName方式注入不如先看看这两个......
  • 刷题笔记:Luogu P3956 棋盘
    ProblemSolutionDFS/BFS需要注意去重的时候可以重复走(因为有限定条件),只要新的步数比原来的步数小就可以走,其余情况模拟即可细节有点多,比如需要记录一下上一步的棋盘颜色(下一次搜索传递参数),因为牵扯到使用魔法问题,不能直接染,因为改变地图后后边很多操作都会受影响在列举可能性......
  • C#学习笔记 - using语句
    using语句某些类型的非托管对象有数量限制或很耗费系统资源,在代码使用完他们后,尽快释放他们是很重要的using语句有助于简化这一过程,并确保这些资源被适当的处理(0)资源指实现了System.IDisposable接口的类或结构.IDisposalbe接口中有个Dispose的方法,使用这个方法去处置......
  • 每日打卡1057
    给定一串长度不超过 105 的字符串,本题要求你将其中所有英文字母的序号(字母a-z对应序号1-26,不分大小写)相加,得到整数N,然后再分析一下N的二进制表示中有多少0、多少1。例如给定字符串 PAT(Basic),其字母序号之和为:16+1+20+2+1+19+9+3=71,而71的二进制是1000111,即有3个......
  • 20230524_配置环境
    debhttp://mirrors.aliyun.com/ubuntu/bionicmainrestricteduniversemultiversedeb-srchttp://mirrors.aliyun.com/ubuntu/bionicmainrestricteduniversemultiversedebhttp://mirrors.aliyun.com/ubuntu/bionic-securitymainrestricteduniversemultivers......
  • git指令连接库失败:OpenSSL SSL_read: Connection was reset, errno 10054
    一、问题描述无论是gitclone还是gitpush之类的需要连接库的指令都会出现`fatal:unabletoaccess'http://github.com/我的库/':OpenSSLSSL_read:Connectionwasreset,errno10054`报错原因:字面意思:服务器的SSL证书灭有经过第三方机构的签署。网上信息也有的说可能......