代码是否有效-
代码是否有效?

照片由Alex Padurariu在Unsplash提供
“代码是否有效?”
为了避免将这句话从上下文中摘出,让我分享一下作者如何得出这句话的背景。
纽约时报(NYT)的及时报道首先讨论了人工智能取代初级专业人士的需求,作者指出,自动化白领工作一直是许多高管长期以来的愿望。然而,技术本身尚未足够成熟,无法管理许多工作的更复杂和技术方面。至少,直到最近的 AI 进步,这促使他写下:
*这种状况正在开始改变,尤其是在像软件工程这样的领域,这里有明确的成功和失败标志。(例如:代码是否有效?)
在记者的辩护中,可能存在我们不了解的写作指南和原则,导致了对“代码 工作/不 工作”部分的限制和“有限的空间”来更好地解释。话虽如此,我在这里提出批评并无恶意。然而,对于所有非技术人士来说,我觉得有必要澄清一个常见的误解:我们(技术人员)生产的并非所有东西都能用‘1s’或‘0s’来衡量。 🙂
在我深入解释之前,让我分享一个最近一直在我脑海中萦绕的故事。
超过 14 年前,我在一家变压器公司的一个高压实验室建设项目上实习。作为所谓的Steerco,即指导委员会的一部分,我的任务是推动项目前进,解决与法律和预算相关的问题。正如在建设项目中经常发生的那样,当不同职业的人聚集在一起——建筑师、土木工程师、电气和机械工程师——来建造一个具有法拉第笼的专业制造工厂时,预算和法律问题并不罕见。
因此,在项目进行五个月后,离大学毕业只有七个月,项目的赞助商(首席执行官),作为职业工程师,注意到立面的实际成本超过了预估预算。初步预算中列出的材料成本,这对整体项目成本有显著影响,偏离了(如果我记得正确的话)40%。
由于这个原因,首席执行官指示我的同事和我通知那位有 20 多年经验的建筑师,成本是不可接受的,并且预计材料更改将符合项目预算。
你可以想象接下来发生了什么:我立刻被反驳了。
我永远不会忘记她说的:
我们这里不是在集市上;选择特定材料用于立面是有原因的。仅仅因为今天每个人都在家里建了自己的储物单元,并不意味着他们是知道如何根据相关标准设计专业建筑的建筑师。
然后,她补充说:“……隔离,某种,建筑物理,某种,地下,某种,初步设计 vs. 主设计,某种,某种……”
当然,我回复了这条消息,带着“某种,某种”,然后发生的事情是,我在一天之内两次被反驳:
诚然,我们不是在集市上,但我们不需要为别人的错误买单。责任方应该承担责任并找到适合我们预算的解决方案。
[所以,“不要杀信使”的这么多内容。]
你可以看到这个故事的发展方向。在生成式 AI 时代,每个人都设法体验了成为“编码者”意味着什么。然而,并不是每个人都是软件工程师,也不愿意为软件工程师的薪水付费,如果生活用“次优的 DIY 储物单元”就足够好的话。
回到《纽约时报》的文章,你现在可以理解为什么这句话“代码工作吗?”让我印象深刻。在我的脑海中,这句话听起来好像编码任务可以简化为:“如果它(在众多简单、二元结果中)能编译,你就可以发货了。”
再次,虽然这只是一个例子(而且不是错误的例子),但至少应该再问十几个问题,才能获得更全面的了解,并达到任何代码更改或实施的真正“工作状态”,例如:
…当前(数据)架构是否支持这个更改?
…这个更改是否得到了法律和安全团队的批准?
…代码是否按照开发实践实施?
…这个更改是否具有性能?
…是否进行了端到端测试?
…CI/CD 流程是否到位?
…这个更改是否影响了其他功能?
…受影响的业务团队是否被告知了这些更改?
…这个更改是否导致成本增加?
…这个更改是否带来了价值?
如果我们回答了所有上述问题,在我们可以得出“代码工作”的结论之前,还有更多的问题需要考虑。例如:
-
这个开发项目的预算是否得到了批准?
-
谁将作为这个开发的联络人?
-
在功能完整性和上市时间之间,最佳平衡是什么?
-
这如何影响值班责任?
-
退役这个开发会有多困难?
-
这个解决方案在数据或用户增长到什么程度时才能扩展?
-
如果出现问题,回滚策略是什么?
-
需要哪些文档和知识转移?
-
…还有更多…
正是因为这个原因,你经常会看到技术人士热情地发布或重新分享类似“编码从来就不是问题。”这样的声明。这确实从来就不是问题,真正的难题从没有二元答案。
换句话说,我所看到和面临的挑战包括继承 10-20 年的累积技术债务,这导致了将数月甚至数年的时间投入到维护脆弱的遗留系统中,同时试图现代化依赖于过时技术的业务流程,这些技术深深植根于组织决策中。
回到建筑师的话题,我最后还要分享一个故事,这涉及到我与我的大学室友最近的一次对话,她——你猜对了——是一位建筑师。
我们两个在谈论她与生成式人工智能的经历,她解释了她如何上传地块计划,并提示一个 LLM 提供一个“著名”预算的初步住房项目。她的观察是,尽管 AI 的输出看起来“美丽”,但在技术方面完全有缺陷,它仅仅产生了一些设计想法。然后她提到了一些有趣的事情:
你看,这对我是有用的,但如果我的投资者用同样的 AI 工具,用同样的提示运行同样的计划,他将永远无法交付一座站立的建筑。
我对她的话微笑,因为这正是我现在对人工智能交付完整软件的看法。你可以,也会得到“工作”的代码,但没有经验丰富和/或知识渊博的数据/AI/软件工程师的监督和专家修复,你将严重冒着积累未来技术债务的风险。
扩展性、安全性和可维护性的原则,或者说软件的“建筑物理”,不能仅依靠人工智能(目前)来管理,这正是技术专家发挥作用的地方。
没有疑问,生成式人工智能是一种将代码带到“工作”状态的有力方式,我们都应该使用它。但真正的价值并不在于开发过程本身。真正的价值在于确保“工作”的代码正在做它应该做的事情,并且在其周围有现有的流程来避免在专用(数据)平台上的问题。
有了这个想法,我只能得出结论,一个“是的,但是”通常可以回答“工作/不工作”类的问题(任何领域)。👇🏼

当被提示“代码工作或不工作?”时的谷歌搜索 AI 概述截图
感谢阅读!
如果你觉得这篇帖子很有价值,请随意与你的网络分享。👏
如果你对了解数据科学或分析开发过程感兴趣,请阅读我的帖子:
- 解码数据科学过程 | 科瓦尔斯基是如何提供“临时”数据洞察的?

浙公网安备 33010602011771号