"); //-->
写代码的「经验」依旧能运用到提示工程上
《新程序员》:许多行业可能会因 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 在澳大利亚的工作主要集中于墨尔本、悉尼和布里斯班这三个大城市,你可以白天去办公室或和客户见面,然后晚上回家。因此,人们反而不太愿意每周通勤五天,而是每周工作两到三天,因为完全没必要每天都去办公室。
然后就是中国——对中国我也很熟悉,因为我们经常合作。中国区的同事习惯于在办公室一起工作,很多人选择回到办公室工作,因为这是他们习惯的团队合作方式。
在西班牙和巴西,我也观察到了一些特殊情况。这些国家与高纬度国家的时区接近,而西班牙的生活成本相对较低,因此我发现英国公司非常乐意雇佣西班牙人,并支付西班牙人与英国同等水平的薪资,供他们远程工作。这对西班牙员工来说是个很大的机会,因为英国的生活成本远高于西班牙。所以,对于一般员工来说,情况也有所不同。
前几年,由于人才紧缺,每个人都想进行数字化转型。当时人才供不应求,员工处于有利位置。而现在许多科技公司都在进行裁员,形势也不再那么紧迫,权力转移到了雇主手中,而不是员工手中。
我最近其实也收获了许多人的意见:有人喜欢远程工作,有人则感觉自己这几年错过了与人交流的感觉;有人想要将家庭生活和工作生活分开,有人希望在完成工作后回到家里;有人想一直待家里,但又感觉这会混淆自己对工作时间的感觉。所以,情况因人而异。总的来说,我观察到远程办公可能不再是趋势,部分人已经倾向于回到办公室工作了。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。