如何讓團(tuán)隊(duì)真正接受 AI 編程助手
你的團(tuán)隊(duì)是否開(kāi)通了AI編程助手卻面臨使用率低的問(wèn)題?除了常規(guī)的知識(shí)分享,還有哪些方法能有效提升使用率?本文將分享我們團(tuán)隊(duì)在啟用GitHub Copilot后的實(shí)踐經(jīng)驗(yàn)與解決方案。

一、為什么要提高AI編程助手的使用率?
在討論“如何提高”之前,我們得先想清楚“為什么要提高”。
我個(gè)人認(rèn)為這是基于一個(gè)核心假設(shè):使用AI編程助手可以提升開(kāi)發(fā)效率,且使用的越多,效率提升越顯著。讓我們暫且相信這個(gè)假設(shè)是成立的,并通過(guò)實(shí)踐來(lái)驗(yàn)證它。
那么,我們能強(qiáng)制要求團(tuán)隊(duì)成員在所有開(kāi)發(fā)工作中都用AI編程助手生成代碼嗎?在假設(shè)未被充分證明之前,這樣做風(fēng)險(xiǎn)極大:萬(wàn)一它不能提高開(kāi)發(fā)效率怎么辦?萬(wàn)一它并不是“用的越多,效率提高就越多”又怎么辦?正如我在《如何處理未知問(wèn)題?》[1]中所討論的,處理這類(lèi)情況的關(guān)鍵在于減少潛在損失,最好的方式是賦予開(kāi)發(fā)人員自主權(quán)——讓他們自行決定何時(shí)、在何種場(chǎng)景下使用AI編程助手。
在開(kāi)發(fā)人員可以自由決定是否使用AI編程助手的情況下,使用率會(huì)自然提升嗎?從我所在的團(tuán)隊(duì)使用GitHub Copilot三個(gè)月后的情況看,開(kāi)發(fā)人員主要在以下場(chǎng)景中頻繁使用:
- 代碼理解
- 方案分析
- 函數(shù)級(jí)代碼重構(gòu)
- 函數(shù)級(jí)算法實(shí)現(xiàn)
- 單元測(cè)試生成
而在這些場(chǎng)景下中則很少用:
- 行級(jí)代碼修改
- 能用IDE快捷鍵完成的修改
- Bug修復(fù)
- 復(fù)雜任務(wù)的實(shí)現(xiàn)(特別是跨文件或跨模塊的)
如果沒(méi)有外部干預(yù),團(tuán)隊(duì)的使用模式會(huì)趨于穩(wěn)定。若要進(jìn)一步提升開(kāi)發(fā)效率,關(guān)鍵在于提高 AI 編程助手在復(fù)雜任務(wù)中的使用率。那么,如何實(shí)現(xiàn)這一目標(biāo)?接下來(lái)我們將展開(kāi)討論。
二、AI編程助手的使用率模型
AI編程助手類(lèi)似于自動(dòng)化編程工具,能夠自動(dòng)執(zhí)行開(kāi)發(fā)人員指定的任務(wù)。在人機(jī)交互領(lǐng)域,關(guān)于自動(dòng)化工具的研究有很多,而《Trust, self-confidence, and operators' adaptation to automation》[2]中的模型尤其適合解釋AI編程助手的使用率:


我們將使用率(Usage Rate)定義為開(kāi)發(fā)人員使用AI編程助手的時(shí)間占總開(kāi)發(fā)時(shí)間的比例。根據(jù)模型,影響使用率的因素包括以下四個(gè):
- 信任(Trust):開(kāi)發(fā)人員對(duì)AI編程助手的信任程度,可通過(guò)主觀(guān)評(píng)分(1-10分)衡量。
- 自信(Self Confidence):開(kāi)發(fā)人員對(duì)自己能力的信任程度,同樣以1-10分的主觀(guān)評(píng)分衡量。
- 偏見(jiàn)(b):開(kāi)發(fā)人員對(duì)AI編程助手的負(fù)面傾向,主要受歷史經(jīng)驗(yàn)和環(huán)境的影響。 b值越大,使用意愿越低。
- 慣性系數(shù)(s):開(kāi)發(fā)人員維持現(xiàn)有工作習(xí)慣的傾向強(qiáng)度。s值越大,越難改變當(dāng)前開(kāi)發(fā)習(xí)慣。
需要注意的是,AI編程助手是通用工具,而非單一功能工具,其模型參數(shù)(Trust、Self Confidence、b、 s)會(huì)因任務(wù)類(lèi)型而異。例如:
- 開(kāi)發(fā)人員相信AI 編程助手可以高效的生成代碼塊,但未必相信它能高效的修復(fù)線(xiàn)上Bug。
- 開(kāi)發(fā)人員對(duì)自己實(shí)現(xiàn)新功能有信心,但不代表他對(duì)架構(gòu)重構(gòu)有同樣的自信。
- 開(kāi)發(fā)人員在個(gè)人項(xiàng)目中敢于大膽嘗試 AI 編程助手,但在商業(yè)項(xiàng)目中會(huì)因?yàn)轱L(fēng)險(xiǎn)而更加保守。
- 隨著信任程度的提升,代碼塊生成的使用率增長(zhǎng)會(huì)快于簡(jiǎn)單重構(gòu)(可以用快捷鍵完成的重構(gòu))。
1. 如何提高AI編程助手的使用率?
根據(jù)模型,我們可以采取以下措施來(lái)提高使用率:
(1) 消除偏見(jiàn)( b )
- 增強(qiáng)使用動(dòng)機(jī):將AI編程助手的使用納入能力評(píng)估,鼓勵(lì)探索、分享成功案例和最佳實(shí)踐,解決團(tuán)隊(duì)痛點(diǎn)。
- 認(rèn)可使用成本:AI編程助手需要投入時(shí)間編寫(xiě)提示詞、審查代碼和試錯(cuò),甚至可能無(wú)回報(bào)。若不認(rèn)可這些成本,開(kāi)發(fā)人員會(huì)因顧慮而減少使用。
- 加強(qiáng)信息共享:通過(guò)共享成功與失敗經(jīng)驗(yàn),總結(jié)有效實(shí)踐并推廣,以減少偏見(jiàn),提高使用率。
(2) 校準(zhǔn)主觀(guān)感受( Trust,Self Confidence )
開(kāi)發(fā)人員對(duì)AI編程助手的信任程度(Trust)和自身能力的自信程度(Self Confidence)是影響使用率的主要因素。這兩者均為主觀(guān)感受,需要通過(guò)提供足夠的信息來(lái)校準(zhǔn):
- 展示AI編程助手的實(shí)際開(kāi)發(fā)效率。
- 對(duì)比開(kāi)發(fā)人員自身與AI編程助手的效率差異。
(3) 提升信任程度( Trust )
在人機(jī)交互領(lǐng)域,信任已從人與人之間擴(kuò)展到人對(duì)自動(dòng)化工具的信任。具體如何提升信任程度,我們將在下一節(jié)詳細(xì)討論。
三、AI編程助手的信任模型
關(guān)于信任,有各種各樣的模型來(lái)描述它的組成部分。有的將其描述為能力、誠(chéng)信、一致性、忠誠(chéng)和開(kāi)放性[3]。有的將其描述為可信度、可靠度、親密度和自我導(dǎo)向[4]。還有的將其描述為能力、仁慈和誠(chéng)信[5]。
這里我采用了更適合自動(dòng)化工具的信任模型,源自論文《Trust in Automation: Designing for Appropriate Reliance》[6]。該模型將信任的組成部分定義為任務(wù)表現(xiàn)(Performance)、任務(wù)過(guò)程(Process)和設(shè)計(jì)意圖(Purpose):

其中:
(1) 任務(wù)表現(xiàn)( Performance ):AI編程助手當(dāng)前和歷史的表現(xiàn)情況,包括穩(wěn)定性、可預(yù)測(cè)性和能力等特征。它主要在具體的任務(wù)和使用場(chǎng)景中進(jìn)行體現(xiàn)。例如:
- 是否熟悉開(kāi)發(fā)人員所在的領(lǐng)域
- 是否熟悉開(kāi)發(fā)人員的任務(wù)上下文
- 是否可以理解開(kāi)發(fā)人員指定的任務(wù)
- 是否可以在預(yù)期的時(shí)間內(nèi)完成任務(wù)
- 是否可以保證任務(wù)完成的質(zhì)量
- 是否可以多次使用時(shí)穩(wěn)定的完成任務(wù)
(2) 任務(wù)過(guò)程( Process ):AI編程助手完成任務(wù)的方式,包括可靠性、開(kāi)放性,一致性和可理解性等特征。它主要在行為方式中進(jìn)行體現(xiàn)。例如:
- 是否會(huì)針對(duì)開(kāi)發(fā)人員的任務(wù)提出好問(wèn)題
- 是否可以在實(shí)現(xiàn)之前給出詳細(xì)計(jì)劃
- 是否可以保證實(shí)現(xiàn)和計(jì)劃描述的一樣
- 是否可以按照開(kāi)發(fā)人員的最佳實(shí)踐來(lái)完成任務(wù)
- 是否遵守開(kāi)發(fā)人員的指令
- 是否尊重開(kāi)發(fā)人員的反饋
- 是否允許開(kāi)發(fā)人員隨時(shí)打斷
- 是否有完善的權(quán)限控制機(jī)制
- 是否可以方便的退出和恢復(fù)環(huán)境
(3) 設(shè)計(jì)意圖( Purpose ):AI編程助手的設(shè)計(jì)意圖和開(kāi)發(fā)人員目標(biāo)的一致程度。例如:
- 是否存在幻覺(jué)
- 是否可以保證數(shù)據(jù)安全
- 是否可以保證合法合規(guī)
- 是否存在惡意操作
- 是否存在故意欺騙
- 是否尊重開(kāi)發(fā)人員的目標(biāo)
四、AI編程助手的信任提升模型
在討論信任提升模型之前,我們需要先根據(jù)SRK行為模型(Skill-Rule-Knowledge Behavioral Model)[7]對(duì)AI編程助手的潛在錯(cuò)誤行為進(jìn)行分類(lèi),從而有針對(duì)性地分析影響信任的行為。
1. 錯(cuò)誤行為的分類(lèi)[8]

根據(jù)SRK行為模型,我們可以將AI編程助手的錯(cuò)誤行為歸為以下三類(lèi):
- 失誤(Skill-based Slips):行為本身是正確的,但在執(zhí)行的時(shí)候出錯(cuò)了。例如,生成錯(cuò)誤的依賴(lài)安裝命令,讀取命令行輸出失敗等。
- 規(guī)則錯(cuò)誤(Rule-based Mistakes):行為本身是錯(cuò)誤的,原因是遵循了錯(cuò)誤的規(guī)則。例如,未遵循TDD 原則,導(dǎo)致先寫(xiě)代碼后寫(xiě)測(cè)試;未拆分邏輯,導(dǎo)致模塊臃腫等。
- 知識(shí)錯(cuò)誤(Knowledge-based Mistakes):行為本身是錯(cuò)誤的,原因是缺乏相關(guān)規(guī)則或知識(shí)。例如,未學(xué)習(xí)最新語(yǔ)言特性,生成過(guò)時(shí)代碼;誤解專(zhuān)業(yè)術(shù)語(yǔ),生成錯(cuò)誤邏輯等。
2. 信任提升模型

為了提升對(duì)AI編程助手的信任程度,我們需要采取以下措施:
- 建立賦能團(tuán)隊(duì):建立一個(gè)專(zhuān)門(mén)的團(tuán)隊(duì)來(lái)推動(dòng)和協(xié)調(diào)整個(gè)過(guò)程。
- 效能可視化:將AI編程助手與開(kāi)發(fā)人員的表現(xiàn)進(jìn)行可視化,以便校準(zhǔn)我們對(duì)AI編程助手的信任程度以及我們的自信水平。
- 搭建知識(shí)分享平臺(tái):建立一個(gè)全面的知識(shí)分享平臺(tái),讓每個(gè)人都能及時(shí)了解公司的AI戰(zhàn)略、成功或失敗的案例研究、AI編程助手的使用方法及其內(nèi)部工作原理等信息。
基于以上措施,我們將采用試錯(cuò)法(Trial-and-Error)[9]來(lái)不斷迭代改善AI編程助手的行為。在這個(gè)過(guò)程中,我們要持續(xù)進(jìn)行試驗(yàn)并收集失敗的案例,識(shí)別導(dǎo)致低信任度的行為,并進(jìn)行相應(yīng)的改進(jìn)。
對(duì)于識(shí)別出的低信任度的行為,我們需要根據(jù)信任模型對(duì)其進(jìn)行分析,找出造成低信任度的原因,并針對(duì)這些不同層面的問(wèn)題,采取不同的分析和改進(jìn)策略:
(1) 設(shè)計(jì)意圖(Purpose)問(wèn)題:如模型幻覺(jué)度高,數(shù)據(jù)泄露等。
需要從公司層面進(jìn)行分析,因?yàn)樗婕暗?AI 編程助手的采購(gòu)決策。例如,幻覺(jué)度高可能是由于合同中沒(méi)有啟用高級(jí)模型;數(shù)據(jù)泄露是因?yàn)槿狈ν晟频臄?shù)據(jù)保護(hù)機(jī)制。公司應(yīng)根據(jù)分析結(jié)果決定是否更新合同或選擇其他 AI 編程助手,以確保其設(shè)計(jì)意圖與我們的目標(biāo)一致。這類(lèi)問(wèn)題的改進(jìn)對(duì)我們?cè)黾訉?duì) AI 編程助手的信任程度影響最大。
(2) 任務(wù)過(guò)程(Process)問(wèn)題:如沒(méi)有按TDD實(shí)現(xiàn)需求,缺乏規(guī)劃等。
需要在團(tuán)隊(duì)層面結(jié)合錯(cuò)誤行為分類(lèi)進(jìn)行分析,因?yàn)槊總€(gè)團(tuán)隊(duì)的實(shí)踐不同,任務(wù)過(guò)程也各異。例如,未按 TDD 實(shí)現(xiàn)需求可能是 AI 選擇了傳統(tǒng)方式;直接生成代碼而無(wú)解釋可能是為了更快完成任務(wù)。團(tuán)隊(duì)?wèi)?yīng)根據(jù)分析結(jié)果為 AI 編程助手補(bǔ)充缺失的技能、規(guī)則或知識(shí)以?xún)?yōu)化任務(wù)過(guò)程。這類(lèi)問(wèn)題的改進(jìn)對(duì)我們?cè)黾訉?duì) AI 編程助手的信任程度有中等影響。
(3) 任務(wù)表現(xiàn)(Performance)問(wèn)題:如無(wú)法讀取命令行輸出內(nèi)容,安裝過(guò)時(shí)依賴(lài)等。
需要在開(kāi)發(fā)人員層面結(jié)合錯(cuò)誤行為分類(lèi)進(jìn)行分析,因?yàn)槊總€(gè)開(kāi)發(fā)人員面對(duì)的任務(wù)不同。例如,使用錯(cuò)誤框架可能是不了解當(dāng)前項(xiàng)目的技術(shù)棧;無(wú)法讀取命令行輸出內(nèi)容可能是命令行的集成有問(wèn)題;生成巨大類(lèi)可能是沒(méi)有遵守開(kāi)閉原則。開(kāi)發(fā)人員應(yīng)根據(jù)分析結(jié)果為 AI 編程助手補(bǔ)充必要的技能、規(guī)則或知識(shí)以提高任務(wù)表現(xiàn)。這類(lèi)問(wèn)題的改進(jìn)對(duì)我們?cè)黾訉?duì) AI 編程助手的信任程度影響最小。
通過(guò)上述層次分明的分析和改進(jìn)策略,我們可以系統(tǒng)地提升對(duì)AI編程助手的信任程度,并使其更好地服務(wù)于我們的目標(biāo)。
五、信任提升模型在GitHub Copilot中的應(yīng)用
1. 系統(tǒng)指令模板
基于信任提升模型,我們從知識(shí)、規(guī)則和技能三個(gè)維度優(yōu)化 GitHub Copilot 的行為,設(shè)計(jì)以下系統(tǒng)指令模板:
Knowledge用于修正知識(shí)錯(cuò)誤,補(bǔ)充缺失的信息。例如,系統(tǒng)架構(gòu)、代碼規(guī)范、技術(shù)棧等信息。

Rules用于修正規(guī)則錯(cuò)誤,明確適用的開(kāi)發(fā)規(guī)則。例如,問(wèn)題界定、先制定方案后實(shí)現(xiàn)、遵循TDD原則等。

Skills用于減少執(zhí)行失誤,強(qiáng)化關(guān)鍵開(kāi)發(fā)技能。例如,問(wèn)題界定能力、方案制定能力、TDD實(shí)踐能力等。

文末查看完整模板[10]。
2. 團(tuán)隊(duì)協(xié)作
該模板由團(tuán)隊(duì)AI負(fù)責(zé)人維護(hù),確保GitHub Copilot的開(kāi)發(fā)符合團(tuán)隊(duì)最佳實(shí)踐,包括問(wèn)題界定、規(guī)劃、TDD、測(cè)試等環(huán)節(jié)。模板上傳至代碼庫(kù)后,團(tuán)隊(duì)成員使用GitHub Copilot時(shí)將遵循這些實(shí)踐,雖不能保證任務(wù)全部成功,但能提高成功率。失敗任務(wù)需分析原因,補(bǔ)充缺失的知識(shí)、規(guī)則或技能到模板中,逐步形成代碼庫(kù)獨(dú)有的系統(tǒng)指令。
AI負(fù)責(zé)人需熟悉各代碼庫(kù)的系統(tǒng)指令,提取常用的知識(shí)、規(guī)則和技能并更新到模板中。通過(guò)這一過(guò)程,團(tuán)隊(duì)對(duì) GitHub Copilot的信任程度和使用率將逐步提升。
六、總結(jié)
AI編程助手就像是一個(gè)新員工,盡管它可能具備強(qiáng)大的能力,但我們?nèi)孕枰獙?duì)其進(jìn)行重新培訓(xùn),使其符合我們的價(jià)值觀(guān),遵守我們的最佳實(shí)踐,并掌握我們所需要的技能。只有在我們充分信任它時(shí),才有可能將重要的任務(wù)交給它完成。




































