GitHub Copilot 是近年來最受矚目的 AI 開發輔助工具之一,其在網路上的討論熱度以及相關課程的數量均顯示出其受歡迎程度。有許多課程開課教學如何使用 GitHub Copilot 來提升開發效率或是怎樣使用GitHub Copilot,吸引了大量開發者上課。不可否認,GitHub Copilot 確實為開發人員提供了強大的幫助,尤其是即將推出的 GitHub Copilot Agent,更進一步讓開發更加簡便與自動化,讓我們只需撰寫需求的Prompt,就可以透過Agent 協助生成程式碼或是AI幫你寫程式。
什麼是 GitHub Copilot?
GitHub Copilot 是一款由 AI 驅動的程式開發助手,專為提升開發效率而設計。它透過分析大量的程式碼庫,提供即時的程式碼建議。這項工具支援多種程式語言,並能無縫整合至主流的開發環境中。GitHub Copilot 能有效簡化開發流程,減少重複性工作,同時提升團隊的整體生產力。
然而,從組織的角度來看,這項技術是否真能帶來足夠的價值或是實際的幫助?是否如課程或是網路講得這樣美好,是需要探討。此外,值得注意的是,GitHub Copilot 並非完全免費(雖然提供基本的免費版,但功能有限),因此採用此工具對企業而言是一項成本支出。雖然,很多人會認為單一授權的費用並不高,但若公司有一定的規模,這樣,整體成本將相當可觀。這使得組織在決策時必須仔細評估投資的成本效益,確保其能夠帶來足夠的效益或是審慎判斷是否人人需要
因此,在網路上也看到有這方面研究的文獻
Transforming Software Development: Evaluating the Efficiency and Challenges of GitHub Copilot in Real-World Projects
我們先來探討,AI工具是否真的能為每位開發者在各種開發任務中提供幫助?GitHub Copilot確實有潛力帶來生產力的革命性提升,但並非所有人都能從中平等受益。當兩位開發者使用相同工具時,其中一人可能效率顯著提升,而另一人卻可能效率下降。
從下圖可以了解,通常在實施生成式 AI 工具後,經驗豐富的開發者在處理低複雜度的開發需求或問題時,生產力可能會有邊際下降,甚至速度變慢的ˊ狀況。原因很簡單,經驗豐富且技術能力強的開發者通常能快速理解並解決簡單問題,畢竟,現在的透過模型生成的程式碼是可能存在一些錯誤,並且經常忽略一些重要特性,例如執行緒安全性、安全性或效能優化,當我們使用這類工具時,通常需要多次詢問或是調教才能設計出接近需求的提示,進而產生對的程式碼,隨後還需對生成的程式碼進行審查、完善,甚至修正。
雖然,表面上採用生成式 AI工具可以減少創建程式碼所需的精力,但這種減少的精力往往被創建提示、驗證程式碼,以及修復或調試生成程式碼所需的額外工作所取代,有時甚至可能耗費更多精力。
相對而言,對於經驗較少的開發者,當面對高複雜度的問題時,AI 工具可能略微提升其工作效率。然而,這種增幅通常不明顯,且因為經驗不足,有可能完全相信產生的程式碼,進而伴隨著AI 帶來的不確定性風險,例如:無法分辨產生的程式碼是否有錯誤或不是業務要求
舉一個實際案例來說:一位資歷較淺的軟體開發人員,在未充分理解程式碼基礎或缺乏背景知識的情況下使用 GitHub Copilot,可能會生成存在根本缺陷的程式碼。而由於經驗不足,他們可能無法察覺這些問題,最終導致整體企業的生產力下降,甚至影響系統品質。
因此,深入了解 GitHub Copilot 對生產力的不同影響,對於開發者能否充分發揮其工具效益是重要。畢竟,這項工具可能為少數員工帶來顯著效益,但同時也可能降低其他員工的績效。
就個人經驗來說,當我需要進行 POC來驗證架構或是雲端服務時候,就需要臨時撰寫一個系統來測試和驗證,這時候,我通常會採用它的Agent 模式,利用 GitHub Copilot自動化的生成系統,才能快速驗證架構與服務的可行性。同樣地,當遇到不熟悉的程式語言並需要進行開發或是驗證邏輯時時,也會透過 GitHub Copilot協助生成程式碼,快速完成驗證與測試。
然而,若是自己要開發企業內的正式系統,大多數情況下我仍會選擇自行開發。當對自己撰寫的部分有疑問或是想要優化時,才會使用 GitHub Copilot ,看看是否有更好的解法或是建議。最終,所有程式碼仍需經過自己的判斷與確認,才能放入正式系統中,同時,也要加以測試,是否這樣在邏輯與效能上是否沒問題
使用 GitHub Copilot前應用的認知
AI 的發展無疑充滿吸引力,但我認為它更像是一把雙面刃。在許多販售課程或商業宣傳中,往往只強調其美好的一面,卻忽略了背後可能隱藏的問題。不切實際的行銷宣傳,加上多數管理層對軟體工程師角色的認知不足,使得 使用AI工具能讓開發變成快速或是不需要多餘開發人員, 成為一個充滿爭議的話題。也因此,如果缺乏足夠的認知基礎,AI 的應用可能帶來另一種災難,而這種災難往往不易被察覺。所以,首先我們必須將...
詳細文章可以參閱對組織使用Github Copilot 投資的效益與風險