人類和 AI 能夠“雙向奔赴”嗎? | 近匠(2)
寫代碼的「經(jīng)驗(yàn)」依舊能運(yùn)用到提示工程上
《新程序員》:許多行業(yè)可能會(huì)因 ChatGPT 而被自動(dòng)化,從而導(dǎo)致工作崗位的減少。您認(rèn)為數(shù)字化和人工智能對(duì)組織管理和業(yè)務(wù)運(yùn)營有哪些重要影響?
Kristan:這是個(gè)熱門話題。當(dāng)我看到生成式 AI 問世時(shí),我曾開始思考它是否增強(qiáng)了人類——我并不是說它完全取代了人類,而是說它讓事情能夠更快地完成。大語言模型使人類能夠快速分析大量數(shù)據(jù),并通過快速提問獲得回答;但它們并不總是給出正確的答案,它們只是告訴你數(shù)據(jù)所表達(dá)的內(nèi)容。因此,我認(rèn)為它還沒法真正取代人類的工作。
然而,ChatGPT 確實(shí)會(huì)導(dǎo)致工作崗位的減少。我想以客服為例,現(xiàn)在客服可以更快地回答電話,更快地處理問題,所以原本 1000 人的呼叫中心可能會(huì)變成 100 人,但這并不會(huì)導(dǎo)致“我不需要客服”這樣的結(jié)論產(chǎn)生……至少目前是這樣的。總之,這個(gè)問題想得到具體的答案,可能還為時(shí)過早。
《新程序員》:那么提示工程(Prompt Engineering)呢?你認(rèn)為提示工程師的職業(yè)前景如何?
Kristan:這是個(gè)好問題。如何改變軟件開發(fā)的生命周期?如何利用像 Copilot、Copilot X 或者是 ChatGPT 這樣的工具來以不同的方式開發(fā)軟件?我們中國區(qū)的 CTO 徐昊就進(jìn)行過一些實(shí)驗(yàn),他花時(shí)間研究 ChatGPT,探索如何最好地利用它以及如何使用它構(gòu)建可重復(fù)、可測(cè)試的框架。
在早期的實(shí)驗(yàn)中,工作團(tuán)隊(duì)發(fā)現(xiàn)幾周后系統(tǒng)變得相當(dāng)不穩(wěn)定和困難。因此,團(tuán)隊(duì)就需要重新思考長期問題的解決方法。這是一種全新的思考方式,開發(fā)者更少鉆研編寫代碼,而是關(guān)注問題如何解決。有趣的是,我的一位同事最近就談到了這個(gè)話題,他們與一位高管交談時(shí),這位高管焦慮于有些開發(fā)者不再觸摸鍵盤,看起來沒有在工作。對(duì)此,我的同事的回應(yīng)是:不對(duì),現(xiàn)在他們正在工作。如今,編寫代碼面臨的最大挑戰(zhàn)是思考問題和解決方案,「想」才是開發(fā)者現(xiàn)在的工作。
《新程序員》:寫代碼可以成為一門課程,但“思考”卻是抽象的。因此,如何教會(huì)人思考并提問將是提示工程面臨的一個(gè)問題。
Kristan:這個(gè)說法很好地詮釋了我所說的事情。在以往的開發(fā)工作中,一些高級(jí)開發(fā)人員負(fù)責(zé)考慮特定問題并設(shè)計(jì)架構(gòu)模式來解決問題,而較低級(jí)別的開發(fā)人員則負(fù)責(zé)根據(jù)這些模式構(gòu)建環(huán)境。然而,如果 ChatGPT 等人工智能工具取代了人們目前使用的方法,那么初級(jí)開發(fā)人員將如何學(xué)習(xí)和成長呢?我們?cè)撊绾未_保初級(jí)開發(fā)人員有機(jī)會(huì)成為高級(jí)開發(fā)人員?這是一個(gè)需要思考的問題。
《新程序員》:ChatGPT 目前的生成結(jié)果仍需人為檢查。但也許有一天,它也會(huì)像我們現(xiàn)在所擁有的工具一樣,讓我們對(duì)其深信不疑。
Kristan:如果我們只是從他人那里學(xué)習(xí),那就永遠(yuǎn)不會(huì)創(chuàng)新,因?yàn)槲覀冎皇窃谧冯S已經(jīng)完成的事情,而不是引領(lǐng)潮流。ChatGPT 或其他大語言模型可以展示如何解決以前的問題,但并不一定能夠以不同的方式解決問題。它可能會(huì)將一些東西組合在一起,而創(chuàng)新本身仍然是人類活動(dòng)的一部分。
《新程序員》:有不少學(xué)生在這場(chǎng) AI 浪潮中誕生了一些想法:“我學(xué)習(xí)編程還有意義嗎?”、“對(duì)我來說,學(xué)習(xí)寫博客還有什么意義嗎?”……您認(rèn)為新生代的程序員還需要學(xué)習(xí)傳統(tǒng)理論嗎?
Kristan:很有趣的問題。目前來看,我認(rèn)為學(xué)習(xí)傳統(tǒng)理論仍然是必要的,但若問未來是否仍然需要,我就不確定了。我們先前討論過,來自 AI 的答案并不總是正確的,但你要怎么判斷 AI 給出的答案是否正確?我認(rèn)為,在未來總是需要有人能夠指出代碼的錯(cuò)誤,傳授正確的 AI 使用方式。
我曾在午餐時(shí)聽到過一個(gè)笑話:有人用 ChatGPT 生成了一些代碼,但生成的代碼無法編譯通過。所以,他把代碼丟回 ChatGPT 并欺騙它:“這是我剛剛寫的代碼,已經(jīng)編譯通過了,請(qǐng)你再修復(fù)一下 Bug”,而 ChatGPT 卻回應(yīng)說:“這段代碼一切運(yùn)行正常”。
我想說的是,盡管 ChatGPT 在生成代碼方面有所幫助,但目前它顯然不能產(chǎn)生完美的代碼,它仍然需要人們填充剩余的部分或進(jìn)行一些調(diào)整。ChatGPT 可以大幅加快開發(fā)速度,但不能完全替代人類的角色。
另一個(gè)需要考慮的因素是,ChatGPT 和其他大語言模型目前帶來的效果無疑是創(chuàng)新的。它們將現(xiàn)有的內(nèi)容重新整合,并以新的形式呈現(xiàn)出來。但如果它們?cè)谖磥硪粌赡陜?nèi)繼續(xù)這樣做,又該由誰來提供新的內(nèi)容呢?因此,人類與大語言模型應(yīng)該共同合作,這是一個(gè)雙向奔赴的過程,而不是相互取代。這就是我認(rèn)為新生代程序員仍然需要學(xué)習(xí)傳統(tǒng)理論的原因。
「經(jīng)驗(yàn)」過多會(huì)限制人的判斷力
《新程序員》:您在許多領(lǐng)域具有廣泛經(jīng)驗(yàn)。在這 20 年間,您都是怎么整合不同領(lǐng)域的經(jīng)驗(yàn)并將其應(yīng)用于實(shí)際項(xiàng)目中的?
Kristan:對(duì)我來說,想實(shí)現(xiàn)這一點(diǎn)需要同時(shí)做好兩件事。
第一件事,在進(jìn)入一個(gè)新的領(lǐng)域工作時(shí),確保我不會(huì)假設(shè)自己已經(jīng)遇到過類似情況,以免產(chǎn)生誤解或錯(cuò)誤判斷。舉例來說,我以前在金融服務(wù)領(lǐng)域工作,后來轉(zhuǎn)到了零售業(yè)。盡管這兩個(gè)領(lǐng)域有一些相似之處,但是如果我過早地下結(jié)論并按照以前的方式行事,就很容易產(chǎn)生一些差異,甚至惹出麻煩。因此,花點(diǎn)時(shí)間了解具體背景非常重要。
第二件事,如果我提出的解決方案不太可行,那往往就是因?yàn)槲覜]有完全理解背景情況。所以,我總是會(huì)確保自己能快速、全面地獲取新工作的背景信息。特別是當(dāng)涉及到不同的技術(shù)或行業(yè)時(shí),我就更加需要仔細(xì)核對(duì)。
《新程序員》:但有的時(shí)候,我們可以從經(jīng)驗(yàn)里學(xué)到東西。
Kristan:確實(shí)可以,但不要總是套用過去的經(jīng)驗(yàn),那會(huì)影響到對(duì)新事物的判斷能力。
《新程序員》:在您領(lǐng)導(dǎo)技術(shù)項(xiàng)目的 20 年里,世界也經(jīng)歷過許多技術(shù)變革。您要如何在面臨技術(shù)變革時(shí)協(xié)調(diào)團(tuán)隊(duì)并推動(dòng)創(chuàng)新呢?
Kristan:關(guān)于這個(gè)問題,也是要做好兩件事。
首先,作為一家咨詢公司,我們的一個(gè)優(yōu)勢(shì)就是能接觸許多不同的行業(yè)和技術(shù)。因此,在團(tuán)隊(duì)適應(yīng)一項(xiàng)新技術(shù)之前,作為咨詢顧問,我自己必須率先迅速學(xué)習(xí)和適應(yīng)這些新技術(shù)。然后,在團(tuán)隊(duì)里我常用的方法是引導(dǎo)大家思考并質(zhì)疑:為什么這項(xiàng)新事物會(huì)以這種方式發(fā)生?為什么我們會(huì)按照特定的方式行事?這種質(zhì)疑的思維方式可以激發(fā)創(chuàng)新,因?yàn)橛袝r(shí)候我們會(huì)沉浸于習(xí)慣的力量,并對(duì)作出改進(jìn)抱有抵觸情緒。創(chuàng)新往往是通過觀察事物并深入了解其原理而產(chǎn)生的。
我很討厭一個(gè)術(shù)語:“行業(yè)最佳實(shí)踐”。如果世界上存在最佳實(shí)踐,那就意味著永遠(yuǎn)沒有更好的實(shí)踐方法。無論我們從事什么工作,都應(yīng)該思考如何改進(jìn),如何提升自己的工作水平,持續(xù)改進(jìn)永遠(yuǎn)是我們追求的目標(biāo)。
另一個(gè)我認(rèn)為非常有效的方法,是確保多樣性。當(dāng)我們談?wù)摱鄻有詴r(shí),不僅僅是指身體上的多樣性——男性和女性——還包括背景和出生國家以及文化的多樣性。不同的人以不同的方式看待問題,當(dāng)他們匯聚在一起時(shí),就會(huì)帶來更多的創(chuàng)新,因?yàn)樗麄兡軌驈牟煌嵌人伎紗栴}和解決方案。
質(zhì)疑是非常重要的,所以,我非常贊同在團(tuán)隊(duì)中鼓勵(lì)思考的多樣性,這比所有員工都一味地點(diǎn)頭盲從要好得多。我們應(yīng)該建立一種持續(xù)學(xué)習(xí)和不斷改進(jìn)的文化,并始終質(zhì)疑為什么要以某種方式行事,這種思維方式就是協(xié)調(diào)團(tuán)隊(duì)?wèi)?yīng)對(duì)技術(shù)變革的秘訣。
《新程序員》:總是迅速?zèng)Q策難免會(huì)出現(xiàn)錯(cuò)誤。如果您做出了錯(cuò)誤的決策,要如何補(bǔ)救?
Kristan:這也是一個(gè)有趣的問題。我想繼續(xù)建議兩點(diǎn):首先,快速做出決策,避免拖延。在工作中,最糟糕的情況就是老板一直不下決定,導(dǎo)致下面的團(tuán)隊(duì)成員都在等待,耽誤了工程進(jìn)展。
其次,當(dāng)發(fā)現(xiàn)做出的決策是錯(cuò)誤的時(shí)候,一定要有改變的能力。理想的工作環(huán)境應(yīng)該是即使犯了錯(cuò)誤的決策,也能夠誠實(shí)承認(rèn)并迅速做出改變。在做決策時(shí),我們需要思考的是:我正在做出的決定是什么?這個(gè)決定是否容易改變?如果決策本身容易改變,就不需要花太多時(shí)間去思考。但如果決策難以改變,就需要更多時(shí)間來確保做出正確的決策。
總之,如果我無法快速察覺或修正錯(cuò)誤,就要花更多時(shí)間確保團(tuán)隊(duì)朝著大體正確的方向前進(jìn)。
《新程序員》:隱私保護(hù)一直是數(shù)據(jù)分析和人工智能應(yīng)用面臨的挑戰(zhàn)之一。根據(jù)您的管理經(jīng)驗(yàn),Thoughtworks 要如何在技術(shù)分析時(shí)保護(hù)用戶數(shù)據(jù)隱私的同時(shí)提供可用的分析和預(yù)測(cè)?
Kristan:最早在 2015 年,這就是 Thoughtworks 經(jīng)常討論的一大問題,并且直到今天我們還在持續(xù)關(guān)注它。我們的方法是:僅保留必要的用戶數(shù)據(jù),遵循數(shù)據(jù)最小化的原則。數(shù)據(jù)越多,風(fēng)險(xiǎn)越高,那只要沒有數(shù)據(jù),就沒有人可以竊取數(shù)據(jù)。
在進(jìn)行測(cè)試時(shí),我們還會(huì)盡量避免使用真實(shí)的生產(chǎn)數(shù)據(jù)。我們會(huì)對(duì)數(shù)據(jù)進(jìn)行最小化處理,例如更改字段,以保持?jǐn)?shù)據(jù)結(jié)構(gòu)的一致性。這樣可以確保數(shù)據(jù)在測(cè)試過程中仍然能夠得到適當(dāng)?shù)尿?yàn)證,但是所有真實(shí)的個(gè)人信息都已經(jīng)被更改,以保護(hù)用戶的隱私。而且在 2023 年的今天,更改人名、地址等信息都可以自動(dòng)化操作了,不會(huì)浪費(fèi)太多時(shí)間。
《新程序員》:那你們會(huì)怎么保護(hù)這些數(shù)據(jù)?Thoughtworks 會(huì)為數(shù)據(jù)安全做些什么?
Kristan:數(shù)據(jù)安全也是個(gè)有趣的話題。這涉及一個(gè)在早期的技術(shù)雷達(dá)里被提及的術(shù)語,“縱深防御”(defence-in-depth)。簡而言之,建起一道無堅(jiān)不摧的高墻并不能保護(hù)好數(shù)據(jù),因?yàn)橐坏┯腥岁J入,你就無法確定其他的防御措施是否有效了。因此,根據(jù)數(shù)據(jù)的敏感程度,我們可以采取不同的加密策略,例如對(duì)每個(gè)數(shù)據(jù)集或每行數(shù)據(jù)進(jìn)行加密,或者僅對(duì)特定的表格進(jìn)行加密,甚至可以對(duì)整個(gè)指南進(jìn)行加密。
利用這種方式后,即使某些數(shù)據(jù)被獲取,也無法從中獲得有價(jià)值的信息。當(dāng)然,這也帶來了不小的挑戰(zhàn)。比如說,操作數(shù)據(jù)的人很可能希望擁有管理員權(quán)限以訪問所有的數(shù)據(jù)。但是,如果我們真把權(quán)限給了出去,會(huì)使系統(tǒng)變得非常脆弱。所以我們需要?jiǎng)?chuàng)建多個(gè)訪問點(diǎn),并根據(jù)用戶的需求進(jìn)行設(shè)置,只允許用戶訪問特定的數(shù)據(jù)部分而不是整個(gè)數(shù)據(jù)集。
這樣做會(huì)增加一些工作量,尤其影響了那些必須要處理所有統(tǒng)計(jì)數(shù)據(jù)的任務(wù)。所以,我們必須在隱私和安全之間進(jìn)行權(quán)衡:對(duì)于非常敏感的數(shù)據(jù),我們會(huì)采取更多的保護(hù)措施;對(duì)于不太敏感的數(shù)據(jù),就沒必要設(shè)下這樣的層層防護(hù)了。
與中國開發(fā)者的合作「經(jīng)驗(yàn)」涌現(xiàn)了許多創(chuàng)新
《新程序員》:在程序員群體中有一種說法,“程序員到 35 歲之后,要么轉(zhuǎn)管理層,要么退休”。你如何看待程序員轉(zhuǎn)型管理層的問題?
Kristan:我其實(shí)不確定自己是否同意這類說法,因?yàn)槲覀児镜拈_發(fā)者中仍有 50 歲和 60 歲的老手。我認(rèn)為,如果有人希望轉(zhuǎn)型到開發(fā)和管理領(lǐng)域,首先應(yīng)該考慮的是他們是否真的想要在事業(yè)上發(fā)展,以及是否有一些他們想要在管理方面實(shí)現(xiàn)但目前尚未實(shí)現(xiàn)的事情。
我就是從技術(shù)轉(zhuǎn)型管理的。當(dāng)時(shí)我開始關(guān)注自己的影響力,相信自己在當(dāng)管理后能夠產(chǎn)生巨大的影響,能營造一個(gè)能夠激勵(lì)眾多開發(fā)者取得成績并對(duì)社會(huì)做出巨大貢獻(xiàn)的環(huán)境。總而言之,在進(jìn)行這種轉(zhuǎn)變時(shí),我認(rèn)為首先要考慮自身的人際交往能力,因?yàn)椴⒎敲總€(gè)人都具備這些技能,所以不要強(qiáng)求轉(zhuǎn)變。目前仍有許多年齡較大的人從事著軟件開發(fā)工作,他們真正享受編寫代碼的過程,這是他們的熱情所在。
《新程序員》:你曾在澳大利亞和英國兩個(gè)不同的地區(qū)擔(dān)任過管理職位,你是如何應(yīng)對(duì)不同區(qū)域和文化環(huán)境下的管理挑戰(zhàn)的?
Kristan:有一句格言說過,人有兩只耳朵和一張嘴,使用它們的比例應(yīng)該是兩倍的傾聽和一倍的發(fā)言。無論在澳大利亞還是英國,我首先學(xué)會(huì)的都是傾聽。(We have two ears and one mouth so that we can listen twice as much as we speak.)
這句格言的起源可以追溯到古希臘哲學(xué)家伊皮克特魯斯(Epictetus),他在《論修道》(The Enchiridion)一書中提到了類似的觀點(diǎn)。其核心思想是強(qiáng)調(diào)人們應(yīng)該更多地傾聽而不是發(fā)言。
作為高管,我需要傾聽并理解人們實(shí)際存在的需求和面臨的問題。我時(shí)刻告誡自己:切勿不懂裝懂,不要看到相似的東西就把以前的經(jīng)驗(yàn)套用上去,然后馬上說出“這是我們應(yīng)該做的事情”之類的話。比起自己說話,我更應(yīng)該創(chuàng)造一個(gè)人們想說話的環(huán)境,讓面對(duì)我的人都可以坦率地說出自己的需求,分享他們的見解和想法。
還有一點(diǎn):創(chuàng)造一個(gè)讓人們感到能安全地學(xué)習(xí)的良好環(huán)境。我喜歡說“失敗是安全的”,因?yàn)閷W(xué)習(xí)是從失敗中汲取教訓(xùn),以便不再重蹈覆轍,但純粹的失敗或打擊是學(xué)不到任何東西的。所以我要?jiǎng)?chuàng)造一個(gè)讓人們感到不會(huì)因失敗而孤單的環(huán)境,并且在他們的努力中給予支持。
這些道理是通用的,但在不同的文化中,如何實(shí)施上述原則可能會(huì)有所不同。所以我會(huì)先理解每個(gè)地域的文化差異,并相應(yīng)地調(diào)整自己的做法。
《新程序員》:Thoughtworks 近期有哪些針對(duì)中國的戰(zhàn)略方向和發(fā)展意愿嗎?
Kristan:是的,當(dāng)然有。我上次來中國是在 4 年前,這期間和中國區(qū)的同事都是通過網(wǎng)絡(luò)交談。我們一直希望能夠重新建立與中國同事的聯(lián)系。這次來中國讓我更加確信,花時(shí)間面對(duì)面相處,可以獲得與視頻會(huì)議不同的協(xié)同工作體驗(yàn)(見圖5)。而且,比起讓中國辦公室的人去其他國家,我更希望讓其他國家的團(tuán)隊(duì)來參觀中國。
我們確實(shí)看見了中國存在的創(chuàng)新和技術(shù)文化,ChatGPT 就是一個(gè)典型的例子,GPT 浪潮中涌現(xiàn)的許多文章都源自中國。我們想了解中國正在做什么,以便將這些思想更好地運(yùn)用于其他國家和領(lǐng)域的工作上。
圖 5 久別四年中國的 Kristan Vingrys《新程序員》:Thoughtworks 的員工和辦事處遍布全球。鑒于全球范圍內(nèi)遠(yuǎn)程辦公的增長趨勢(shì),Thoughtworks 是否在推動(dòng)遠(yuǎn)程辦公方面采取了相關(guān)戰(zhàn)略?
Kristan:不同的國家有不同的情況,這和當(dāng)?shù)卣哂悬c(diǎn)關(guān)系,但最關(guān)鍵的問題在于人文習(xí)慣。讓我分享一下自己觀察到的情況:
首先以北美為例:想象一下,作為一名美國顧問,你需要頻繁出差。你周一出發(fā),周五回家,所以你就經(jīng)常無法和家人在一起,旅途成為了生活的常態(tài)。所以北美的員工現(xiàn)在更喜歡遠(yuǎn)程辦公,這讓他們可以花更多的時(shí)間陪伴家人。
而在一些其他國家,如澳大利亞,出差次數(shù)就比較少。因?yàn)?Thoughtworks 在澳大利亞的工作主要集中于墨爾本、悉尼和布里斯班這三個(gè)大城市,你可以白天去辦公室或和客戶見面,然后晚上回家。因此,人們反而不太愿意每周通勤五天,而是每周工作兩到三天,因?yàn)橥耆珱]必要每天都去辦公室。
然后就是中國——對(duì)中國我也很熟悉,因?yàn)槲覀兘?jīng)常合作。中國區(qū)的同事習(xí)慣于在辦公室一起工作,很多人選擇回到辦公室工作,因?yàn)檫@是他們習(xí)慣的團(tuán)隊(duì)合作方式。
在西班牙和巴西,我也觀察到了一些特殊情況。這些國家與高緯度國家的時(shí)區(qū)接近,而西班牙的生活成本相對(duì)較低,因此我發(fā)現(xiàn)英國公司非常樂意雇傭西班牙人,并支付西班牙人與英國同等水平的薪資,供他們遠(yuǎn)程工作。這對(duì)西班牙員工來說是個(gè)很大的機(jī)會(huì),因?yàn)橛纳畛杀具h(yuǎn)高于西班牙。所以,對(duì)于一般員工來說,情況也有所不同。
前幾年,由于人才緊缺,每個(gè)人都想進(jìn)行數(shù)字化轉(zhuǎn)型。當(dāng)時(shí)人才供不應(yīng)求,員工處于有利位置。而現(xiàn)在許多科技公司都在進(jìn)行裁員,形勢(shì)也不再那么緊迫,權(quán)力轉(zhuǎn)移到了雇主手中,而不是員工手中。
我最近其實(shí)也收獲了許多人的意見:有人喜歡遠(yuǎn)程工作,有人則感覺自己這幾年錯(cuò)過了與人交流的感覺;有人想要將家庭生活和工作生活分開,有人希望在完成工作后回到家里;有人想一直待家里,但又感覺這會(huì)混淆自己對(duì)工作時(shí)間的感覺。所以,情況因人而異。總的來說,我觀察到遠(yuǎn)程辦公可能不再是趨勢(shì),部分人已經(jīng)傾向于回到辦公室工作了。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。