从易用性的角度来看,软件必须方便用户使用,不能过于复杂,而且性能要好在我生活的地方,金融业在经济中占据了很大的比重,银行和投资公司在这里拥有巨大的权力和几乎无限的资源尽管如此,他们的移动银行平台简直是一个笑话
卡顿、复杂和不直观的用户界面,我每次用它们时都很烦,甚至他们的反馈表也没法用,每次我试图提交时就会出现 500 错误最后,还有最重要的一点:安全性现代软件有许多依赖项,我们都知道管理它们并使其保持最新版本有多难即使有 Renovate 或 Dependabot 这样的自动工具,各种库的提供商也无法确保其新的主要版本能向后兼容这就给开发人员的工作增加了难度,他们不得不手动处理这些依赖关系的升级然而,在他们设法做到这一点之前,攻击者可能已经利用旧依赖项的漏洞来窃取用户数据了这些数据泄露不仅给公司带来了麻烦,还可能会面临用户的法律诉讼,而且对最终用户来说也是一种危险每天都有成千上万 GB 的用户数据,如电子邮件、密码甚至电话号码,被倾倒在暗网论坛上,这也是世界各地垃圾电话激增的主要原因哪里出了问题?既然我已经定义了软件质量是什么,那么下面我就谈谈我个人对当今软件问题的看法我必须提醒你,在这部分中你会看到很多直接提到人或群体的地方声明一下,我无意将我们所处的混乱局面归咎于任何人、任何团体或行业我只是想根据我在这个行业 10 多年的工作经验,谈谈我的看法这只是一个基于趣闻轶事的个人观点,所以请不要产生其他反应,也不要把这个当作是对你个人的指责现在,能力危机影响着整个世界由于我们每天都会接触到大量的娱乐活动,人们实在是太容易分心了每个人的注意力都在下降,想要集中精力超过几分钟都很难根据我的经验,这个问题在年轻人中尤为突出我有幸能与一些 Z 世代中的杰出人士共事,但我合作过的大多数年轻人都无法完成任何任务不是因为缺乏经验,而是因为他们在本该完成工作的时候,却一直在玩手机,没完没了地看视频,甚至玩游戏有时候,我甚至感觉自己是在和一个瘾君子共事不只是我,有科学研究表明,这个年龄段的人对社交媒体的沉迷程度很高如今,人们无法长时间集中精力处理复杂任务,这就导致了更多的错误、更多的可用性问题,以及作为软件开发人员对工作和使命的专注度降低有人可能会反驳说,如今高效的软件团队需要遵循最新的最佳实践来保持质量TDD、事件驱动架构、封闭测试、直接推送到主程序等深奥概念将有助于你的团队持续交付并将质量保持在最高水平让我们回过头来分析一下这些建议的来源?Martin Fowler 是软件工程领域的思想领袖之一,许多工程师盲目追随他提出的一切建议我在很多公司都看到了这种趋势,特别是那些自称拥有无与伦比的工程文化的“狂热”组织中许多这样的组织都会构建微服务,即使他们的软件领域复杂度不高,软件本身预计也不会有太大的扩展性他们会这么做,因为他们的“上帝”告诉他们要这样做但是,但是,他和其他一些领导者是如何变得如此有影响力的呢?他们一定是自己构建了世界一流的软件,对吗?于是,我到处搜索 Martin Fowler 创建的软件:没有任何开源软件,也没有任何公开的闭源软件被宣传为是由他开发的所以我又要问:他是如何变得如此出名的呢?很简单,因为他提供了那些平庸工程师所渴望的争议如今,构建软件不再只是工程问题,更多是为工作选择正确的设计模式这是高级编程语言普及的结果,我们不再需要考虑诸如内存分配之类的复杂问题,使得几乎任何人都能进入软件工程领域,同时这也不再是真正热爱的人才能做的事了主要的影响是,标准降低到了这样一个程度,你的团队中可能会有一些人每天都不写代码,但他们在关于是否应该使用 TDD 的无休止争论中所发表的言论,却受到了非技术经理的高度赞赏但最终,从他们所交付的软件中来看,这些人带来的价值接近零随着这些编程语言的出现,以及许多公司发布的丰富框架,抽象级别不断上升,这使得工程师们逐渐不再需要深入了解他们正在使用的技术了别误会我的意思,这也有优点例如你可以获得更高的工作效率,一切都有了更快的学习曲线然而,增加对这些工具的依赖性可能会导致一个风险,即工程师会缺乏对底层原理的深入理解,而这在调试、优化和理解抽象的局限性方面至关重要总而言之,我认为现代软件的崩溃主要有以下几个原因:缺乏专注、虚假的工程师,以及缺乏对抽象概念背后的深刻理解我真的很好奇,AI 将会如何加剧我们现在看到的软件质量危机我敢打赌,再过几年,情况会变得更糟,优秀的工程师会被平庸的同行挤出这个行业,因为后者可能更喜欢发表意见,并大肆宣扬行业虚假领袖的观点
(图片来源网络,侵删)
0 评论