AIGC遠不止是代碼輔助
生成式人工智能(AIGC)對于軟件開發(fā)人員的生產(chǎn)力有重要的潛力。但要成功利用它,需要將其視為不僅僅是代碼生成工具而已。
生成式人工智能(AIGC)可以徹底改變軟件開發(fā)。它具有驅(qū)動軟件開發(fā)人員顯著提高生產(chǎn)力的能力,可以加快創(chuàng)新周期和上市時間。然而,如果將其狹窄地視為僅僅是代碼生成工具,其潛在影響可能會受到嚴重削弱。不幸的是,這種觀點并不少見;它建立在對AIGC和軟件開發(fā)實踐的誤解之上。
這意味著,對于愿意與軟件開發(fā)過程和技術(shù)團隊的工作密切合作的業(yè)務和技術(shù)領(lǐng)導者來說,這里存在真正的機會。通過承認AIGC可以支持軟件開發(fā)人員以及不能支持的領(lǐng)域,他們可以成為第一個有效利用AIGC獲得真正競爭優(yōu)勢的人,使軟件開發(fā)人員不僅工作更快,而且更智能。
AIGC可以在哪些方面增加價值?
毫無疑問,AIGC可以在整個軟件開發(fā)生命周期中增加顯著的價值。然而,要量化這個價值是異常困難的。事實上,量化AIGC的增值可能窄化AIGC的潛在影響。在Thoughtworks,我們認為僅關(guān)注代碼生產(chǎn)力帶來的好處是逆向思維的;根據(jù)我們的經(jīng)驗,我們主張將AIGC視為工具的一部分,與工作方式和正確的團隊拓撲結(jié)構(gòu)一起,可以推動縮短上市時間、提高質(zhì)量,并持續(xù)維持團隊士氣。這與最近的研究和媒體報道所采用的方法有所不同,它們將重點放在有限且相對簡單的問題背景下測量編碼速度上,而幾乎忽略了AIGC在軟件開發(fā)過程其他部分的價值。
這些通常是軟件開發(fā)工作中復雜的部分,通常涉及摩擦或浪費的點。雖然它們可能不容易被量化,但我們相信,這些部分可能正是使用AIGC最有影響力的地方。在過去幾個月中,Thoughtworks的一小組人一直在進行一系列實驗,探索AIGC工具(如ChatGPT和GitHub Copilot)在軟件開發(fā)生命周期中的潛力。我們看到的結(jié)果是令人鼓舞的,結(jié)果表明生產(chǎn)力可能增加10%-30%。不過需要注意的是,這種生產(chǎn)力的提升取決于三個因素:
開發(fā)體驗:工程師需要知道要詢問什么,并且具備判斷AIGC輸出的能力,而不會影響質(zhì)量。
對AIGC的使用經(jīng)驗:這些工具需要人類的輸入,這意味著用戶需要掌握知識和技能,不僅要編寫有效的提示,還要了解如何使用這些工具,并在它們只是分散注意力的情況下繼續(xù)前進。
所處理問題的性質(zhì):對于定義明確的問題,AIGC是有效的,但隨著問題的擴大或復雜化,它很可能無法帶來生產(chǎn)力的提升。
在考慮了這些重要的注意事項之后,現(xiàn)在讓我們來看看AIGC如何為開發(fā)人員的工作增加價值。
降低重復性工作,為高價值任務創(chuàng)造更多時間
AIGC在模式匹配和模式合成方面表現(xiàn)出色,比如將一種語言翻譯成另一種語言。這種優(yōu)勢在軟件交付中最明顯的應用是一種新型的代碼生成,其中AI將自然語言翻譯成代碼,或?qū)⒁环N類型的代碼轉(zhuǎn)換成另一種類型的代碼。但這也可以在其他領(lǐng)域中利用,比如將變更日志翻譯成發(fā)布描述,將代碼和團隊聊天轉(zhuǎn)化為更連貫的文檔,或?qū)⒎墙Y(jié)構(gòu)化信息映射到更結(jié)構(gòu)化的格式和模板中。它甚至可以幫助團隊生成測試和示例數(shù)據(jù)。
換句話說,它可以消除一些耗時的任務,使開發(fā)人員有更多時間從事復雜的、增加價值的工作。它可以為我們進行模式匹配;然后我們完善結(jié)果并完成“最后一英里”的工作。
更早更完整的思考
大語言模型(LLMs)有能力讓我們感到驚訝。這就是為什么人們常說它們會“產(chǎn)生幻覺” - 也就是說,產(chǎn)生一個具有誤導性或虛假性的輸出,似乎與其訓練數(shù)據(jù)不符。雖然在某些使用情況下,這顯然會帶來風險,但它們能夠提供意想不到的東西,使它們成為極好的頭腦風暴合作伙伴和創(chuàng)意工具。它們可以指出我們思考中的空白之處。
我們已經(jīng)看到在產(chǎn)品和策略創(chuàng)意方面取得了很好的結(jié)果,例如啟動一個LLM來生成可以引發(fā)不同思維的場景。我們還使用LLMs作為辯論伙伴,以增強用戶故事和測試場景。例如,如果我們嘗試構(gòu)想給定應用程序可能被使用的不同方式,LLMs可以幫助擴展我們的思維,填補我們沒有考慮到的場景的空白。這樣做的好處是,通過更有效地捕捉需求,我們減少了以后的重復工作的需要 - 大大提高了開發(fā)過程的速度。
及時獲取信息
對于軟件開發(fā)人員來說,最大的低效之一是尋找正確的信息。從在線搜索到內(nèi)部文檔,知道應該去哪里找到所需的信息可能會增加很大的負擔。
AIGC提供了在大量非結(jié)構(gòu)化信息源上提供新類型的搜索功能的機會。這已經(jīng)在發(fā)生了:GitHub的Copilot CHAT(本文撰寫時為測試版)建立在Copilot現(xiàn)有的編碼輔助功能基礎(chǔ)上,為開發(fā)人員提供自然語言和上下文特定的支持。類似地,Atlassian Intelligence為用戶提供了一種瀏覽和搜索密集及非結(jié)構(gòu)化機構(gòu)信息的方式。當然,AIGC系統(tǒng)必須得到適當?shù)募?,并在必要的?shù)據(jù)上進行訓練,但是有效使用時,它們可以使軟件交付團隊輕松獲取與當前任務相關(guān)的信息。這也為組織提供了展示特別關(guān)鍵信息的新方式,比如提供工具來提醒用戶需要檢查的合規(guī)性或安全問題。
雖然不應將AIGC聊天機器人視為深入和有來源研究的完全替代品 - 并且始終應監(jiān)控其準確性和“幻覺” - 但如果它們經(jīng)過訓練以考慮用戶的上下文,它們在減少摩擦和提高生產(chǎn)力方面會變得非常有效。
風險
AIGC的風險并不是秘密。在最近幾個月中,“幻覺”、偏見和隱私問題已經(jīng)被廣泛討論和辯論。在軟件開發(fā)生命周期的背景下,這些風險將因工程團隊的能力、文化和目標而表現(xiàn)出不同的形式。
例如,將AIGC工具引入一個經(jīng)驗不足的開發(fā)團隊有可能削弱而不是增強他們的效率和交付的軟件質(zhì)量。例如,當面對AIGC生成的代碼不工作時,經(jīng)驗不足的開發(fā)人員可能會不必要地致力于解決方案,結(jié)果花費更多時間讓AI生成的代碼工作,而他們最好是閱讀相關(guān)文檔。
簡而言之,考慮到出錯和出現(xiàn)幻覺的可能性,必須始終謹慎對待產(chǎn)生的輸出。這在重復性至關(guān)重要時尤其如此:如果不付出足夠的關(guān)注,將AIGC應用于不成熟的實踐可能會加劇和固化現(xiàn)有問題,而非解決這些問題。
展望未來:成熟的工程實踐的重要性
為了充分利用AIGC并發(fā)揮其潛力,組織應該在軟件工程方面采用良好的實踐方法,包括持續(xù)集成/持續(xù)部署(CI/CD)和DevOps等。在AIGC時代,這些實踐比以往更重要,因為它們使測量和管理過程變得更容易。例如,如果你的工作流中包含交付指標,確定AIGC的影響以及可能出現(xiàn)的挑戰(zhàn),可以迅速予以解決。
這些實踐可以通過有效的AI操作模型進一步支持。這是一個戰(zhàn)略計劃,闡明了人工智能在組織中的使用方式,并在必要時提供指導和治理。好處是,它可以確保組織在快速變化的步伐中始終忠于其戰(zhàn)略目標、文化和現(xiàn)有流程。無論是指導工具決策還是賦予團隊應對不斷變化的監(jiān)管要求的能力,一個健全的操作模型可以幫助更好地跟上這些發(fā)展并相應地進行調(diào)整。
這并不意味著組織在AIGC方面需要采取自上而下的方法。更重要的是建立反饋循環(huán),確?;鶎庸ぷ骱蛻?zhàn)略決策之間的認識和協(xié)調(diào)。在技術(shù)快速變化的時期,這些反饋循環(huán)對組織的成功至關(guān)重要;市場上正在發(fā)生的事情可能很誘人,但這些反饋循環(huán)可以幫助領(lǐng)導團隊,確保他們的決策始終受到組織內(nèi)部發(fā)生的事情的啟發(fā)和緊密聯(lián)系。
這并不意味著要避免在市場方面保持警惕,而是要認識到真正重要的是組織的能力和意愿——充分授權(quán)開發(fā)團隊。作為領(lǐng)導者,我們需要支持他們通過好奇心和現(xiàn)有專業(yè)知識來推動他們自己的生產(chǎn)力。