这是50年前的一本关于30年前软件开发经验的书——《人月神话》读书笔记

这是50年前的一本关于30年前软件开发经验的书。

布鲁克斯法则

这本书形成了一个以作者的名称命名的法则,参见布鲁克斯法则。其含义是:
这个定律表明,在许多情况下,试图通过增加人力来加速已延期项目的交付,将会使项目交付得更晚。布鲁克斯也明白,这是一种过度简化。但一般的论据是,新资源的时间增加和通信开销,会在短期内使开发速度减慢。而且,许多任务是密不可分的,换句话说,这样可以使更多的资源之间能轻易分配,这也意味着潜在的速度增长也更低。

谚语 九个女人不能在一个月内生一个孩子布鲁克斯法则同出一辙,特别是某些不可分割或者并行的工作。

这是一本来自改革开放之前的书,在软件工程界至今仍有不可撼动的地位,可以称为软件行业的《共产党宣言》,具有极高的指导思想意义。书如其名,本书的多次重印让其价值越来越宝贵,或将是软件工程界的神书。一开始我被这个名字吸引了,在不知道是软件工程方面的书籍的前提下认为这是一本科幻书,读了才知道人月是一个衡量项目任务量的单位。

本书的作者是曾获图灵奖的佛雷德里克·布鲁克斯,美国计算机协会(ACM)称赞他“对计算机体系结构、操作系统和软件工程作出了里程碑式的贡献”。他的一个身份我很感兴趣就是国防科学委员会工作组成员。委员会的作用是作为联邦政府顾问委员会,负责就科学、技术、制造、采办以及其他事务向国防部领导提供独立的意见和建议,确保发现新的技术和新技术的应用,以加强国家安全。总结来说一个字“牛”。

本书的贡献在于编程和项目管理上,在相关领域学习和工作的读者可以开卷吸收。有很多经验,现在拿来还具有指导意义。由于讲解的是人和团队,因此读者不限于专业,均可读。

读后感

我是第一遍读这本书,云里雾里,但是坚持读完了,先有个印象。现在的段位还不能够体会其中之美,看了很多名人评价有的读了四五遍。因此,本书可以重复重复再重复的读,每个阶段对此的理解会不相同。又或者是因为中文翻译的问题,不是原汁原味,书中多处晦涩难懂,有不流畅的体验。

佛雷德里克·布鲁克斯履职事迹

时间段参与工作
早期计算机编程
1956-1963硬件架构
1964OS/360经理

重点语句摘抄

章节号章节名称语句
0序言维持产品自身的概念完整性。
1焦油坑学习编程最难的部分就是将做事的方式向追求完美的方向调整。
2人月神话在众多软件项目中,缺乏合理的进度安排是造成项目滞后的最主要原因,它比其它所有的因素加起来影响还要大。
3外科手术队伍同每个成员截取问题的某个部分的做法相反,由一个人来完成问题的分解,其他人给予其支持,以提高效率和生产力。
4贵族专治、民主政治和系统设计对于大型项目来说,将设计方法、体系结构与具体实现相分离是获得概念完整性强有力的方法 。
4贵族专治、民主政治和系统设计项目经理如何避免开发第二个系统所引起的后果,从而避免画蛇添足?必须坚持拥有至少两个系统以上的开发经验的结构师的决定 。
5画蛇添足项目经理如何避免开发第二个系统所引起的后果,从而避免画蛇添足?必须坚持拥有至少两个系统以上的开发经验的结构师的决定 。
6贯彻执行将定义书写成文字,必须对很多原先并不是非常重要的问题进行判断,并得出结论。
8胸有成竹对常用的编程语言来说,生产率是似乎是固定的;使用高级的编程语言,编程的生产率可以提高5倍。
9削足适履开发人员要有从系统整体出发和面向用户的态度。
10提纲挈领任何管理任务的关注焦点是时间、地点、任务、项目内容和资金。
11未雨绸缪对于一个广泛使用的程序来说。维护总成本通常是开发成本的40%或更多。
12干将莫邪每个骨干人员都仔细地保管自己工作生涯中搜集的一套工具集。
13整体部分关键的部分是产品的定义:细致的功能定义,仔细的规格说明、规范化的功能描述说明以及这些方法的实施,大大减少了系统中必须查找的bug数量。
13整体部分阶段化、定期变更。
14祸起萧墙好的里程碑对团队来说是一项服务。
15另外一面“自文档化”的思想可以得到大规模的应用。
16没有银弹构建专家系统的前提条件是拥有专家。
16没有银弹最重要的工作是寻求培养优秀设计人员的途径。
16没有银弹产品的技术特色最终依赖于设计人员。
17再论“没有银弹”思索的层次越高,所需要处理的基本思考要素也就越多。

软件项目管理任务安排

一般情况下的软件任务时间分配安排比例如下所示,实际上系统测试需要留出1/2的时间来应对。

2022 February March April May June July August September October November December 计划(1/3) 编码(1/6) 构建测试和早期系统测试(1/4) 系统测试(1/4) 软件任务 软件任务安排情况

编程队伍元素组成

元素功能
任务
产品负责人组件队伍、划分工作及制定进度表;与团队外部进行向上的沟通和水平的沟通,建立团队内部的沟通和报告方式;确保进度目标实现,根据环境变化调整资源和团队的架构。
技术主管或结构师构思设计,识别系统子部分,提供设计的一致性和完整性;控制系统的复杂程度。
进度
人力的划分
各部分之间的接口定义

其中产品负责人和技术主管的角色存在三种组合方式。

项目规模组合方式
小(3-6人)合二为一
中、大左(产品负责人)主右辅
右主左辅

培养优秀的设计人员

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追寻上飞

鼓励一下这只勤劳的小蜜蜂吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值