淘汰程序员,这怎么可能

whiteIn1年前 ⋅ 2185 阅读

偶尔我会遇到一个旨在淘汰程序员的工具或开发项目。目标是让业务团队控制系统的行为。从企业管理的角度来看,这听起来是个好主意。想一想如果我们不必雇用程序员或浪费时间与他们沟通需求,就会节省很多钱。实际上,我从未见过在这方面取得成功的工具或项目。


几年前,我作为承包商参与了一个这样的项目。我们正在为一家大型企业客户编写一个呼叫中心应用程序。该系统的架构师让客户相信,业务分析师将能够使用高级业务语言(由架构师发明)进行编写,以便将来的更改不需要雇用程序员来修改系统。据称,每行业务脚本的功能相当于 20 或 30 行较低级别的代码。因此,这承诺比仅仅消除程序员更高的效率。


业务语言具有类、构造函数、析构函数以及现代面向对象语言的几乎所有功能。也许它最初是一种业务团队可以使用的简化语言,但它的复杂程度与我们为实现系统的其余部分而编写的 Java 代码一样复杂。没有接受过程序员培训的业务分析师不可能使用这种语言编写有效的代码。


更糟糕的是,编程团队正在努力用该语言编写代码。没有调试器或其他工具,甚至没有带颜色编码的编辑器。当你遇到错误时,你必须确定它是脚本中的错误还是解释器中的错误,几乎每天都在修改。


即使我们承认消除对程序员的需求是一个有价值的目标,我也不认为这是可能的。那是因为程序员拥有的技能和能力不仅仅是他们的编程语言知识。


这是训练还是天生的,我不能说。可能两者兼而有之。程序员具有在我们的领域取得成功所必需的技能的天赋,这些技能是通过实践培养的。无论如何,我注意到程序员通常在很多方面都比他们的非编程同事更有能力。


程序员的思维更合乎逻辑。处理 if-then-else 条件是任何程序员的核心能力。在与业务团队合作解决需求时,我经常遇到缺乏相同能力的案例。


在一个开发抵押贷款分析专家系统的项目中,我经常收到关于如何处理具有特定贷款价值比或特定贷款金额的贷款的规则要求。并不少见,这些要求会有差距。我的贷款要求从 0 美元到 100,000 美元不等;从 150,000 美元到 250,000 美元;以及超过 250,000 美元的贷款。但是在 100,000 美元到 150,000 美元之间出现了一个缺口。在其他时候,我对重叠范围有相互矛盾的要求。


程序员具有超强的分析问题和提出解决方案的能力。他们擅长分析先决条件、事件顺序和结果。当然,这是编程中的一项关键技能,但它在故障排除和业务案例分析中也很有用。


程序员通常具有优势的另一个关键能力是从混乱中整理秩序的能力。我认为那是因为程序员负责在程序中创建顺序。我们将系统分解为子系统,将子系统分解为模块,将模块分解为单元。没有物理约束决定解决方案的结构。无论存在什么顺序,都是由编写代码的人创建的。回顾我所处理的一些代码库,很明显这并不是所有程序员的普遍特征。


虽然人们通常将程序员视为编码员,但他们的主要才能在于编写编程语言的神秘语法。我认为他们的主要才能在于他们分析问题、排除故障和解决问题的能力。代码只是使程序员的思维过程达到顶峰的物理表现形式。

假设有人设法编写了一种工具,使人们无需编写代码即可定义软件并控制其行为。使用此工具的人仍然需要程序员的所有其他心智能力。如果发生这种情况,我们还没有淘汰程序员;我们只是稍微更改了职位描述。


是的,我可以设想一个遥远的未来,人工智能被用来开发代码——但这也不会消灭程序员;它只是将它们移植到不同的平台。

看到一篇老外的文章,说的很在理,这可能为程序员群体失业带来一点曙光,至少是不那么悲观了

全部评论: 0

    相关推荐