【人月神话】重新探索人月神话:软件工程的现实与挑战

这篇具有很好参考价值的文章主要介绍了【人月神话】重新探索人月神话:软件工程的现实与挑战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【人月神话】重新探索人月神话:软件工程的现实与挑战,恒川的日常汇报,软件工程,机器学习,嵌入式实时数据库

  人月神话是一篇由美国软件工程师弗雷德里克·布鲁克斯所写的软件工程经典之作,最早发表于1975年。这篇文章的全名是《人月神话:软件工程的神话与现实》(The Mythical Man-Month: Essays on Software Engineering),它涵盖了布鲁克斯在IBM公司参与OS/360操作系统开发过程中的经验和观察
  本书英文版一经面世,即引起业内人士的强烈反响,后译为德、法、日、俄、中、韩等多种文字,成为软件开发和管理人员的必读经典。


📕作者简介:热爱跑步的恒川,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。
📗本文收录于恒川的日常汇报系列,大家有兴趣的可以看一看
📘相关专栏C语言初阶、C语言进阶系列、恒川等,大家有兴趣的可以看一看
📙Python零基础入门系列,Java入门篇系列、docker技术篇系列、Apollo的学习录系列正在发展中,喜欢Python、Java、docker的朋友们可以关注一下哦!

一、读《人月神话》后的感想

  最近读了一本书《人月神话》,这本书是软件工程类的一本经典著作。阅读这本书的第一感受就是感觉这本书不像是一种和学习相关的书,更像是用很多形象的比喻,阐述项目管理当中的一些问题,让读者能够很轻松,明白的去阅读。一般在大学学习计算机行业的时候,都会学习一门叫做软件工程的课程,老师也会跟我们讲一些关于“软件项目开发的完成与增加人员的问题”,在读这本书的时候,这个问题给了我很大的感触。很多人认为,当任务在规定期限内还完成不了的时候,适当的加一些人员进去,可以加快任务的进度,从而能够在规定的时间完成任务。但是这个观点在软件工程当中是不适用的。这也是我在阅读完《人月神话》这本书时最大的感受。这本书的第二章就讲述了人月神话的关系,完成工作的人数和时间是不能进行简单的互换的。因为新加入的人对原有的项目不了解,需要花时间培训,读后感交流,同时新人也有可能对原有的设计有不同的意见,这些都会导致任务的进度大打折扣。“向进度落后的项目中增加人手,只会使进度更加落后”,是这本书作者布鲁克斯得到的结论。我觉得开发一个软件,要有合理的时间进度安排,项目开发的人员少而精,团队开发之前要提前交流,开发的时候要持续的沟通,合理的分配任务工作。所有只有在一个团队沟通了解,通力协作和努力下,才能更好的完善项目。

  在软件领域,很少能有像《人月神话》一样具有深远影响力和畅销不衰的著作。Brooks博士为人们管理复杂项目提供了最具洞察力的见解,既有很多发人深省的观点,又有大量软件工程的实践。读完本书后,感触颇深,书中通过介绍在软件项目开发过程中遇到的一系列问题,以及解决的方法,向IT从业者讲述软件开发过程中需要注意的各种问题。

  我想更仔细地阅读,但我们的项目经验与作者大不相同(下面我会介绍一下作者)。书中的许多概念仍然给我留下了深刻的印象,将来,当我有更丰富的团队作战经验或管理经验时,我可能会有更多的收获。
下面让我们来了解一下作者:
作者简介
  小弗雷德里克·P.布鲁克斯(Frederick P.Brooks,Jr.1931-2022),图灵奖得主、美国国家科学院院士,对计算机体系结构、操作系统和软件工程做出里程碑式贡献的计算机科学家。
【人月神话】重新探索人月神话:软件工程的现实与挑战,恒川的日常汇报,软件工程,机器学习,嵌入式实时数据库

  布鲁克斯博士于20世纪60年代初主持与领导了被称为人类从原子能时代进入信息时代的标志的IBM/360系列计算机的开发工作,取得辉煌成功,被认为是“IBM360系统之父”。布鲁克斯博士创立了北卡罗来纳大学的计算机科学系,并于1965-1985年担任系主任。他还曾任职于美国国家科技局和国防科学技术委员会。

  布鲁克斯博士作为硬件和软件的双重专家和出色的教育家始终活跃在计算机舞台上,因其专业成就和对计算机体系结构的卓越贡献而屡获表彰,包括美国国家技术奖、ACM杰出服务奖、ACM Fellow、ACM Newell奖、IEEE McDowell奖、计算机先驱奖、冯·诺伊曼奖、富兰克林学会鲍尔奖、图灵奖等。
  了解作者之后我又对文章有了更深的感悟。
  接下来,让我们谈谈我在阅读后对软件工程的新理解。

二、软件工程领域的危机

  围绕成本核算的估算技术,混淆了工作量和项目沟通技能的进展。月亮是一个危险和欺骗性的神话,因为它表明人员的数量和时间可以相互替换。
  日夜和程序员在一起bug在顽固的过程中,我们也形成了乐观的心态。自然,我们在时间、成本和人力估计的艺术软件项目中也带来了乐观的色彩。什么是这个乐观的色彩数据库也是我们思维的双刃bug。但现实很骨感,真正的架构师工资软件项目往往面临延迟交付。
  我们常常觉得人多力量大,人人齐心协力,断金。如果是一次性分配,可以自己开始,互不干涉,那么这句话无疑是正确的。只要花在可控成本上,人越多,任务就越快完成。
  但是软件项目在数据库系统若干人员软件中分解任务时会引发额外的工作量——培训和沟通。这都需要时间、金数据库系统的核心是钱和人力的成本。向项目中增派新的人手从三个方面增加了项目必要的总体工作量:任务重新分配本身和所造成的任务中断:培训新人员、额外架构师证书的相沟通技巧和方法互沟通。
作者在书中提到了一个Brooks法则:
增加进度落后的项目人员只会使进度落后。

最后我想再说一下看完后得出的经验和方法

三、实践经验和管理方法

1. 经验

  同样有两年的经验且受到软件商店下载相同培训的情况下,优秀的专数据库设计业程序员的效率是较差的程序员的10倍。
  这促使我们奠定坚实的基础,成为团队不拖软件测试后腿沟通技能和方法程序员,很难想象软件工程专业程序员的工资只有十倍的技能差异,所以雇佣一个优秀的程序员为公司获得九倍的效率,这无疑是建筑师和程序员之间的差异是巨大的回报。

2. 管理方法

  小而有能力的团队是最好的,尽可能少的数据库。但对于真正意义上的大系统来说,小而有能力的团队太慢了。
  那么,对于大型系统来说,软件商店下载有哪些更好的管理方法呢?这是书中一个经典的例子:外科团队。
  对于大多数大型编程系统来说,开发方法成本高、速度慢、软件库效率低,开发的产品无法整合概念。
  所以有一个首席程序架构员,像外科团队团队架构达到了这样的效果——由少数头脑构建完整的产品概念,数据库系统的核心是整体生产率,也完全减少了架构图沟通的工作量。

3. 概念一致性

1)为什么要有概念一致性?
  为了获得概念的完整性,设计必须由一个人或一个有共识的小团队来完成。
无论项目规模如何,都有必要将数据库管理系统的设计和实现分开,这是一种强有力的手段,可以获得完整的概念架构是什么意思。正如我们在软件系统结构课程中学到的重要概念解耦一样,我们将抽象方法包装在单独沟通的重要性类别中,并在具体实现中调用抽象类别,使编程不局限于复杂的实现细节,易于维护和修改,这就是架构师的意义。
  某些规则有利于软件项目的推广。外部沟通的重要性体验部的系统结构规定实际上增强了个人或小团队的创造力,因为他们在编程时有一个统一的边界,不需要花很多时间绞尽脑汁思考和交流软件架构等抽象事务,从而专注于软件的实现,从而提高开发效率,提高软件质量。
2)如何设计概念?
  为了准确性,我们需要正式的设计定义,同样,我的软件工程需要记叙定义来加深理解。
  刚读到这里,我不是很产品批号是生产日期理解正式定义,后来想到离散数学逻辑知识,软件商店下载可能数据库系统的核心是解决所谓的正式应该使用特定的语言规则产品设计表达定义,以软件测试确保数据库的逻辑意义,同时沟通,为了提高可读性,沟通能力辅以叙述性文本,降低沟通成本。

4. 团队组织

1)交流
  因为左手不是软件技术专业知道右手在做什么,导致灾难、不合理的功能和系统缺陷。由于对他人的各种假设,团队成员之间的沟通能力开始出现偏差。
当我第一次加入老师的项目团队时,我负责在前端页面上设置沟通技巧计。然而,由于项目不是很紧急,我在学习新技术方面很懒惰,团队之间的沟通没有数据库系统的核心。因此,在第一个项目节点中,由于缺乏团队沟通,我积累的疑问没有得到解决,幸运的是,当时项目分工明确,我的部分和其他学生暂时不需要对接,但在交流软件库蓝奏云果时有点尴尬。
2)项目工作手册
  项目工作手册不是一个独立的文档,而是组织项目必须生成的一系列文档的结构。
我们需要尽快和仔细地设计如何制作手册的结构,每个产品经理也应该了解所有的材料。
之前有过几次团队合作经验,从最初的校园培训,项目文档——每个人都有自己的一部分,到最后必要的时刻聚集在一起,数据库技术后来使用雀平台管理项目所有文档,从需求分析到数据库设计到接口设计,实时更新在线,使团队减少一些不必要的沟通,提高沟通效率,也减少了文档更新,没有及时通知项目组成员。
3)组织架构
  团队组织的目标是减少必要的沟通和合作。为了减少沟通,组织结构包括人力划分和责任范围限制。
  传统的树软件工程专业组织反映了权力数据库管理系统的原理结构,即不允许双重领导。然而,组织中的沟通是网络的,因此组织结构图中的虚线部分是调整沟通路径,以克服树组织结构中缺乏沟通的困难。
  每个子项目都有两个领导角色——产品负责人、技术总监或架构师。他们是左手和右手,他们的功能非常不同。

5. 沟通能力. 控制软件管家度

  控制大型项目的第一步是指定由里程碑和日期组成的进度表。
里程碑必须是具体的,软件量可以明确定义,这样软件测试,程序员就不能欺骗数据库系统工程师,欺骗里程碑的进展。
  所有成员的产品密钥都必须有评估机制才能通过它了解真实状态。
  评审使我们能够及时关注个人进度、团队沟通技巧和方法团队进度数据库设计的差异。如果有一个计划和控制软件系统小组来维护里程碑报告,这将对项目的及时交付有很大的帮助。

京东购买链接:

京东购买链接:人月神话


  如果这份博客对大家有帮助,希望各位给恒川一个免费的点赞👍作为鼓励,并评论收藏一下,谢谢大家!!!
  制作不易,如果大家有什么疑问或给恒川的意见,欢迎评论区留言。文章来源地址https://www.toymoban.com/news/detail-694707.html

到了这里,关于【人月神话】重新探索人月神话:软件工程的现实与挑战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【软件工程】软件工程期末考试试卷

    瀑布模型把软件生命周期划分为八个阶段 :问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段: 计划阶段、开发阶段和( C) 。   A、详细计划 B、可行性分析  C 、 运行阶段  D、 测试与排错

    2024年02月09日
    浏览(39)
  • 【软件工程】《软件工程》期末复习提纲

    《软件工程》期末复习提纲 第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第十二章 第十三章 第十四章 小题参考 大题参考 1.在下列选项中,( )不是软件的特征。 A.系统性与复制性         B.可靠性与一致性 C.抽象性与智能性  

    2024年01月17日
    浏览(35)
  • 【软件工程】山东大学软件工程复习提纲

    涵盖所有考点,复习绝对高效,点赞+留邮箱获取pdf版本 本提纲可以完全摘抄,考试命中率100%,先上考试带的A4纸: 1. 软件工程三要素 方法:为软件开发提供了“如何做 ”的技术,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计等; 工具:为软件工

    2024年02月13日
    浏览(31)
  • 【软件工程】软件工程期末考试复习题

    软件工程期末考试试题及参考答案 一、单向选择题 1、软件的发展经历了(D)个发展阶段。 一 二 三 四 2、需求分析的任务不包括(B)。 问题分析 系统设计 需求描述 需求评审。 3、一个软件的宽度是指其控制的(C)。 模块数 层数 跨度 厚度 4、当模块中包含复杂的条件组

    2024年02月10日
    浏览(39)
  • 【软件工程】为什么要选择软件工程专业?

    个人主页:【😊个人主页】 软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。就当下主流趋势来看,其有着无限的未来。接下来我将以六个方面来谈谈我对软件工程专业的看法: 软件工程是一门研究用工程化方法构建和维护有效、实用和高质

    2023年04月19日
    浏览(36)
  • 【软件工程】自动化测试保证卓越软件工程能力(3)

    对照目标系统,如下:  给出自动化测试平台目标如下: Case level Case brief Report send to OVERALL User 1 - Process - Customer 1 Boss Level 1 User 1 - Process - Customer 1 User 1 - Process - Customer  2 User  2  - Process - Customer 1 ... Manager, Some users, Developers, Testers Level 2 User 1 - Igeress - Process - Router - Sender 1

    2024年02月04日
    浏览(46)
  • 经典软件工程复兴?大模型驱动的软件工程实践标准化

    简单来说,本文探讨了大模型驱动的软件工程实践标准化,以及如何将需求和设计规范化为 DSL 格式。通过这种方式,可以让 AI 更自动化、高效地编写代码。 随着大语言模型在软件开发中的应用越来越广泛,传统的软件工程实践开始被重新关注和提及。在诸如于编写清晰的文

    2024年02月12日
    浏览(30)
  • 【软件工程】软件测试

    软件=程序+文档 测试对象:各个阶段产生的源程序和文档。 基于不同的立场,对软件测试的目的存在着两种完全对立的观点。 (1)一种观点是通过测试暴露出软件中所包含的故障和缺陷(从用户的角度); (2)另一种是希望测试成为表明软件产品中不存在错误的过程,验证该

    2024年02月13日
    浏览(47)
  • 软件与软件工程

    软件的概念以及特点: 软件是计算机系统中不可或缺的一部分,与硬件共同构成特定的系统功能。 人们通常把各种不同功能的程序,包括系统程序、应用程序、用户自己编写的程序等称为软件 软件的概念: 软件不仅包括程序,还包括程序的处理对象——数据,以及与程序开

    2024年02月11日
    浏览(34)
  • 软件测试03:软件工程和软件生命周期

    软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。 基本软件危机对于计算机发展的阻碍,1968年,在联邦德国召开的国际会议,北大西洋公约组织的计算机科学家讨论软件危机问题。提出了 软

    2024年02月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包