公民构建,智能体执行,专家治理
总结:总结
为什么周末做一个应用和做企业软件不一样
过去六个月我注意到一个有趣的空白期正在出现。这其实并不是技术上的空白。这是不同人对软件工程实际认知中的一个空白。
对话通常都是这样开始的。一个非技术人员,可能是高管,告诉我他们周末做的东西。有时是聊天机器人。有时是内部工作流程。有时是一个出乎意料地精致的应用,解决了真正的业务问题。
他们很兴奋,也应该如此。十二个月前,他们可能根本建不出它。接下来是个问题。
“如果人工智能现在都能做到,为什么我们的工程团队交付速度不能快十倍?”
这是个完全合理的问题,毕竟我们都看过那些演示。我脑海中第一个想到的是“你不知道构建企业级软件需要什么”。但随后我会思考我的意思,以及如何向非技术人员解释而不显得过于居高临下。
然后我意识到,这都是我们自己造成的。我们花了这么多年时间反复讨论如何写好软件,以至于大家都以为写软件就等同于软件工程。
有人周末做的应用是真正的软件。它很可能解决了真正的问题或展示了一个理念。有时候它确实令人印象深刻。我不想贬低这一点,因为我认为人工智能最令人兴奋的事情之一,就是大幅增加了能够将想法转化为可操作软件的人。
没关系,我完全理解。我做的第一批应用和“你好世界”让我足够兴奋,决定把这当作真正的职业,所以这种兴奋感是真实的,我不想过度压抑。
但你的第一个Hello World,如今可以是一个拥有各种功能的整个应用,与在高度监管的企业中引入软件到生产环境中,非常非常(非常非常刻意)不同。
但为什么?
一旦应用成为企业依赖的对象,问题就完全改变了。客户数据受到保护吗?当依赖失败时会发生什么?两年后还有别人能理解这个系统吗?
它能经受审计吗?它能否应对比现在多一千倍的用户?那一天内数百万用户呢?我们怎么能在客户发现之前发现问题?这些问题在演示或施工阶段根本不会出现,除非有经验丰富的工程师在场。
我做第一批应用时也没问过他们。我只关心功能!
这正是有经验工程师变得更重要的地方,而不是更低。不是因为他们现在是唯一能开发软件的人,而是因为他们有判断力判断我们是否能信任它:设计是否好,是否理解风险,今天运行良好的东西不会在六个月后变成别人的噩梦。
在FOSE几周前,我们竟然花了很少时间谈论编程。我们讨论了代码是否仍是真相的来源,偶尔也谈到我们多么怀念写代码,但更多时候我们谈论的是设计、架构、治理、学习和判断。
一个团队描述了他们花了一天时间设计规范,让经纪人通宵工作,第二天早上查看结果。对我来说有趣的不是那个过夜流程,虽然那很酷。
这就是人类正在做的事:决定什么是善良,做出权衡,判断回来的是否真的是他们想要的。我们也不断回归到优秀设计,因为事实证明,当代理能非常快速地生成大量代码时,好的设计更重要,而非更少。
这让我怀疑我们是否一直以错误的方式看待稀缺。我们花了几十年时间围绕能写代码的人进行优化,因为他们稀缺且昂贵。我不确定那真的是稀缺,但这大概又是个胡言乱语。
现在感觉很稀缺的是良好的工程判断:知道什么是好,了解风险,以及什么时候有效的产品在生产中是安全的。因为软件不是用来被开发的。
它的存在是为了在生产环境中运行,安全地解决它被创建时所面临的问题。组织不是靠代码运作的。他们靠信任来运作。
几个月前,我发现自己在一次对话中几乎不假思索地说了些什么。
公民建设。特工执行任务。专家来治理。
听起来很酷,我觉得市场部会喜欢,于是写了下来。然后我就没再理它一会儿了。写这些胡言乱语有趣的是,我不知道自己是否相信某件事,直到我让它在脑海中反复思考一段时间,也告诉过我信任的人,比如Thoughtworks的高级工程师。
有时候我回来时会觉得自己在胡说八道。偶尔我会意识到,在那下面隐藏着更有趣的东西。这次正是后者成立的时刻。
起初我以为我说的是角色。公民开发软件(本质上是非工程师)。代理编写代码。工程师成为了州长。但我其实不认为我是这个意思。我想我说的是价值的流动方向。
人工智能为每个人提供了表达想法的新方式。执行越来越多地由特工负责。他们编写代码、重构代码、生成测试、修复错误,并以以前根本不可能的速度迭代。
但这些都不会减少对专业知识的需求。
事实上,我认为它恰恰相反。当每个人都能创建软件时,仍有人必须决定该软件是否值得存在于企业系统生产环境中。还是有人得考虑建筑。
安全。韧性。操作性。顺从。成本。那些在演示中没人感兴趣的无聊内容,但当客户第一次无法登录或审计员上门时,这些内容变得异常重要。
这就是为什么我不认为有经验的工程师变得不重要。我认为他们的杠杆会大幅增加。他们的工作从自己构建每个功能,转向创造环境,让他人和代理能够安全地构建成千上万的功能。
他们成为设计护栏、平台、工程实践和反馈回路的人,这些机制让其他人能够快速行动而不制造混乱。
也许这就是未来的软件组织。不是每个人都成为软件工程师的那种。不是让软件工程师消失的。一个几乎任何人都能开发软件、代理人越来越多地执行、工程专业知识成为让所有创造力安全扩展的关键。
说清楚点,我并不是说人们造好东西然后交给工程师修理,那完全是另一个废话的反模式。
也许这就是为什么我交谈过的高管和工程师有时听起来像是在描述完全不同的未来。这位高管看到现在任何人都可以开发软件。工程师看到有人仍然必须与之共处。
两者都说得对。他们只是关注同一系统的不同部分,我们必须解决,才能创造未来最终会是什么样子。