图片来源:yucelyilmaz / Shutterstock
软件开发领域正存在一种根深蒂固且危险的误区,即认为产出等于结果。这种观点认为,只要人们投入更多的时间或更多的代码行数,就一定能解决问题。
《实践工程师》(The Pragmatic Engineer)杂志的创始人格尔盖伊·奥罗斯(Gergely Orosz)最近以精准的论证驳斥了这一“迷思”。
奥罗斯对“996”工作文化:即每周六天、每天朝九晚九的工作模式,这种模式由中国科技企业推广开来的方法论提出了尖锐的批评:
“我很难举出一个真正值得关注的‘996’公司,它们的产品要么是抄袭,要么是炒冷饭,都是对其他地方已经推出的更优秀产品的简单复制。”这种工作时间和节奏不仅不人道,而且适得其反。
“蛮力可以带来销量,但很少能带来差异化,而且(或许)永远无法带来创新。”
现在,在我们开始对中国这种“996”模式嗤之以鼻之前,不妨先反思一下我们自身的模式。创始人将其包装成“硬核”、“全力以赴”或“苦读文化”,但本质上却是一样的:用大量时间压榨员工,然后期待最终能产出惊世之作。而现在,我们正试图将这种理念付诸实践,更确切地说,是运用GPU来实现。有些人认为,只要我们能让大语言模型(LLM)每周工作相当于上千小时,以超人的速度生成代码,就能神奇地获得更优秀的软件。
而我们不会。我们只会得到更多我们已经拥有的东西:衍生代码、臃肿的代码,以及越来越难以管理的代码。
有专家指出,互联网正被低价值、高数量的内容所淹没,因为我们让内容生产变得轻而易举。同样的情况也正在我们的软件行业发生。
我们有数据可以佐证这一点。正如我在报道GitClear 对 1.53 亿行代码的 2024 年分析报告时所指出的,“代码变更”(即两周内被修改或丢弃的代码行)正在激增。研究表明,复制粘贴的代码越来越多,而重构的代码则显著减少。
换句话说,人工智能确实能帮助我们更快地编写代码(根据GitHub 的分析,速度提升高达 55% ),但它并没有帮助我们构建更好的代码。我们生成的代码更多了,对代码的理解却更少了,而且需要更频繁地修复。人工智能真正的风险不在于它编写代码,而在于它鼓励我们编写过多的代码。臃肿的代码库更难维护,更难理解,也更难由人来管理。代码越少越好。
这就是将“996陷阱”转移到机器上的体现。
“996思维”认为创新的制约因素是工作时长。“人工智能原生”思维则认为制约因素是输入的字符数。两者都是错误的。真正的制约因素始终是思维的清晰度。
让我们回归基本原理。任何资深工程师都知道,软件开发并非一场打字比赛,而是一个决策过程。这项工作与其说是编写代码,不如说是思考哪些代码不该写。
Honeycomb 的创始人兼首席技术官 Charity Majors 指出,资深软件工程师“更看重的是你理解、维护、解释和管理大量生产环境中运行的软件的能力,以及将业务需求转化为技术实现的能力。”
工程师发布的每一行代码都是一种隐患。每一行代码都必须经过安全检查、调试、维护,最终还要进行重构。当我们使用人工智能来蛮力推进软件的“构建”阶段时,这种隐患就被无限放大。我们制造了大量的复杂性,这些复杂性或许能解决眼前的 Jira 问题,但却会损害平台的未来稳定性。
Orosz关于996家公司都在生产复制品的观点很有启发性。
创新需要“闲暇时间”,才能在不受会议不断干扰的情况下进行思考。如果能抽出一点时间安静下来,你可能会意识到你原本打算开发的功能其实是不必要的。如果开发者每天都在审查人工智能生成的海量拉取请求,他们就没有闲暇时间。他们不再是架构师,而是成为为一个永远不眠的机器人打扫卫生的清洁工。
这并非说人工智能对软件开发有害。恰恰相反。哈佛大学教授(也是开源领域的长期领军人物)卡里姆·拉卡尼强调说,“人工智能不会取代人类”,但我们将越来越看到“拥有人工智能的人类将取代没有人工智能的人类”。人工智能是一种有效的工具,但前提是我们必须将其作为工具而非工具来复制996文化的虚假承诺。
那么,我们如何避免在硅芯片上建立起一种996文化呢?我们需要停止将人工智能视为“开发人员的替代品”,而应将其视为一种工具,用来弥补996文化所摧毁的那样重要东西:时间。
如果人工智能能够处理繁琐的工作——单元测试、样板代码、文档更新——这不应该成为在迭代周期内塞入更多功能的借口。相反,这应该是一个放慢脚步、专注于技术栈中“人为因素”的机会,例如:
反对机器人胡言乱语的运动并非出于卢德主义,而是为了追求质量。
奥罗斯对996的批评在于,它制造出疲惫不堪的人和容易被遗忘的产品。如果我们再不谨慎,我们对人工智能的应用也会产生同样的结果:疲惫不堪的人类维护着机器生成的大量容易被遗忘且脆弱的代码。
我们不需要更多的代码,而是需要更好的代码。而更好的代码源于人类的头脑,他们需要安静、不受干扰的环境来创造它。让人工智能来处理繁琐的工作,从而解放人们,让他们专注于创新。
作者:场长
参考:
https://www.infoworld.com/article/4094801/software-development-has-a-996-problem.html
https://hbr.org/2023/08/ai-wont-replace-humans-but-humans-with-ai-will-replace-humans-without-ai
https://www.gitclear.com/coding_on_copilot_data_shows_ais_downward_pressure_on_code_quality
本篇文章为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。
请扫描二维码,使用微信支付哦。