软件开发世界里的荒谬和错误,你中枪了吗?
发表时间:2023-10-15 16:01:11
文章来源:炫佑科技
浏览次数:188
菏泽炫佑科技
软件开发世界里的荒谬和错误,你中枪了吗?
我原本打算以第三人称来写这篇文章,希望能够客观地描述我在过去三十年里所目睹的软件开发行业的变化。 然而,我写到一半就改变了主意,所以我会在这篇文章中讲述我的个人经历,然后简要分析一下导致当今软件开发世界中许多荒谬和错误的因素。
对于年轻的开发者
很多人正值风华正茂,从未见过软件开发的美好时光,所以他们不明白我是多么怀念过去美好的工作环境。 他们不了解能够在不受干扰的环境中工作的重要性。 多么关键啊。 就像我的一些越南学生一样,他们在十几岁的时候从未听说过披头士乐队,也不明白为什么我们视这支乐队为瑰宝。 如果你二三十岁没有见过软件公司的员工经常被各种方式强奸,你可能无法想象如果你的谈话被打断,你长时间无法集中精力工作会是什么样子。时间。 我想你应该试着想象一下。
我想让人们重新认识到这一点。 我不关心敏捷、Scrum 或极限编程,它们只是愚蠢的时尚软件开发世界里的荒谬和错误,你中枪了吗?,分散了对问题的注意力,所以它们根本不能解决问题。 毫不夸张地说,微软早期的出色表现正是因为他们建立了一种不打断别人注意力的企业文化,而这种出色表现消失的直接原因是他们放弃了这种意识。
本文参考《Flow: The of》。 如果你想了解学术研究成果,可以阅读这本书。
早期经历
自 1988 年以来,我一直以编写软件为生。一年后,我去了微软。 我在一个人的办公室里工作,很少受到干扰,但那是我在微软获得这种殊荣的*后一年。 回想起那一刻真是令人惊奇:我们就像王子一样,我们比以往任何时候都更有生产力。 公司围绕 Flow 建立了一种文化,让我们能够融入并留在那里,因为这就是我们*好的工作方式。
“流”有什么厉害之处
尽管他们在我加入微软之前不久就进行了首次公开募股,但公司真正的变化是从 1990 年 5 月 3.0 的发布开始的。我们的工作环境一夜之间发生了巨大的变化:我开始与一个烟鬼共用一间办公室,他一直在打电话大声说话。一整天。 与此同时,我们的会议也越来越多。
从 1989 年到 2009 年,我在微软工作,几乎一半是全职,一半是承包商,但事情每况愈下,*终在 Vista 项目中达到了顶峰。
大跌
我一生中从未如此疲惫或压力过。 我们就像奴隶一样,每周工作 70 多个小时,但幸运的话只能完成 4-6 个小时的实际工作。 剩下的时间都花在与充满未完成或低质量功能的代码管理系统作斗争上。
2009年,一切都处于混乱之中。 对质量的热爱完全被机械化的检查方法所取代,有几次我陷入了绝望的困境。 这在 1989 年是不可能发生的,当时严谨是*高的美德。 我为 Media DRM 准备的威胁模型有 20 页长,充满了漏洞和缓解措施,但他们要求只有 1-2 页长,因为每个漏洞都需要审查和解决。
卓越已经消失、死亡、被埋葬。 2008 年末,在我的经理要求我在应用程序外部编写蹩脚代码以便他们可以对其运行单元测试(只是为了证明该项目“有单元测试”)后,我决定跳槽。 当他告诉我一个叫做测试驱动开发的新事物时,我决定更新我的简历并离开。 可惜我没有立即采取行动。 没想到后面还会发生更糟糕的事情。 当他们要求我进行结对编程时,我退出了。
十年前:敏捷
我在西雅图市中心的皇马工作过。 交通是西雅图的一个大问题,似乎很多人的人生使命就是造成交通堵塞。 不过,由于我一般是9点30分出发,早高峰已经过去,路程只需要30分钟,所以还不错。
后来,我们团队开始尝试一个新的东西,叫做“敏捷”。 对我来说,这意味着我必须参加 8:30 举行的“清晨站立会议”,因此我需要提前 90 分钟到达办公室。 这意味着我必须在早高峰时段上路,30分钟的路程现在变成了90分钟,我每次都迟到,而且筋疲力尽。 我问他们是否可以推迟会议。 他们说,不,这是一个清晨的站立会议。 (不过,我们没有站起来)。
会议本身也非常荒谬。 会议中几乎每个开发人员都会说他正在继续昨天的工作,偶尔也会提到他已经开始了一些新的工作,目前还没有任何进展。
项目经理的表现更差。 他看上去总是精神抖擞,声音开朗开朗,听起来像是“忙得很”软件开发,但其实我知道,他们大部分时间都在网上玩游戏。 我不断听到他们提到“故事”,然后我意识到这不是我们要发布的特定游戏。 请告诉我,“故事”到底是什么意思?
后来我发现“故事”就是我们所说的用户场景、用例。 我对敏捷了解得越深入,遇到的新术语就越多,但到目前为止我还没有看到太多的附加价值。 不过,还有更多的会议。
我抗议“故事”。 这个词感觉很幼稚,就像强迫收银员穿着可笑的服装进行销售或庆祝节日一样。 他们告诉我,就像会议一样,“故事”是敏捷的一部分,我们需要遵循这些规则。 不过,我觉得“Scrum”只是报告进度,为什么我们不能像过去20年那样直接通过电子邮件报告呢?
就因为这些无意义的原因,我需要在上下班路上多花一个小时(无薪)。 多么无所畏惧的新世界啊。
独立工作
2010年,我两次去越南看新房。 **次去那里还在施工,第二次去的时候住了三个星期。 在我与皇马多次续约的过程中,我的一半同事被解雇了,但*终我的合同结束了,我很长一段时间以来*愉快的工作时光也结束了。 我和大家相处融洽,取得了一些大成就,公司里唯一不和我一起工作的混蛋就被裁员了。
我在越南的家
我打算2019年退休的时候搬家,每次想到枯燥的白板面试和一系列高压的工作,我就感到不舒服。 我真的很享受在美丽的新家的生活,所以我决定收拾行李离开。 我于2010年11月15日离开美国,计划在20岁的时候生活在56退休,弹吉他,读物理书籍,生活在一个非常陌生的语言环境中,放松一下。
后来我学会了说越南语,不然我会很无聊。 我是一个不安分的人。
一位朋友建议我学习用iPad编程,这些工具是免费的,我很怀念编程。 所以,我买了它,学习了 iOS、C 和 XCode,并快速构建了一个应用程序。 我再次回到了软件开发的世界。
从 2011 年到 2016 年,我首先为自己编写 iOS 和 MacOS 应用程序,后来又为客户编写。 虽然这很棒,但我想赚更多钱,所以我找到了一家自由职业机构。 2017年,我得到了在加州一家公司从事服务器端工作的机会。 我学习了 C#、实体框架和 ASP.NET。 后来推荐我的朋友离开了公司,所以我接手了服务器和数据库。 这份工作持续了30个月,是一次愉快的经历,在那里我学到了一些*新的技术。 我喜欢服务器和数据库。
这段时间我一直一个人工作。 我所在的团队包括一位居住在悉尼的浏览器开发人员和我居住在越南的团队。 我们需要合作开发 REST API,但我们都是独立工作的。
令人困惑的当今世界
这份工作于去年八月结束,我发现找到远程工作很容易。 我的独立性和愿意承担责任都是优秀的品质。
然而,我发现软件行业发生了巨大的变化。
术语和时尚
“故事”只是一个开始。 在我之前的工作中,我有两位开发主管,他们在讲话时喜欢使用一长串的行话。 除了争论中常用的“行业标准”等术语外,还有一个事实是“技术债务”实际上只是“未完成的工作”的委婉说法。 “分支清理”的实际含义是对Git分支上积累的提交记录做无用的工作。
如今,该行业充斥着行话。 “敏捷”无处不在,每个人对它的理解也不同。 “重构”也是如此,尽管我认为它只是“编辑”的同义词。 “冲刺”是一个小小的里程碑,带有加班的内涵,但并没有什么新鲜感。
我们曾经谈论用户故事、积压工作和编辑,只要我还在这个行业,这些旧术语就对我很有用。 小里程碑并不是革命性的。 加班的事就不用我多说了。
如果我必须参加冲刺回顾(“花 4 个小时讨论我们刚刚学到的有关团队合作的知识”),我会发疯的。
除此之外,还有很多其他会议,没有什么新鲜事。
独立又自负
这是一个令人不寒而栗的想法:虽然我可以自己管理大型项目,但我不是一个伟大的开发人员,我们是自私的暴君,我们*终会被降职或解雇。 这都是关于团队合作的:一起工作、在办公时间一起玩游戏、站在桌子上端着一杯酒为团队加油、结对编程等等。
这就像身处地狱的*深处。
奇怪的是,招聘广告似乎仍然青睐那些能够独立工作、不需要监督并且积极性很高的开发人员。 也许有人需要告诉他们,这样的开发者不好,他们应该聘请一个可以像连体双胞胎一样工作的团队。
流结束
开放式办公室实际上毫无用处; 协作编程意味着不断的沟通,没有人能坐得舒服,过程的目的是代码审查,但实际上完全不可能集中注意力。 谈话不断,我们不能关上门保持沉默和专注,戴耳机意味着你不能作为一个团队合作。
心流创造了昔日的辉煌,但它已经离我们很远了,现在平庸成了所能达到的*高标准。
开发让位于测试
这可能是软件开发领域*奇怪的变化。
诚然,我们过去没有认真对待测试。 微软经常开玩笑说,没有人应该使用版本号为偶数的软件,因为它们正在等待用户报告错误。 请不要使用 2.0 版本,因为 2.1 版本将修复客户报告的所有错误,至少是那些值得修复的错误。
我笑不出来。
我认为,在“测试驱动开发”的荒谬方法的刺激下,我们今天反应过度了。
测试驱动开发是这个错误的根源。
许多在线讨论说,软件中没有比单元测试更重要的工作,单元测试比可交付成果本身更重要,文档已经过时,单元测试是设计文档,单元测试定义了 API ; 根据完整的测试设计和编写太不充分了。 在实现之前根据猜测编写测试是很流行的。 低于100%的覆盖率属于玩忽职守。 100%的覆盖率就是荣耀。 开发人员应全权负责测试他们的产品。 我们不需要它。 通过黑盒测试,您不需要找其他人再看一遍。
我根本不需要指出这些态度的偏执。
有经验的人都能看出*后一种说法的荒谬之处。 在编写测试和编写代码时,我们都会有盲点、被忽视的情况以及肯定会错过的情况。 这是人性,也不难理解。
永远不要再去上班
我喜欢编写软件。 我喜欢解决问题和开发功能。 自从我在 1984 年编写了一个生成素数列表的 GW-BASIC 程序以来我就喜欢上了编程,自从我在 1967 年用汇编语言编写了一个程序以来我就喜欢上了编程。而这个爱好现在已经成为我的职业。
然而,这些时代是疯狂的。 我无法在开放式办公室工作,无法忍受周围有人滔滔不绝地讲行话,同时还必须应对强制合规、无休止的会议以及对单独工作的人的嘲笑。 我希望这个行业能够回到 1990 年,那时人们受到重视并被鼓励专注于自己的工作。
我喜欢从事服务开发工作,并希望再次找到这种类型的工作。 然而,我不会考虑有利于结对编程并坚持使用新术语的立场。
我想尝试在技术领域写作,现在我在日本的一家公司找到了一份新工作,这让我在越南的孤独感中得到了一些缓解。 同时,我也会学习远程工作所需的新技能,并希望在我能负担得起的环境中找到更多的服务器和数据库开发工作。
一个看起来并不疯狂的环境。
原文:.com/what--to---
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等