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