人工智能不是軟件開發(fā)的“銀彈”
使用AI編程工具的開發(fā)者們,各位的工作效率究竟提高了多少?最近有猜測認(rèn)為,AI技術(shù)有望將開發(fā)者的工作效率提高2倍、3倍甚至是5倍。另有報告預(yù)測,到2030年軟件開發(fā)者的生產(chǎn)力將提高10倍。
但頗為諷刺的是,軟件工程領(lǐng)域甚至一直沒能在開發(fā)生產(chǎn)力的衡量指標(biāo)上達成一致。有些人甚至認(rèn)為這樣的指標(biāo)不可能存在,任何粗暴量化都有缺陷、不夠完善。如今,大多數(shù)關(guān)于AI技術(shù)能提高生產(chǎn)力的說法都屬于定性判斷——基于調(diào)查和見聞,而非具體數(shù)據(jù)。
但如果在開發(fā)生產(chǎn)力上都不能達成共識,那我們怎樣才能對AI做出正確判斷呢?如果說我們從之前的遠(yuǎn)程辦公中學(xué)到了什么的話,那就是如果沒有數(shù)據(jù)來指導(dǎo)決策,我們就必然要陷入困境——本本主義和意識形態(tài)開始占據(jù)高地,導(dǎo)致人們就現(xiàn)場辦公、遠(yuǎn)程辦公和混合辦公究竟誰更好吵作一團。
而AI的發(fā)展軌跡似乎又是一波輪回。為了順利向前邁進,我們必須想辦法從量化角度分析問題。
落后的風(fēng)險
目前,圍繞AI技術(shù)的炒作可謂甚囂塵上,不少冷靜的從業(yè)者甚至選擇先停一停。考慮到潛在質(zhì)量影響、抄襲風(fēng)險等現(xiàn)實因素,最謹(jǐn)慎的企業(yè)紛紛后撤,想先看清楚一切到底會如何發(fā)展。
但對科技型企業(yè)而言,落后的風(fēng)險將關(guān)乎生死存亡。AI是一劑雙重猛藥,不僅會將更多基于AI的新產(chǎn)品推向市場,也能在生產(chǎn)端降低產(chǎn)品的開發(fā)成本、縮短發(fā)布周期,以雙向奔赴的方式助力業(yè)務(wù)發(fā)展。
大多數(shù)企業(yè)一直關(guān)注“做什么”,而AI卻有望驅(qū)動“怎么做”,進而建立起10倍甚至100倍生產(chǎn)力的工程團隊。誰能快速跨越這道鴻溝,以最有效、最具影響力的方式優(yōu)化AI工具,誰就能快速跨上生產(chǎn)力的新高度,在未來幾年的市場上占據(jù)優(yōu)勢。相比之下,靜觀其變的風(fēng)險對很多公司來講確實難以承受。
做好權(quán)衡
手里拿著錘子,看什么都像釘子。同樣的情況在AI身上也有體現(xiàn)。
根據(jù)GitHub最近發(fā)布的報告,開發(fā)人員認(rèn)為AI編程工具的最大優(yōu)勢,就是提高了用戶的編程語言技能。另一個好處則是自動執(zhí)行重復(fù)性任務(wù),例如編寫樣板代碼。Codecov最近一項實驗表明,ChatGPT在實現(xiàn)細(xì)碎功能、為相對簡單的代碼路徑編寫基礎(chǔ)測試方面表現(xiàn)良好。
但與任何技術(shù)一樣,AI也有自己的權(quán)衡取舍。例如,生成式AI和大語言模型(LLM)無法執(zhí)行高度復(fù)雜或者創(chuàng)造性的任務(wù),例如將代碼庫從一種架構(gòu)遷移至另一種架構(gòu),或者將業(yè)務(wù)邏輯合并至新功能當(dāng)中。如果開發(fā)人員盲目接受AI生成的建議而不對潛在的抄襲、許可限制或幻覺做好檢查,就很可能引發(fā)難以預(yù)見的安全漏洞或法律糾紛。
但AI本來也沒必要成為顛覆軟件編寫和交付方式的“銀彈”。即使有著種種限制,仍不妨礙它以確定性方式完成有限的任務(wù)。這種將已知任務(wù)的處理周期或成本降低10倍的能力本身,已經(jīng)代表著巨大的進步。
對影響做量化
大多數(shù)開發(fā)人員已經(jīng)在使用AI驅(qū)動工具。根據(jù)GitHub的數(shù)據(jù),最近一項調(diào)查顯示,92%的用戶在工作或個人時間內(nèi)使用過AI編程工具。因此,企業(yè)必須盡早建立基準(zhǔn),用以比較新AI工具應(yīng)用前后的生產(chǎn)力差異。
即使是簡單的代理指標(biāo),也有助于對新工具的影響做出量化分析。例如,我們對擁有超過40萬開發(fā)者的社區(qū)進行一項研究,發(fā)現(xiàn)使用GitHub Copilot的開發(fā)者每次敲擊鍵盤,對應(yīng)的平均有效字符相當(dāng)于不使用AI編程助手的開發(fā)者的1.3倍,代碼行數(shù)則為1.22倍。雖然更多的代碼量并不一定等于更高的生產(chǎn)力,但使用GitHub Copilot之后,開發(fā)者的代碼編寫速度確實在不斷提高(在單元測試、函數(shù)和其他樣板代碼中均有體現(xiàn)),這證明他們在重復(fù)性工作上確實節(jié)約下了時間和精力。
同樣的,我們兩袖清風(fēng)應(yīng)衡量團隊在投資AI工具之前和之后的功能交付情況,借此量化實際影響。每位工程師所交付功能數(shù)量的增加(以及單項功能交付成本的降低)將為后續(xù)投資AI工具提供強有力的支持和依據(jù)。
功能的改動和重構(gòu),還有助于了解AI對于代碼質(zhì)量的影響。如果企業(yè)在應(yīng)用新AI編程工具后經(jīng)常遭遇質(zhì)量問題,則其用于功能改動和重構(gòu)的時間必然更多,能花在新功能開發(fā)上的時間反而會變少。
雖然任何軟件開發(fā)都必然涉及一部分改動和重構(gòu),但如果這兩項工作越來越多,那必然要影響到AI工具的投資回報率。
正確投資
要想回答AI是否提高了開發(fā)者生產(chǎn)力這個問題,我們必須首先為相關(guān)影響建立可見性體系。具體來講,就是在整個開發(fā)過程當(dāng)中,AI到底在何處、何時以及如何帶來最大的潛在投資回報。隨著生成式AI的迅速躥紅與瘋狂炒作,把握正確數(shù)據(jù)以了解真相正變得比以往任何時候都更加重要。
當(dāng)公司投資于AI開發(fā)工具時,可以通過將可觀測性應(yīng)用于軟件開發(fā)來增強團隊能力。這種可觀測性不僅有助于快速了解AI的局限性和機會空間,同時也將為生產(chǎn)力的影響因素打開新的討論通道(例如遠(yuǎn)程辦公、DevOps和內(nèi)部開發(fā)者平臺)。
毫無疑問,AI在提高生產(chǎn)力方面發(fā)揮著重要作用。但我們必須從事實出發(fā)了解其作用,從而做出更加明智的決策。