【ChatGPT先行者經驗:多奇數位創意總經理黃保翕】靠AI減少開發重工和註解負擔,IT人語言邏輯能力未來更重要

自然語言處理AI可以成為程式開發工作的強力輔助。事實上,從自動生成程式碼、提供修改建議,到撰寫代碼註釋、生成程式説明文件,客製化軟體開發公司多奇數位創意都已經在用ChatGPT和同樣使用GPT-3模型的GitHub Copilot,來簡化這些環節的許多工作。這些工具對開發工作帶來的改變,讓語言邏輯能力成為工程師重要能力之一,「甚至以後文組的人,即使程式能力不是很強,也可以把開發做得很好。」多奇數位創意總經理黃保翕直言。

自動化高重複性開發及解釋性文書工作

黃保翕他以自家一位Java工程師第一次嘗試使用Copilot的體驗,來説明AI如何應用於程式開發。

這位工程師當時正在與黃保翕討論專案程式碼重複性高,是否要建立一些設計模式(Design pattern)的問題。「這種事情用Copilot其實一下就搞定了。」黃保翕説。

起初這位工程師還半信半疑,加上當時Copilot免費試用已經結束了,因此工程師不太情願試用。黃保翕只好直接掏出300塊,並當場教這位工程師Copilot的使用方法。

「結果他在IDE剛打了一個@,後面100%正確的程式碼就自動完成了。」黃保翕解釋,Copilot可以自動將專案所有的原始碼進行建模跟分析。當工程師輸入提示文字,它便會考慮專案的設計模式跟架構,並預測一個最適合的回答。這意味著,許多重複性的程式碼,例如增刪查改(CRUD)指令,都能用AI又快又好的完成,省下開發人員撰寫重複代碼的時間和精力。黃保翕並表示,由於AI生成的程式碼是依照提示指令及開發中專案既有程式碼,動態生成出來的,因此這些程式碼沒有抄襲的疑慮。

多奇還會利用Copilot及ChatGPT生產程式碼注釋及説明書。黃保翕説,工程師通常不喜歡寫程式碼説明文件,而AI生成的説明書,不只條理清晰,幾乎不用修改,還可以文情並茂,容易閲讀。現在多奇PM或SA只要把程式碼貼到ChatGPT裡面,再把生成的説明書貼到Word裡,幾乎就完成了所有工作。由於程式碼是邏輯性很強的文字內容,因此NLP AI可以清楚理解,並生成精確的説明文件,「如果ChatGPT看不懂你的程式碼,那你寫的東西也是夠爛的。」他笑道。

ChatGPT還能用來優化或檢查程式碼,多奇甚至為此開發了輔助工具,進一步加速工程師用ChatGPT做這件事。他們開發了一個Google Chrome擴充功能,能自動填入Web版ChatGPT的提示文字,再寫了一個Microsoft Teams機器人,可以將輸入的程式碼拋轉到這個擴充功能上。這樣一來,工程師只要在自家Teams頻道上貼入程式碼,就能直接拋轉到Web版ChatGPT,讓AI幫忙檢查,並提出建議。黃保翕補充,這樣不只能簡化程式碼檢查工作,而且每個工程師一天至少會使用ChatGPT 10至20次,透過這個工具來利用免費的Web版ChatGPT,還能省下呼叫ChatGPT API的使用費用。

顛覆開發工作流程,語言邏輯能力更加重要

GitHub Copilot和ChatGPT自動化了開發工作流程中許多工作,不過黃保翕強調,這並不代表工程師會被取代,因為AI沒有自主發想能力,因此人類工程師發起新專案、新功能的角色,難以由AI替代。

不過,工程師的工作內容和流程,以及強調的能力,確實會因為這些AI工具的問世而改變。要用提示語言來操作AI寫程式、寫文件,工程師必須具備兩種能力,其一是語言邏輯能力,其二是對開發技術及框架的理解。

給你一個情境,如果你要對ChatGPT描述它,你會怎麼説?黃保翕拿這個問題考過許多人,「很多人會詞窮,對工程師來説,這是一個警訊。」他指出,重複性高、有明顯設計模式的程式碼,工程師可以輕易命令AI生成。但如果要AI生成的內容,涉及較為複雜的業務邏輯或沒有標準化開發模式,就需要工程師用更精準的語言提示AI。此時,比起寫程式的能力,工程師的語言邏輯能力就顯得更加重要。「以後甚至可以找文組生來生成程式碼,因為他們更能對AI精確描述需求。」他説。

要清楚描述需求,除了理解業務邏輯,工程師還得對開發框架及技術足夠熟悉。若工程師對技術理解有限,就無法準確告訴AI怎麼寫程式。黃保翕説,目前Copilot和ChatGPT約省下了工程師20%的工作時間,這些時間,工程師應該用來深化自己對技術的瞭解,以利未來能命令AI寫出更多、更複雜的程式碼。研究開發技術的方向,也會從記憶特定程式碼怎麼寫,轉向理解這個開發框架或技術的強弱項及運作邏輯,因為具體程式碼已經不再是由工程師親手敲出來,而是由AI工具代為生成。