软件开发行业如何发展(30年间软件开发行业为何)
软件开发行业如何发展(30年间软件开发行业为何)
2024-11-22 05:04:41  作者:魔力魔力轰  网址:https://m.xinb2b.cn/know/ucb199762.html

在时间的推移历程中,软件行业早已发生了天翻地覆的变化。和曾经大家习以为常的编码日常相比,越多越多的开发者发现,如今“测试驱动开发,开发让位测试”却成为了一种常态,究竟是什么导致了这样 Bug 的出现?本文作者将从其自身三十年的软件开发经验出发,带领我们共同探寻真相。


作者 | Chris Fox

译者 | 弯月,责编 | 屠敏

以下为译文:

我原本打算以第三人称撰写这篇文章,希望能够客观地描述三十年来我目睹的软件开发行业的变化。然而,写到一半我又改变了注意,所以我将在本文中讲述个人的亲身经历,然后再简单地分析一下哪些因素导致了如今的软件开发世界里出现了诸多荒谬和错误。

致年轻的开发者

许多人正值风华正茂,他们未曾见过软件开发旧日的美好时光,所以他们也不理解我对以前美好的工作环境的无限怀念,他们不明白我们能够在无人打扰的环境中工作是多么至关重要。就像我的一些越南学生,十几岁的他们没有听过甲壳虫乐队,也不明白我们为什么会将这个乐队视为珍宝,如果
二三十岁的你们没有见过软件公司的员工频繁被各种对话打断,而无法长时间地集中精神工作的情景,那么可能就无法想象那是一种怎样的情形。我觉得你应该试着想象一下。

我想重新唤回人们的这种意识。我不关心敏捷、Scrum或极限编程,这些只是一时的狂热,很愚蠢而且会干扰注意力,所以根本解决不了问题。我可以毫不夸张地说,微软早期的杰出表现正是因为他们建立了不打断他人注意力的企业文化,而这种杰出表现消失的直接原因也是因为他们放弃了这种意识。

本文参考了《Flow: The Psychology of Optimal Experience》,如果你希望了解学术的研究结果,那么可以读一读这本书。


早年的经历

我从
1988年开始以编写软件为生。一年后,我去了微软,我在单人办公间工作,鲜有人打扰,但那是在微软享有此殊荣的最后一年。回想那时的感觉真是太棒了:我们就像王子一样,我们的工作效率之高也是空前绝后。公司围绕《Flow》建立了一种文化,让我们能够进入并保持这种状态,因为这正是我们最佳的工作方式。

《Flow》的伟大之处

虽然在我进入微软前不久,他们就举行了首次公开募股,但公司真正的变化始于
1990年5月发布的Windows
3.0。我们的工作环境在一夜之间发生了巨大变化:我开始和一个烟鬼共用一个办公室,他整天大声地打
电话。与此同时,我们的会议也越来越多。


1989-2009年间,我一直在微软工作,差不多一半时间是全职工作,一半时间是合同工,然而情况每况愈下,最后是Windows Vista项目。

伟大的堕落

我的人生从未如此疲惫,承受的压力也从未如此之大,我们就像奴隶一样,每周工作70个小时以上,然而,幸运的话也只能完成4-6个小时的实际工作。其他时间都在与代码管理系统苦苦作斗争,那个系统里到处充斥着尚未完成或质量低劣的功能。

2009年的时候,一切都陷入了混乱。人们对质量的热爱完全被机械化的检查框方法所取代,有几次我都在绝境中挣扎。
1989年的时候永远不会发生这样的事情,因为那时严谨才是最崇高的美德。我为Windows Media Player DRM准备的威胁模型有20页之多,里面写满了漏洞和缓解措施,但是他们要求只能有1-2页,因为每个漏洞都需要经过审查然后解决掉。

卓越消失了、死了、被掩埋了。2008年底,我的经理要求我在应用程序外部编写蹩脚的代码,以方便他们在这些代码上运行单元测试(目的只是为了证明该项目“有单元测试”),于是我决定跳槽。当他告诉我一个名叫“测试驱动开发”的新事物时,我决定更新自己的简历,然后离职。可惜我没有立即付诸行动,没想到后面还有更糟糕的事情。当他们让我做结对编程的时候,我愤然离职了。

十年前:敏捷

我曾在西雅图市中心的Real Networks工作。西雅图的交通是个大问题,很多人的人生使命似乎就是造成堵塞交通。但是,由于我一般都在9:30离家,早高峰已经过去,路上只需要花费30分钟,因此还算不错。

后来,我们团队开始尝试一种名叫“敏捷”的新事物。对我而言,这意味着我必须参加“清晨站立会议”,会议在8:30举行,因此我到达办公室的时间需要提前90分钟。这意味着我不得不在早高峰期上路,原本30分钟的路程现在变成了90分钟,每次我都会迟到而且感觉筋疲力尽。我问他们是否可以推迟会议。他们说,不行,这可是清晨站立会议啊。(可是,我们并没有站起来啊)。

这个会议本身也极其荒谬。参加会议的每个开发人员几乎都会说他正在继续昨天的工作,偶尔也会提到开始了某个新工作,目前尚无进展。

项目经理的表现则更糟,他看上去总是生气勃勃的样子,声音欢快而愉悦,听起来他“参与了很多工作”,但实际上我知道大部分时间里他们都在Facebook上玩游戏。我经常听他们提起“故事”,后来才意识到这不是指某款我们正在发售的游戏。请问,“故事”究竟是什么意思?

后来,我发现“故事”指的是我们所说的用户场景、使用案例。我对敏捷的了解越深,我遇到的新名词就越多,然而迄今为止,我还没有看到太多的附加值。不过,还有更多会议。

我抗议“故事”。这个词感觉很幼稚,就像强迫收银员穿上可笑的服装搞促销活动或庆祝假期。他们告诉我,就像开会一样,“故事”也是敏捷的一部分,我们需要遵守这些规则。然而,我感觉“Scrum”不过就是报告进度,为什么我们不能像过去20年一样通过邮件直接报告?

就因为这些无厘头的原因,我就需要在上下班的路上多花一个小时(无偿)。真是个无畏的新世界。


独立工作

2010年,我去了越南两次,去看我的新房子,第一次去的时候还在建,第二次在里面住了三个星期。在我与Real的合同多次续约的过程中,有一半的同事都被解雇了,但最终我的合同也结束了,很长一段时间以来最愉快的一段工作结束了。我跟每个人相处得都很融洽,而且也取得了一些重大成就,公司里唯一的一个混蛋没有与我共事,而且在一次裁员中也被裁退了。


我在越南的家

我打算到2019年退休的时候就搬家。每次想到沉闷的白板面试和一系列高压力的工作,我就浑身难受,我非常享受在美丽的新家的生活,所以我决定打包出发,2010年11月15日我离开了美国,打算在56岁的时候退休,弹弹吉他,看看物理书籍,在一个非常陌生的语言环境中生活,放松身心。

后来,我学会了说越南语,否则我会无聊。我是闲不住的人。

一位朋友建议我学习 iPhone 和 iPad 编程,这些工具都是免费的,而且我怀念编程。于是,我购买了MacBook,学习了iOS、Objective C 和 XCode,而且很快就构建了一款应用。我又一次回到了软件开发的世界。

2011年-2016年间,我先是为自己,后来又为客户编写 iOS 和 MacOS 应用程序。这虽然很好,但我想赚更多钱,所以我找到了自由职业中介所。2017年,我获得了在加利福尼亚的一家公司从事服务器端工作的机会。我学习了C#、实体框架和 ASP.NET,后来当初推荐了我的朋友离开了公司,于是我接管了服务器和数据库。这份工作一直持续了30个月,是一段愉快的经历,我掌握了一些最新的技术。我喜欢服务器和数据库。

这期间内我一直是单独工作。我是团队的一员,我们的团队成员包括:一位居住在悉尼的浏览器开发,还有身在越南的我。我们需要协作开发REST API,但我们两个都是独立工作的。

令人费解的当前世界

去年8月,那份工作结束了,我发现找远程的工作很简单,我的独立性和承担责任的意愿都是优秀的品质。

然而,我发现软件行业发生了翻天覆地的变化。

术语和时尚

“故事”仅仅是个开端。在我之前的工作中,有两名开发主管在讲话的时候喜欢使用一连串的术语。除了“工业标准”之类争论时常用的词语外,还有“技术债务”实际上只是“未完成的工作”的婉转说法。“分支清理”的实际意思就是针对Git分支上积累的提交记录做无用功。

如今,这个行业到处都充斥着术语。“敏捷”无处不在,意味着每个人都有不同的理解。“重构”也是如此,虽然我认为它只是“编辑”的同义词。“冲刺”是一个小里程碑,带有加班的含义,但也没有任何新意。

原来我们会说用户场景、未完成的工作和编辑,只要我还在这个行业里,这些旧的术语对于我来说也挺好。小小的里程碑也没有革命性。加班,就更加无需我多说了。

如果非要我参加“冲刺回顾会议”(“花4个小时来讨论我们刚刚学到了哪些团队合作知识”),我会发疯。

除此之外,还有一堆的其他会议,毫无新意。

独立而又自负

这是让人不寒而栗的思想:虽然我可以独自管理大型项目,但我算不上杰出的开发人员,我们是自负的“暴君”,我们的下场是被降职或解雇。这全都是为了团队精神:一起工作,一起在上班时间玩游戏,站在桌子上,高举着酒杯为团队鼓舞士气,还有结对编程等等。

这简直形同身于地狱的最深处。

奇怪的是,求职广告似乎仍然偏爱那些可以独立工作、不需要监督以及高度主动的开发人员。也许需要别人来告诉他们,这样的开发人员都不好,他们应该雇佣可以像连体双胞胎那样工作的团队。

Flow的尽头

开放的办公室实际上形同虚设;协作式编程意味着不断与人交流,谁也别想舒服地坐着,本来这个过程的目的是代码审查,但实际上却完全不可能集中精力。持续不断的交谈,我们不能关上门保持沉默和集中注意力,戴着耳机就意味着你不配合团队合作。

Flow创造了过去的辉煌,而它已离我们远去,如今平庸却成了可达到的最高标准。

开发让位于测试

这可能是软件开发界最怪异的变化。

诚然,过去我们没有认真对待测试。微软经常开玩笑说,大家都不应该使用版本号为偶数的软件,因为这些软件在等着用户报告错误。请勿使用2.0版,因为2.1版将修复客户报告的所有错误,至少会修复值得修复的bug。

我笑不出来。

我认为如今受“测试驱动开发”这一荒谬方法论的刺激,我们表现出了过激的反应。

测试驱动开发是这个错误的根本。

很多网上的讨论都说,软件中没有什么比单元测试更重要的工作了,单元测试比它们比可交付成果本身更重要,文档已经过时,单元测试就是设计文档,单元测试定义了API;根据完整的设计编写测试太不够格,在实现前根据猜测编写测试才是时尚;不足100%的覆盖率就是玩忽职守,100%的覆盖率才是荣耀,开发人员应该全权负责测试他们产品,我们不需要黑盒测试,也不需要找别人再看一眼。

这些态度的偏执根本不需要我来指出。

任何一个有经验的人都能看出最后一个的荒谬。我们每个人都有盲点,我们会忽略某种情况,我们肯定会在编写测试和在编写代码的时候漏掉某些情况。这是人之常情,并不难理解。


再也不去上班

我喜欢编写软件。我喜欢解决问题和开发功能。自从
1984年编写了一个GW-BASIC程序来生成质数列表以来,我一直都很喜欢编程;自从1967年我用COMPASS汇编语言编写程序以来,我就一直喜欢编程。而这个爱好如今成为了我的职业。

然而,如今这个时代疯了。我无法在开放式的办公室里工作,我受不了周围的人满口专业术语,同时还需要应付强制性的合规,还有没完没了的会议以及对独自工作的人的嘲笑。我希望这个行业能够回到
1990年,重视并鼓励人们集中精力工作。

我喜欢服务开发的工作,并希望可以再次找到这类的工作。但是,我不会考虑那些喜欢采用结对编程和非要拽新名词的职位。

我想尝试技术领域的写作,如今我有一份新工作,为日本的一家公司工作,略微宽慰我在越南家中的孤寂。同时,我还会学习远程办公所需的新技能,并希望在我能承受的环境中找到更多有关服务器和数据库的开发工作。

一个看起来并不疯狂的环境。

原文:https://hackernoon
.com/what-happened-to-software-development-j92032w9

本文为 CSDN 翻译,转载请注明来源出处。

【End】

  • 海昌鱼怎么做好吃(海昌鱼如何做好吃)
  • 2024-11-23海昌鱼如何做好吃食材:海昌鱼300克、鸡蛋2个、花椒粉2克、盐5克、白糖3克、香葱5克、葱花5克、料酒20毫升、菜籽油50毫升鲳鱼去除内脏后洗净,把除鸡蛋和葱花以外的所有辅料加入盆中,腌制30分钟备用鸡蛋中加2克盐打。
  • 麻酱拌面的做法(麻酱拌面怎么做)
  • 2024-11-23麻酱拌面怎么做芝麻酱、方便面、辣椒油、香油、黄瓜、香菜、生抽、陈醋、盐、鸡精、白糖、大蒜、小葱首先,准备1只干净的大碗,先在里头放入1勺已经稀释好的芝麻酱,然后,再加入适量的蒜末、葱花,和1勺生抽,1勺陈醋,再来少。
  • 硬度测试方法有什么(你的硬度不达标怎么办)
  • 2024-11-23你的硬度不达标怎么办器大才能活好?x老师可以明确的告诉你,器再大,要是软趴趴的也白扯,女性对于硬度的敏感性远高于长度大俗话说:“男人不硬,女人不爱”这里的硬,不是财力,不是魄力,而是男人的二弟作战时的硬度那么,男性在啪啪。
  • 用开水煮吗(不能直接用开水煮)
  • 2024-11-23不能直接用开水煮做白灼菜心,不能直接用开水煮!老广教你1招,翠绿脆爽,鲜美入味蔬菜是饮食中不可缺少的一部分,它含有人体必需的维生素、矿物质,尤其是维生素,是维持正常机能的有机化合物,在人体的生长、代谢、发育等方面有着。
  • 比亚迪汽车制造战略(比亚迪造火车奇瑞造船)
  • 2024-11-23比亚迪造火车奇瑞造船“汽车行业是个香饽饽,利润相对较高、行业前景广阔、产业政策及政府支持力度大很多企业都想分一杯羹,格力、乐视、小米、腾讯、富士康等都想插一脚,更别提那些凭着几张PPT、拉几个合伙人就想造车的所谓“互联网。
  • 机构连续五日净买入然后砸盘(17日机构强推买入)
  • 2024-11-2317日机构强推买入长川科技:拟收购ic检测设备商STI拓展晶圆级aoi检测类别:公司研究机构:广发证券股份有限公司研究员:罗立波,许兴军,代川,刘芷君日期:2018-12-17事件:公司公告拟通过发行股份方式购买国家产。
  • 镇魂男主和男二的关系(你们喜欢的镇魂男孩可能快要拆了)
  • 2024-11-23你们喜欢的镇魂男孩可能快要拆了谁能想到,一部特效五毛、逻辑混乱、剧情一言难尽的网剧竟然在暑期档成为黑马,从一堆大剧中率先杀出重围,流量登顶《镇魂》原著是一部耽美小说,为了顺利过审,影视公司硬生生将题材从都市灵异耽美改成了奇幻悬疑,。
  • 染的头发太黄补救改暗(如何解决染的头发太黄)
  • 2024-11-23如何解决染的头发太黄增加洗头频率,在刚染完头时多洗两次头发,这样能使头发上的黄色染发剂洗去一部分,会有一定的脱色效果使用专业的褪色剂,染发完出现头发过黄情况时,我们可以借助专业褪色剂帮助头发褪色,但这种方法对头发伤害较大。
  • 昭和杂货铺中文版(昭和杂货店物语2)
  • 2024-11-23昭和杂货店物语2每当我们结束一天的学习或者工作,疲惫不堪地回到家里倒在沙发上的那一瞬间,你会不会怀念无忧无虑的小时候?如果有部时间机器让你回到过去,你会不会再去街角的杂货店买上一包酸梅粉?又或是一块甜腻的金币巧克力?。
  • 咪咕节目介绍
  • 2024-11-23咪咕节目介绍咪咕节目是由中国移动推出的专业的在线视频服务,汇集了各种高清节目,包括电视剧、电影、综艺、动漫、体育、娱乐、音乐、旅游、社会等等类型,为用户提供多样且高品质的观看体验此外,咪咕节目还拥有多种活动和特色。
  • 做菜广东话(广东话百科炒鱿鱼)
  • 2024-11-23广东话百科炒鱿鱼广东话百科:炒鱿鱼点样读:炒鱿鱼(caaujaujyu)乜意思:比喻被解雇,卷起铺盖离去因为铺盖卷起来像炒熟的鱿鱼那样卷作筒状点造句:我琴日比人炒咗鱿鱼(我昨天被解雇了)老细对我嘅态度咁差,我打算炒自。