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