逃离焦油坑的伟大尝试——《人月神话》推荐

2024-03-06 10:32

本文主要是介绍逃离焦油坑的伟大尝试——《人月神话》推荐,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

软件危机中的项目经理的思考

  这段时间读了一些与软件工程专业相关的书,开拓了不少视野,也重新认识了软件工程这个专业。在这些书之中,也包含了被尊为“软件工程圣经”的人月神话。
  《人月神话》的作者 Frederick P. Brooks, Jr. 博士是世界上第一批获得计算机科学博士学位的人之一,曾荣获计算机科学领域最具声望的图灵奖。美国计算机协会(ACM)称赞他“对计算机体系结构、操作系统和软件工程作出了里程碑式的贡献”。
  在1961年年底,当时在计算机领域举足轻重的IBM公司决定进行一个前所未有的尝试——开发 OS/360 系统,这个操作系统要能让所有的软件适用于所有 360 系列的电脑,并让这些电脑享用相同的设备,进行连接,共同工作。
  这些在今天看来理所当然的事,在当时可是闻所未闻,投入到这个项目中的工程师超过2000人(Windows2000也只动用了1700人),花费5亿美元,这些都是创纪录的。
  负责这个艰苦卓绝的开发任务的人,正是 Frederick P. Brooks ,由于从未有开发这种大型软件的经验,开发组陷入了“有史以来最可怕的软件开发泥潭”,最终也没能完全实现当初的设想,即使使用了5000个人年(一个人一年的工作量)。
  这次的任务让Frederick P. Brooks印象深刻,在这之后,他总结了这次任务的经验,写下了《人月神话》。
这里写图片描述
  对于所遭遇的困境,书中使用了一个令人震撼的比喻:一个越是挣扎越难以挣脱的焦油坑,没有任何猛兽足够强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑底。
  为了挣脱这个焦油坑,许多的团队——大型的和小型的,庞杂的和精干的——都为此作出了许多努力,这些努力并不是毫无用处,但他们当中,只有极少数的团队成功地满足了目标、时间进度和预算的要求。
  造就这一状况的原因有多种,而其中最主要的原因是缺乏合理的进度安排:我们对估算技术缺乏有效的研究,而一旦项目出现了滞后现象,第一反应就是向项目中增加人手,但在多数情况下,这样的行动无异于抱薪救火,只会让项目的进度一再拖延,最终影响项目的质量。
  于是作者在书中,提出了不能简单地用“人月”来衡量项目的工作量:1个人花10个月能做完的事情,10个人花一个月未必能做完,正如十个孕妇无论如何也可能在一个月内生下孩子。
  为了解决这些问题,在《人月神话》这本书中,作者结合开发OS/360的经历,及同事的建议,提出了许多颇具洞察力的见解,例如创建精干的外科医生手术团队,建立实验性系统等,其中有许多见解被证明具有重要的实践意义,这也就不难理解,为什么这本书可以畅销数十年经久不衰,乃至被奉为行业内的圣经了。
  作为一名软件工程的学生,我们的目光不应只停留在学校所教的那些技术上面,我们应该通过各种渠道,去全面理解自己正在学习的,将来也可能要从事的行业,只有这样,才能更加清楚现在正在学习的内容的意义,去思考未来的更多可能。

这篇关于逃离焦油坑的伟大尝试——《人月神话》推荐的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/779780

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2

Redis 内存淘汰策略深度解析(最新推荐)

《Redis内存淘汰策略深度解析(最新推荐)》本文详细探讨了Redis的内存淘汰策略、实现原理、适用场景及最佳实践,介绍了八种内存淘汰策略,包括noeviction、LRU、LFU、TTL、Rand... 目录一、 内存淘汰策略概述二、内存淘汰策略详解2.1 ​noeviction(不淘汰)​2.2 ​LR

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

前端 CSS 动态设置样式::class、:style 等技巧(推荐)

《前端CSS动态设置样式::class、:style等技巧(推荐)》:本文主要介绍了Vue.js中动态绑定类名和内联样式的两种方法:对象语法和数组语法,通过对象语法,可以根据条件动态切换类名或样式;通过数组语法,可以同时绑定多个类名或样式,此外,还可以结合计算属性来生成复杂的类名或样式对象,详细内容请阅读本文,希望能对你有所帮助...

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Java中实现订单超时自动取消功能(最新推荐)

《Java中实现订单超时自动取消功能(最新推荐)》本文介绍了Java中实现订单超时自动取消功能的几种方法,包括定时任务、JDK延迟队列、Redis过期监听、Redisson分布式延迟队列、Rocket... 目录1、定时任务2、JDK延迟队列 DelayQueue(1)定义实现Delayed接口的实体类 (

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s