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

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

相关文章

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

MySql9.1.0安装详细教程(最新推荐)

《MySql9.1.0安装详细教程(最新推荐)》MySQL是一个流行的关系型数据库管理系统,支持多线程和多种数据库连接途径,能够处理上千万条记录的大型数据库,本文介绍MySql9.1.0安装详细教程,... 目录mysql介绍:一、下载 Mysql 安装文件二、Mysql 安装教程三、环境配置1.右击此电脑

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Spring Boot 中整合 MyBatis-Plus详细步骤(最新推荐)

《SpringBoot中整合MyBatis-Plus详细步骤(最新推荐)》本文详细介绍了如何在SpringBoot项目中整合MyBatis-Plus,包括整合步骤、基本CRUD操作、分页查询、批... 目录一、整合步骤1. 创建 Spring Boot 项目2. 配置项目依赖3. 配置数据源4. 创建实体类

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系