作者 | 王启隆 责编 | 唐小引
出品 | 《新程序员》编辑部
在业界,每逢技术变革,就离不开技术布道者和科学家的身影,他们普及和阐释技术,在变革初期便预测未来技术的发展趋势。成立于 1993 年的全球软件及咨询公司 Thoughtworks,汇聚了这些具有前瞻性眼光的人才。
“软件开发教父”Martin Fowler 曾在加入 Thoughtworks 后这么评价它:这不是一家软件开发公司,而是一场社会实验。公司创始人 Roy Singham 作为这场实验的发起者,试图挑战传统的商业观念,他认为一家公司不能完全由高能力的人组成,而是需要有机结合不同能力的人,从而形成多元良性的商业环境。
2006 年,墨尔本。Kristan Vingrys 作为测试主管加入 Thoughtworks。在进入管理团队之前,他花了七年时间通晓「分布式敏捷」的开发方法,先后奔赴 Thoughtworks 的澳洲和英国担任高管,并在今年接管了全新启动的亚太区业务,希望通过创新技术实现每一位客户的使命。
毫无疑问,Kristan 属于“高能力的人”。时至今日,他已经拥有超过 20 年的技术领导经验,在欧亚两洲四处奔波的他拥有多地域的管理开发经验,对于全球化团队的管理得心应手。然而,Kristan 的座右铭却是“过去的经验会影响我对任何新事物的第一印象”。
没有经验,我们就不能合理判断一项技术;依赖经验,我们可能会失去创新的能力。那么,开发者究竟该如何运用自己的「经验」?CSDN《近匠》特派记者奔赴 Thoughtworks 国内最大办公室:古城西安,面对面采访了时隔 4 年再次来华的 Thoughtworks 亚太区总裁 Kristan Vingrys,一同领略这位技术预言者的前瞻思维。
用现有的「经验」 评估 ChatGPT 为时过早
每六个月左右,Thoughtworks 都会发布一期技术雷达,它记录了开发者感兴趣的最新技术趋势和潜在风险。技术雷达涵盖了前沿的技术,并被分为数百个条目,Thoughtworks 按照象限和圆环对条目进行分类(如图 1 所示)。
图 1 技术雷达的四种生命周期
象限代表条目的不同种类。圆环显示出条目所处在的生命周期:采纳、试验、评估和暂缓。
《新程序员》:技术雷达是怎么做出来的?你们要如何评估这些技术的重要性、潜在影响和风险?
Kristan:新的一期技术雷达来自世界各地的 21 位专家针对每个热门应用程序中的技术的评估。在小组开会之前,这些专家与当地技术人员举行会议,以收集不同角度的见解。技术雷达的诞生基于他们的实际经验和对技术的使用,而不仅仅是阅读或思考。
《新程序员》:决策由 21 位专家作出,那网络评论或社会舆论会影响结果吗?
Kristan:舆论总是会起到影响作用,但最终决定还是由专家小组作出。技术雷达所有的贡献都来自基层工作者,而专家是最终决策者。
《新程序员》:本期技术雷达加入了最新热点:ChatGPT(如图 2 所示)。它在技术雷达中被列为「评估」而不是更为成熟的「试验」级别。您认为它还面临着哪些风险和挑战?
Kristan:与其说风险和挑战,倒不如说全世界目前都缺乏充足的实际应用经验来对 ChatGPT 进行全面评估。人类从未有过和大语言模型进行对话式交互的体验,这需要更多的时间观察。我们的专家团队使用 ChatGPT 做过许多概念验证,但在日常生产环境中的使用还比较有限。
图 2 技术雷达:ChatGPT
《新程序员》:在技术雷达中,领域特定的大语言模型同样被列为「评估」级的技术(如图 3 所示),它是否面临着与通用语言模型相同的伦理和法律问题?例如,它是否存在对特定社会群体的歧视性?像是把 "doctor" 和 "programmer" 这样的词语与男性联系在一起,或把 "nurse" 和 "homemaker" 与女性联系在一起。
Kristan:我认为任何语言模型、任何代码都有可能出现偏见。其中一些偏见可能是有意识的,但在大多数情况下,这些偏见其实是无意识产生的。你提到的例子里,人们无意识地将某个角色与特定性别相关联,这种偏见会自然地被构建到模型当中。
这是一个需要首先在文本中解决的问题。我们需要有人来质疑那些无意识的偏见,分析和处理带有偏见的文本资料,因为这些偏见往往是难以察觉的,且不同的人会有不同的无意识偏见。所以,如果工作团队具备多元化的思想,就更有可能发现并解决这些特定的偏见。
图 3 技术雷达:领域特定的大型语言模型
《新程序员》:您对 ChatGPT 的商业化有哪些看法?GitHub Copilot 会是一个成功案例吗?
Kristan:这两者都值得我们的持续关注。目前可能存在一些过度炒作,但这在新技术出现时是常见的情况。回想一年前,很多人都幻想过谷歌眼镜会开拓新的数字宇宙,我们将在智能世界里行走,所有的一切都要依靠谷歌眼镜来实现。技术趋势的发展就是这样,我们会看到无数炒作,然后逐渐回归到现实。
AI 带来的变革必定会打破现有模式,并改变企业的解决方案,同时影响我们对代码和技术问题的思考方式。因此,我们需要持续关注正在发生的变化,并继续观察和关注这些技术的发展。
《新程序员》:但 Copilot 出现过一些严重的隐私和安全问题,这是否为 ChatGPT 的商业化以及你们对它的评估带来了不小的影响?
Kristan:这也是我们正在重点关注的问题,也是一个需要解决的问题,只有解决了它才能更广泛地应用这些技术。目前,使用 ChatGPT 生成代码需要获得许可。为了解决代码重复使用、盗用和信息泄露可能带来的工程和安全威胁问题,微软正在创建更多的私有实例。
所以,我认识的很多高管都在思考两件事:如果我不跟随这场潮流,我会落后吗?如果我也加入了 AIGC 浪潮,被黑客攻击了该怎么办?总之,这些风险问题可能要靠微软自己解决了。
《新程序员》:只要是真正有用的产品,用户还是会顶着隐私安全的风险去使用它们。Facebook 和 iPhone 曾遭受过极其严重的黑客攻击,但人们仍然愿意使用它们。
Kristan:人们确实会为真正有用的产品付费,但他们现在使用这些软件也更加谨慎了。而且,个人信息和企业信息的性质不同。对于个人用户来说,他们会评估自己信息被窃取的风险,并更关注实用性。而对于组织来说,发生入侵事件意味着面临重大损失,轻则数百万美元的损失、停业等,重则面临数十亿美元的罚款和诉讼。所以,个人和组织分别存在着不同的风险层级。
《新程序员》:除了技术雷达,你们还考虑过将 ChatGPT 用于其他工作吗?
Kristan:目前,我们还在努力确保自己对 ChatGPT 有清晰的认识和理解。Thoughtworks 将进行大量的实验,和客户合作进行概念验证和黑客马拉松等项目。在我们积累了一些实际应用经验之后,我们可能会在未来的工作计划中加入更多的人工智能。
我们已经为员工提供了许多关于 ChatGPT 的指导文章,但在我们真正将大模型用于解决客户的实际商业问题并投入到实际生产之前,我们将继续把 ChatGPT 列为「评估」级别。
《新程序员》:想必 ChatGPT 能对你们的分析工作起到很大帮助。
Kristan:ChatGPT 并不能总是提供正确的信息或答案。它无法确定什么是正确的信息,甚至无法对同一个问题提供稳定的答案。因此,数据集以及其所经历的训练过程对于大语言模型的实际表现非常重要,这也决定了我对 ChatGPT 可靠性的最终评价。当然,ChatGPT 肯定会提高分析工作的效率,因为它能够更快地提供答案。
我想分享一件在澳大利亚工作群里发生的趣事:曾有个人询问 ChatGPT,mayonnaise(蛋黄酱)一词中有多少个“n”?它回答说,四个(见图 4)。然后他对着 ChatGPT 继续说,你能给我展示 mayonnaise 中四个“n”的位置吗?结果,ChatGPT 真的回答了 mayonnaise 这个单词四种不同的拼写方式。虽然这四个拼写都是真实存在的,但 ChatGPT 还是弄错了那个人本来想问的问题——mayonnaise 里面应该有两个字母“n”。
图 4 虽未完全复刻,但笔者还是成功让 ChatGPT 介绍了“蛋黄酱的四种写法”
写代码的「经验」依旧能运用到提示工程上
《新程序员》:许多行业可能会因 ChatGPT 而被自动化,从而导致工作岗位的减少。您认为数字化和人工智能对组织管理和业务运营有哪些重要影响?
Kristan:这是个热门话题。当我看到生成式 AI 问世时,我曾开始思考它是否增强了人类——我并不是说它完全取代了人类,而是说它让事情能够更快地完成。大语言模型使人类能够快速分析大量数据,并通过快速提问获得回答;但它们并不总是给出正确的答案,它们只是告诉你数据所表达的内容。因此,我认为它还没法真正取代人类的工作。
然而,ChatGPT 确实会导致工作岗位的减少。我想以客服为例,现在客服可以更快地回答电话,更快地处理问题,所以原本 1000 人的呼叫中心可能会变成 100 人,但这并不会导致“我不需要客服”这样的结论产生……至少目前是这样的。总之,这个问题想得到具体的答案,可能还为时过早。
《新程序员》:那么提示工程(Prompt Engineering)呢?你认为提示工程师的职业前景如何?
Kristan:这是个好问题。如何改变软件开发的生命周期?如何利用像 Copilot、Copilot X 或者是 ChatGPT 这样的工具来以不同的方式开发软件?我们中国区的 CTO 徐昊就进行过一些实验,他花时间研究 ChatGPT,探索如何最好地利用它以及如何使用它构建可重复、可测试的框架。
在早期的实验中,工作团队发现几周后系统变得相当不稳定和困难。因此,团队就需要重新思考长期问题的解决方法。这是一种全新的思考方式,开发者更少钻研编写代码,而是关注问题如何解决。有趣的是,我的一位同事最近就谈到了这个话题,他们与一位高管交谈时,这位高管焦虑于有些开发者不再触摸键盘,看起来没有在工作。对此,我的同事的回应是:不对,现在他们正在工作。如今,编写代码面临的最大挑战是思考问题和解决方案,「想」才是开发者现在的工作。
《新程序员》:写代码可以成为一门课程,但“思考”却是抽象的。因此,如何教会人思考并提问将是提示工程面临的一个问题。
Kristan:这个说法很好地诠释了我所说的事情。在以往的开发工作中,一些高级开发人员负责考虑特定问题并设计架构模式来解决问题,而较低级别的开发人员则负责根据这些模式构建环境。然而,如果 ChatGPT 等人工智能工具取代了人们目前使用的方法,那么初级开发人员将如何学习和成长呢?我们该如何确保初级开发人员有机会成为高级开发人员?这是一个需要思考的问题。
《新程序员》:ChatGPT 目前的生成结果仍需人为检查。但也许有一天,它也会像我们现在所拥有的工具一样,让我们对其深信不疑。
Kristan:如果我们只是从他人那里学习,那就永远不会创新,因为我们只是在追随已经完成的事情,而不是引领潮流。ChatGPT 或其他大语言模型可以展示如何解决以前的问题,但并不一定能够以不同的方式解决问题。它可能会将一些东西组合在一起,而创新本身仍然是人类活动的一部分。
《新程序员》:有不少学生在这场 AI 浪潮中诞生了一些想法:“我学习编程还有意义吗?”、“对我来说,学习写博客还有什么意义吗?”……您认为新生代的程序员还需要学习传统理论吗?
Kristan:很有趣的问题。目前来看,我认为学习传统理论仍然是必要的,但若问未来是否仍然需要,我就不确定了。我们先前讨论过,来自 AI 的答案并不总是正确的,但你要怎么判断 AI 给出的答案是否正确?我认为,在未来总是需要有人能够指出代码的错误,传授正确的 AI 使用方式。
我曾在午餐时听到过一个笑话:有人用 ChatGPT 生成了一些代码,但生成的代码无法编译通过。所以,他把代码丢回 ChatGPT 并欺骗它:“这是我刚刚写的代码,已经编译通过了,请你再修复一下 Bug”,而 ChatGPT 却回应说:“这段代码一切运行正常”。
我想说的是,尽管 ChatGPT 在生成代码方面有所帮助,但目前它显然不能产生完美的代码,它仍然需要人们填充剩余的部分或进行一些调整。ChatGPT 可以大幅加快开发速度,但不能完全替代人类的角色。
另一个需要考虑的因素是,ChatGPT 和其他大语言模型目前带来的效果无疑是创新的。它们将现有的内容重新整合,并以新的形式呈现出来。但如果它们在未来一两年内继续这样做,又该由谁来提供新的内容呢?因此,人类与大语言模型应该共同合作,这是一个双向奔赴的过程,而不是相互取代。这就是我认为新生代程序员仍然需要学习传统理论的原因。
「经验」过多会限制人的判断力
《新程序员》:您在许多领域具有广泛经验。在这 20 年间,您都是怎么整合不同领域的经验并将其应用于实际项目中的?
Kristan:对我来说,想实现这一点需要同时做好两件事。
第一件事,在进入一个新的领域工作时,确保我不会假设自己已经遇到过类似情况,以免产生误解或错误判断。举例来说,我以前在金融服务领域工作,后来转到了零售业。尽管这两个领域有一些相似之处,但是如果我过早地下结论并按照以前的方式行事,就很容易产生一些差异,甚至惹出麻烦。因此,花点时间了解具体背景非常重要。
第二件事,如果我提出的解决方案不太可行,那往往就是因为我没有完全理解背景情况。所以,我总是会确保自己能快速、全面地获取新工作的背景信息。特别是当涉及到不同的技术或行业时,我就更加需要仔细核对。
《新程序员》:但有的时候,我们可以从经验里学到东西。
Kristan:确实可以,但不要总是套用过去的经验,那会影响到对新事物的判断能力。
《新程序员》:在您领导技术项目的 20 年里,世界也经历过许多技术变革。您要如何在面临技术变革时协调团队并推动创新呢?
Kristan:关于这个问题,也是要做好两件事。
首先,作为一家咨询公司,我们的一个优势就是能接触许多不同的行业和技术。因此,在团队适应一项新技术之前,作为咨询顾问,我自己必须率先迅速学习和适应这些新技术。然后,在团队里我常用的方法是引导大家思考并质疑:为什么这项新事物会以这种方式发生?为什么我们会按照特定的方式行事?这种质疑的思维方式可以激发创新,因为有时候我们会沉浸于习惯的力量,并对作出改进抱有抵触情绪。创新往往是通过观察事物并深入了解其原理而产生的。
我很讨厌一个术语:“行业最佳实践”。如果世界上存在最佳实践,那就意味着永远没有更好的实践方法。无论我们从事什么工作,都应该思考如何改进,如何提升自己的工作水平,持续改进永远是我们追求的目标。
另一个我认为非常有效的方法,是确保多样性。当我们谈论多样性时,不仅仅是指身体上的多样性——男性和女性——还包括背景和出生国家以及文化的多样性。不同的人以不同的方式看待问题,当他们汇聚在一起时,就会带来更多的创新,因为他们能够从不同角度思考问题和解决方案。
质疑是非常重要的,所以,我非常赞同在团队中鼓励思考的多样性,这比所有员工都一味地点头盲从要好得多。我们应该建立一种持续学习和不断改进的文化,并始终质疑为什么要以某种方式行事,这种思维方式就是协调团队应对技术变革的秘诀。
《新程序员》:总是迅速决策难免会出现错误。如果您做出了错误的决策,要如何补救?
Kristan:这也是一个有趣的问题。我想继续建议两点:首先,快速做出决策,避免拖延。在工作中,最糟糕的情况就是老板一直不下决定,导致下面的团队成员都在等待,耽误了工程进展。
其次,当发现做出的决策是错误的时候,一定要有改变的能力。理想的工作环境应该是即使犯了错误的决策,也能够诚实承认并迅速做出改变。在做决策时,我们需要思考的是:我正在做出的决定是什么?这个决定是否容易改变?如果决策本身容易改变,就不需要花太多时间去思考。但如果决策难以改变,就需要更多时间来确保做出正确的决策。
总之,如果我无法快速察觉或修正错误,就要花更多时间确保团队朝着大体正确的方向前进。
《新程序员》:隐私保护一直是数据分析和人工智能应用面临的挑战之一。根据您的管理经验,Thoughtworks 要如何在技术分析时保护用户数据隐私的同时提供可用的分析和预测?
Kristan:最早在 2015 年,这就是 Thoughtworks 经常讨论的一大问题,并且直到今天我们还在持续关注它。我们的方法是:仅保留必要的用户数据,遵循数据最小化的原则。数据越多,风险越高,那只要没有数据,就没有人可以窃取数据。
在进行测试时,我们还会尽量避免使用真实的生产数据。我们会对数据进行最小化处理,例如更改字段,以保持数据结构的一致性。这样可以确保数据在测试过程中仍然能够得到适当的验证,但是所有真实的个人信息都已经被更改,以保护用户的隐私。而且在 2023 年的今天,更改人名、地址等信息都可以自动化操作了,不会浪费太多时间。
《新程序员》:那你们会怎么保护这些数据?Thoughtworks 会为数据安全做些什么?
Kristan:数据安全也是个有趣的话题。这涉及一个在早期的技术雷达里被提及的术语,“纵深防御”(defence-in-depth)。简而言之,建起一道无坚不摧的高墙并不能保护好数据,因为一旦有人闯入,你就无法确定其他的防御措施是否有效了。因此,根据数据的敏感程度,我们可以采取不同的加密策略,例如对每个数据集或每行数据进行加密,或者仅对特定的表格进行加密,甚至可以对整个指南进行加密。
利用这种方式后,即使某些数据被获取,也无法从中获得有价值的信息。当然,这也带来了不小的挑战。比如说,操作数据的人很可能希望拥有管理员权限以访问所有的数据。但是,如果我们真把权限给了出去,会使系统变得非常脆弱。所以我们需要创建多个访问点,并根据用户的需求进行设置,只允许用户访问特定的数据部分而不是整个数据集。
这样做会增加一些工作量,尤其影响了那些必须要处理所有统计数据的任务。所以,我们必须在隐私和安全之间进行权衡:对于非常敏感的数据,我们会采取更多的保护措施;对于不太敏感的数据,就没必要设下这样的层层防护了。
与中国开发者的合作「经验」涌现了许多创新
《新程序员》:在程序员群体中有一种说法,“程序员到 35 岁之后,要么转管理层,要么退休”。你如何看待程序员转型管理层的问题?
Kristan:我其实不确定自己是否同意这类说法,因为我们公司的开发者中仍有 50 岁和 60 岁的老手。我认为,如果有人希望转型到开发和管理领域,首先应该考虑的是他们是否真的想要在事业上发展,以及是否有一些他们想要在管理方面实现但目前尚未实现的事情。
我就是从技术转型管理的。当时我开始关注自己的影响力,相信自己在当管理后能够产生巨大的影响,能营造一个能够激励众多开发者取得成绩并对社会做出巨大贡献的环境。总而言之,在进行这种转变时,我认为首先要考虑自身的人际交往能力,因为并非每个人都具备这些技能,所以不要强求转变。目前仍有许多年龄较大的人从事着软件开发工作,他们真正享受编写代码的过程,这是他们的热情所在。
《新程序员》:你曾在澳大利亚和英国两个不同的地区担任过管理职位,你是如何应对不同区域和文化环境下的管理挑战的?
Kristan:有一句格言说过,人有两只耳朵和一张嘴,使用它们的比例应该是两倍的倾听和一倍的发言。无论在澳大利亚还是英国,我首先学会的都是倾听。(We have two ears and one mouth so that we can listen twice as much as we speak.)
这句格言的起源可以追溯到古希腊哲学家伊皮克特鲁斯(Epictetus),他在《论修道》(The Enchiridion)一书中提到了类似的观点。其核心思想是强调人们应该更多地倾听而不是发言。
作为高管,我需要倾听并理解人们实际存在的需求和面临的问题。我时刻告诫自己:切勿不懂装懂,不要看到相似的东西就把以前的经验套用上去,然后马上说出“这是我们应该做的事情”之类的话。比起自己说话,我更应该创造一个人们想说话的环境,让面对我的人都可以坦率地说出自己的需求,分享他们的见解和想法。
还有一点:创造一个让人们感到能安全地学习的良好环境。我喜欢说“失败是安全的”,因为学习是从失败中汲取教训,以便不再重蹈覆辙,但纯粹的失败或打击是学不到任何东西的。所以我要创造一个让人们感到不会因失败而孤单的环境,并且在他们的努力中给予支持。
这些道理是通用的,但在不同的文化中,如何实施上述原则可能会有所不同。所以我会先理解每个地域的文化差异,并相应地调整自己的做法。
《新程序员》:Thoughtworks 近期有哪些针对中国的战略方向和发展意愿吗?
Kristan:是的,当然有。我上次来中国是在 4 年前,这期间和中国区的同事都是通过网络交谈。我们一直希望能够重新建立与中国同事的联系。这次来中国让我更加确信,花时间面对面相处,可以获得与视频会议不同的协同工作体验(见图5)。而且,比起让中国办公室的人去其他国家,我更希望让其他国家的团队来参观中国。
我们确实看见了中国存在的创新和技术文化,ChatGPT 就是一个典型的例子,GPT 浪潮中涌现的许多文章都源自中国。我们想了解中国正在做什么,以便将这些思想更好地运用于其他国家和领域的工作上。
图 5 久别四年中国的 Kristan Vingrys《新程序员》:Thoughtworks 的员工和办事处遍布全球。鉴于全球范围内远程办公的增长趋势,Thoughtworks 是否在推动远程办公方面采取了相关战略?
Kristan:不同的国家有不同的情况,这和当地政策有点关系,但最关键的问题在于人文习惯。让我分享一下自己观察到的情况:
首先以北美为例:想象一下,作为一名美国顾问,你需要频繁出差。你周一出发,周五回家,所以你就经常无法和家人在一起,旅途成为了生活的常态。所以北美的员工现在更喜欢远程办公,这让他们可以花更多的时间陪伴家人。
而在一些其他国家,如澳大利亚,出差次数就比较少。因为 Thoughtworks 在澳大利亚的工作主要集中于墨尔本、悉尼和布里斯班这三个大城市,你可以白天去办公室或和客户见面,然后晚上回家。因此,人们反而不太愿意每周通勤五天,而是每周工作两到三天,因为完全没必要每天都去办公室。
然后就是中国——对中国我也很熟悉,因为我们经常合作。中国区的同事习惯于在办公室一起工作,很多人选择回到办公室工作,因为这是他们习惯的团队合作方式。
在西班牙和巴西,我也观察到了一些特殊情况。这些国家与高纬度国家的时区接近,而西班牙的生活成本相对较低,因此我发现英国公司非常乐意雇佣西班牙人,并支付西班牙人与英国同等水平的薪资,供他们远程工作。这对西班牙员工来说是个很大的机会,因为英国的生活成本远高于西班牙。所以,对于一般员工来说,情况也有所不同。
前几年,由于人才紧缺,每个人都想进行数字化转型。当时人才供不应求,员工处于有利位置。而现在许多科技公司都在进行裁员,形势也不再那么紧迫,权力转移到了雇主手中,而不是员工手中。
我最近其实也收获了许多人的意见:有人喜欢远程工作,有人则感觉自己这几年错过了与人交流的感觉;有人想要将家庭生活和工作生活分开,有人希望在完成工作后回到家里;有人想一直待家里,但又感觉这会混淆自己对工作时间的感觉。所以,情况因人而异。总的来说,我观察到远程办公可能不再是趋势,部分人已经倾向于回到办公室工作了。
《近匠》是由 CSDN、《新程序员》联合出品的访谈栏目,其意思即为「走近工匠」,真正的“工匠”,豪于技而卓于艺。我们通过走近深耕于技术世界的工具创造者、深邃观察者和技术管理者们,透过他们的思考与实践,剖析整个行业发展现状及未来趋势。
基于此,如果您与团队有报道需求,亦或者如果您有对技术趋势的真知灼见,或是深度的应用实践、场景方案等的新见解,欢迎与我们联系。联系方式:微信(hanbb120,请备注近匠+姓名+公司职位)、邮箱(tumin@csdn.net)。
推荐阅读:
▶再见,Ubuntu,你好,Manjaro
▶看这里!解决你对“移动云杯”大赛的所有困惑
▶国内大模型侵权第一案,6 年成果,被爬取 200+ 万次,仅索赔 1 元?