【荐读】三读上古遗迹之《人月神话》

        ##昨夜西风凋碧树。独上高楼,望尽天涯路。

        第一次读还是学生的时候,那时候读的很艰难,根本理解不了描述的情况,那时候还是200年,好多人对于这本被好多人奉为圣经的书,没有什么具体的感受,仅仅是感叹软件工程领域真是一个令人费解的、匪夷所思的、充满困惑的世界!!!也确定了自己对于这个世界的向往,那个时候接触的第一门编程语言是HTML。(very interesting)

        ##衣带渐宽终不悔,为伊消得人憔悴。

        第二次读的时候已经在读研快结束的时候,那时候接触了导师带的项目,也学习了软件工程,编写了大量的代码,完成了一些工程项目的实践,回头再看这本书的时候,对于一些理念仍然是云里雾里,但是深刻理解了一些项目管理上的事情,作为乙方参与实施的项目确实接触到了一些非量化数据转成量化数据,用来核算月结工资,那个时候还没有具体的折算概念,但是读这本书的时候确实贴合甲方的好多事情,一些事情理解起来也就没那么困难,但是困惑的事情依然不少,从这本书出书(1975年)到2015年,这四十年的时间,原书中提到的“高级语言、面向对象、可复用的构件”已经成为默认的事实。他们那个时候期许的事情,成了我们这种后来者的起点。接触的项目也是省科、市科、重点单位合作的类型,接触不到所谓“高端局”。也就是造就了读这本书的时候,很难理解好多人对于工程领域内:“没有银弹,没有银弹,没有银弹!!!”,这句话的理解是摸不到头脑的那种……

       ##众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。

        最近一次读是2022年的春节假期,这一次没有认真的通篇去读,但是好多概念好多内容也因为随着年龄、知识、阅历、经历的增长,有了很深刻的共鸣。就像之前好多人不理解的问题、不理解的答案是一个道理,没有经历过书上描述的再深刻,再栩栩如生,再发人深省,依然是隔岸观火,雾里看花般的不通透。转过观念过来,作为软件开发工程师,深度参与一个项目,理解需求,估算工时,开发任务,上线运维,解决bug。好多人在认真的评估、认真的理论、认真的记录、认真的复盘,认真的总结。唯一错过的是认真的去理解软件工程,谷歌的技术代言人Jeff Dean证明了:“七天能做完的工作,普通的小型的开发团队可能需要几个月的时间来完成!”,这其中的差距为什么会这么大的原因就在这里。像极了我在敏捷认知里面谈到的,一定是见仁见智!

想发一些牢骚:(哈哈哈哈哈!!!)

        时代在发展

        现在,计算机领域经过几十年的飞速发展,软硬件都比作者所处的年代有了极大提升。尤其是硬件资源实现了跨数量级的提升,更是诞生了云计算,边缘计算等。包括AI的发展也让很多很多的场景不再是单一需要考虑资源的问题,原书中提到的“高级语言、面向对象、可复用的构件”也已经成为默认的事实。但是不管技术怎么发展,技术仍然是第一生产力,包括最近爆火的ChatGPT也是,所以:

        “在新的时代我们依然面临着新的问题,新的纠结,新的无可奈何!”

        时间未能改变的   

        到现在更快的硬件、更快的网络、更多的计算、更大的存储资源、更优秀的重用库、更完善的框架、更方便的语言、更先进的思想、更新奇的管理模式等等一切较之前无法想象的海量资源,以至于我们能够感觉软件工程领域的种种问题可以迎刃而解,最次也是新的问题来困扰我们了。然而事实上:

  • 我们依然无法准确评估工作量
  • 我们依旧难以进行合理的进度安排
  • 项目落后时,只能被动的延长工作时间或者增加人力。
  • 大量的bug反复出现
  • 开发的软件不能让用户满意,甚至用户仅仅使用软件极少的功能。
  • 大量的软件项目以失败告终。

        这些作者当时描述出来的问题,到了现在仍然无法解决,大量存在,是几十年没有什么发展吗?还是软件工程的根本问题没有有效解决呢?

        “不用妄自菲薄,这些软件项目的问题是普遍存在的,不要对自己的能力产生怀疑”

        “众多前辈已经总结了大量软件项目的问题和解决方案,并且经历了时间的考验。我们应该坚定的学习掌握,同时在实际工作中运用、改善,从而形成行业规则,达成行业共识。这样才能推动软件行业不断发展。”

         唯一不变的就是变化

        软件领域的名言:“唯一不变的就是变化本身”,潜台词就是“其他都会发生变化”。变化意味着不可预料、不可提前准备、准备好的可能徒劳、不可控。 例如:

  • 用户不会在初期提供明确的需求,用户的实际需要和用户的感觉会随着程序的构建、测试和使用而变化;
  • 软件开发和运行过程中的环境不一定一致甚至运行环境本身也在变化;
  • 设计人员在软件开发完成之后才能意识到设计上的缺陷,从而试图在下一个版本中弥补;
  • 团队成员由于各种因素(私人的或者公司的)发生变化,甚至于核心成员发生变化可能直接导致软件推翻重来; 

        “软件的变化是不可避免的,所以软件行业也由“控制变化”转变为“拥抱变化”,既然变化是不可避免的,那么就以最快的速度去响应变化。这不是就会敏捷吗?哈哈哈”

        时间在缓慢流失

        《人月神话》中提到:“一天一天的进度落后比重大灾难更难以识别,不易防范,更加难以弥补”。而在实际的项目过程中,更多的时间是浪费的,某天关键人物请假了,延误一天;某天服务器资源申请没到位,耽误个两三天;某天公司网络出问题了,停格半天;突然的某种会议,全员参与,浪费半天等等,也许你会说加加班就赶回来了,但真的能赶回来吗?这种还只是加班能挽回的吗?

        “慢性的进度偏离绝对是士气杀手”

        直到有一天,项目到了时间,才发现“时间都去哪儿”?甩锅的时候到了!!!

        展望

        在软件工程领域,大师在接近50多年前就提出了高屋建瓴的思想,我们应该看的更远一些。所以在日常的工作中我们要严格要求自己,提高自己的追求,将眼光放长远,有些小小的倡导,与看到此处的屏幕前的共勉:

        总则:小处着手,大处着眼。   

        第一:不要重复出现已知得的缺陷。

        第二:持续不断的学习相关的知识和经验。

        第三:思考和使用合理的解决方案。

        第四:正确认识新的问题和现象。

        第五:努力积累形成属于我们时代特色的思想和经验。

        终身学习!!!吾辈当自强!!!

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

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

相关文章

抗命击杀操作员的美军无人机,LeCun、吴恩达怒斥其炒作!

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>【目标检测和Transformer】交流群 转载自:机器之心 | 编辑:泽南、陈萍 AI 会用「完全出乎意料的策略」来实现目标吗? 图灵奖深度学习三巨头…

Yann LeCun、吴恩达暴怒了,美军无人机抗命击杀操作员

点击上方“AI遇见机器学习”,选择“星标”公众号 第一时间获取价值内容 来源 | 机器之心 ID | almosthuman2014 图灵奖深度学习三巨头都出来站队了,这个星期,人们对 AI 风险的关注前所未有。 本周四,英国皇家航空学会一次未来空…

LLaMA-META发布单卡就能跑的大模型

2023年2月25日,Meta使用2048张A100 GPU,花费21天训练的Transformer大模型LLaMA开源了。 1.4T tokenstakes approximately 21 days 以下是觉得论文中重要的一些要点 1)相对较小的模型也可以获得不错的性能 研究者发现在给定计算能力限制的情…

Python 实时盯盘并在股价突破时通过微信通知(tushare的使用)

新年伊始,国家鼓励居民资产配置像权益类资产转移。首个交易日新发基金一日售罄,大量资金进入二级市场。本韭菜也不甘寂寞,再次进入股市为国接盘。 由于一直盯盘太浪费精力,所以想着通过Python来监控股价波动,并在触发…

2019网络钓鱼邮件翻倍,如何预防鱼叉式钓鱼邮件攻击?

根据微软数据,与网络钓鱼相关的电子邮件百分比,从2018年9月的0.31%上升至2019年9月的0.62%。微软对2018年每月4700亿封电子邮件的分析发现,网络钓鱼信息增加了250%。 如今,鱼叉式网络钓鱼和企业电子邮件泄露(business …

关于钓鱼攻击和防范这些事

本文将从攻击、检测处置和防范三个维度,分别介绍钓鱼攻击方式、钓鱼邮件安全事件运营及防范措施。 1、钓鱼攻击矩阵 1.1 钓鱼攻击概述 利用社会工程学进行攻击,是实战攻击中出现率非常高的手法之一。 使用钓鱼的方式突破边界,也是实战…

[Qt] 基于Tcp协议的聊天室实现(Chat Room 局域网通信)

时间:2016年12月11日 一、写在前面: 平时做图形学的东西多一些,虽然一直对网络编程很感兴趣,但是没有什么机会去尝试一下。最近正好赶上期末的课程实习,然后就参考Qt官方的 Network Programming References&#xff0c…

【C语言】实现简易网络聊天室

项目: 制作一个简易的聊天室,实现实时非单机聊天 知识点: 总体框架: socket() 创造套接字函数: 然后设置 bind() ,调整 IP 参数: 然后设置 listen() : 然后设置 accept() &#…

从一篇防范钓鱼邮件的通知说起

文章目录 1. 网络防骗无小事2. 安全需求很多,怎么办?3. 方案还是有的4. 不仅仅只是好用 1. 网络防骗无小事 网络冲浪一时爽, 网上翻车遭大殃。 网络安全无小事, 时时刻刻记心上。 当今社会,互联网把偌大的地球变成了一个地球村。…

【C++简单项目】基于socket实现的聊天室Chat_Room

一、需求分析 聊天室中如果有人说话,服务器将内容传送给聊天室的其他人。 那么就需要客户端和服务端两个程序,一个人发送一个消息,服务器向所有人发送一遍消息,所有人的客户端接收消息,也就是说客户端负责发送和接受消…

基于TCP的网络聊天室实现(C语言)

基于TCP的网络聊天室实现(C语言) 一、网络聊天室的功能二、网络聊天室的结果展示三、实现思路及流程四、代码及说明1.LinkList.h2.LinkList.c3.client.c4.server.c 一、网络聊天室的功能 有新用户登录,其他在线的用户可以收到登录信息 有用户…

CobaltStrike(钓鱼攻击工具)

一、介绍 1、CobaltStrike是一款渗透测试软件,分为客户端与服务端,可以进行团队分布式操作,服务端:1个,客户端:N个,被业界人称为CS神器。 2、CobaltStrike集成了端口转发、服务扫描,自动化溢出,…

Discord 私信钓鱼手法分析

事件背景 5 月 16 日凌晨,当我在寻找家人的时候,从项目官网的邀请链接加入了官方的 Discord 服务器。在我加入服务器后立刻就有一个"机器人"(Captcha.bot)发来私信要我进行人机验证。这一切看起来相当的合理。我也点击了这个验证链接进行查看。…

154.网络安全渗透测试—[Cobalt Strike系列]—[钓鱼攻击/鱼叉钓鱼]

我认为,无论是学习安全还是从事安全的人多多少少都有些许的情怀和使命感!!! 文章目录 一、钓鱼攻击和鱼叉钓鱼简介1、钓鱼攻击简介2、钓鱼攻击模块:6个3、鱼叉钓鱼简介4、鱼叉钓鱼示例:邮件钓鱼 二、钓鱼攻…

个人年终述职报告PPT怎么做?

适用于职场工作汇报、述职报告、岗位竞聘的PPT模板 这套微粒体风格的述职报告PPT模板采用了立体的几何图形设计,以白色、橙色、深蓝色为主,整体设计简约大气高端。其中还结合了时间轴、流程图、脑图等PPT素材,可以更直观展现工作述职报告的内…

计算机机房防雷接地标准,机房防雷接地规范与防雷接地方式,你知道吗?

雷电的描述 雷电是由天空中云层间的相互高速运动、剧烈磨擦,使高端云层和低端云层带上相反电荷。此时,低端云层在其下面的大地上也感应出大量的异种电荷,形成一个极大的电容,当其场强达到一定强度时,就会产生对地放电&…

地凯模块化机房防雷接地防雷工程设计方案

智能微模块的防雷接地系统由防雷方案和接地方案组成。 防雷方案:智能微模块主要有以下防雷工程方案。 SPD(surge protection device)浪涌保护器的安装符合以下要求:SPD 安装在被保护设备 的前端,SPD 的连接导线应尽可…

防雷工程中防雷等级的意义

在现代社会中,各种电子设备和通信系统已经成为我们生活中不可或缺的一部分。然而,雷击是这些设备和系统的一个常见问题,不仅会导致设备损坏,还可能对人们的生命财产造成威胁。因此,防雷措施变得尤为重要。 为了保护设…

防雷接地的施工工艺与防雷施工方案

雷电是自然界的一种强大而危险的自然现象,经常造成重大财产损失和人员伤亡。为了保护建筑物和人员免受雷电的危害,防雷接地系统的设计和施工至关重要。本文将介绍防雷接地的施工工艺和防雷施工方案,强调专业和符合国家标准的方法,…

防雷知识:什么是雷电浪涌

浪涌是突然发生并超过典型工作电压的过电压。一般来说,浪涌是电路中短暂的电流、电压或功率波。今天我们就来科普一下什么是雷电浪涌。 什么是浪涌? 浪涌,顾名思义,是一种突然发生并超过典型工作电压的过电压。一般来说&#xf…