軟體團隊與 AI 協作的成與敗:資深工程師的實戰經驗與建議

在軟體開發團隊應用 AI

AI 來的兇猛讓人措手不及?但對於 Mosky 與 Caesar 兩位活躍於社群的資深軟體前輩來說,在 AI Your Summer 系列活動的對談中,激盪了他們更多對於過去、現在與未來在軟體工作的想法。兩位前輩對談他們眼中正在被 AI 改變的世界,而對正在踏上軟體工程師後進,也提點了哪些思考?


觀察到周遭的人如何使用 AI?有什麼特別的想法嗎?

Mosky 是 Pinkoi 的 Architect,負責新技術研究與教育工作;在工作之外,她更是個有十餘年資歷的資深技術前輩、活躍於 Python 社群的分享者。

這些年我越走越專精,覺得跟大家距離越來越遠,因為我講的東西越來越少人能理解。但我的這個瓶頸卻因為 ChatGPT 與 AI 輔助程式生成工具問世而被突破,它降低大家學程式設計的門檻,所以拉近了我與大家的距離。我再次看到自己樂於分享的初衷,也很開心有機會能和大家分享更多知識與我眼中的世界。(Mosky)

GAI 年會後 Mosky 開了 Youtube 頻道,期待在這波浪潮下與大家有更多的交流與互動,用比較輕鬆、歡樂的方式,介紹傳統上比較生硬的技術知識。

Caesar 是 TransIot 的 CTO,有十餘年的軟體開發經驗,而最廣為人知的是他一手推動台灣最大 JavaScript 社群年會 JSDC,更持續透過分享、授課與舉辦活動,活絡台灣軟體社群與產業。

在這個百花齊放的時刻,我再次感受到 AI 的潛力。雖然過去我認為 AI 無法提供實質幫助,但現在卻看到它成為我面對商業挑戰的重要工具。對於商業需求、數據洞察和產品開發,AI 現已成為一種近乎可輔助人類判斷的解決方案。這個變化如同十幾年前網路服務崛起、引爆了創新的熱潮。現在 AI 的普及更再次讓我感受到那種熱情與活力,讓我對未來充滿期待。(Caesar)

Caesar 在年會中觀察到有群人對 AI 工具已經非常熟悉,也認為使用 AI 是個自然而然的結果。但也看到另外一群人對這個新工具的出現與應用沒太大興趣,甚至也覺得對他們的工作幫助不大。

我認為現在是個重要的分歧點,不同的同溫層可能變得更加深厚。但對我來說真正重要的是情,還是怎麼利用這個新工具,帶大家去我想帶大家去的地方。(Caesar)

Caesar 也認為,資訊爆炸後隨即而來的現象,就會是大眾的恐慌與販賣恐慌的商機。但比起恐慌,更真實的其實是每個人要面對如何適應劇烈環境的壓力。所以,不要因為恐慌或對販賣恐慌反感而拒絕學習,這樣會很可惜,可能會讓你錯失很多突破的機會。


目前你們怎麼利用 AI 幫自己與團隊工作?

Mosky 表示現在的 AI 工具還不夠成熟,所以還沒有真正幫助她加速工作效率,反而帶給她一些干擾。在這段期間,她積極地嘗試使用 AI 工具,但目前 AI 工具會產生一些無法使用的程式碼,更跟不上她的思考速度。

目前 AI 工具能根據你想要的需求、規格與風格產生程式碼,但它的程式碼沒有靈魂。未來這個情況可能會隨工具的進化而改善,但過程中我認為最重要的事情,還是你的思考:你不該有了 AI 工具,就放棄思考如何寫程式與享受寫程式的趣味。(Mosky)

而 Caesar 則是已經蠻高地程度地在使用 GitHub Copilot 和 ChatGPT,更肯定它對於自己與團隊工作的幫助。

當我已經有想法、但沒時間或懶得動手寫程式時,AI 工具能幫我快速生成程式碼,省下我很多調整程式碼的時間。現在,我強烈鼓勵團隊夥伴使用 AI 工具,更期待能幫助團隊省下至少 50% 寫程式和實作的時間。(Caesar)

Caesar 認為,AI 工具能幫助他的團隊更有效做到 Outcome First。因為 AI 能幫助他們完成高重複性的工作,而他們就能更專心地做架構、討論如何解決問題。

Caesar 也很認同 Mosky 所說「AI 寫的程式碼沒有靈魂」的觀點,所以他在檢視 AI 的程式碼時若發現「很有機器感」,一定會去手動再調整。

我的原則是要讓人覺得「程式碼是人寫的」。這句話的意思是,你的程式碼要能說明你的解決問題流程,也要讓人知道你的思考脈絡。(Caesar)

最後 Mosky 與 Caesar 都再次提點大家,使用 AI 工具一定要特別檢查結果的正確性,因為你需要為結果負責。

怎麼利用 ChatGPT 提高生產力?6 個軟體工程師一定要知道的方法


使用 AI 的 Aha moment?有不滿意但期待更好的地方嗎?

AI 能加速工作流程,是我以前從來沒想過的事情。(Mosky)

Mosky 分享幾個令他印象深刻、使用 AI 的 Aha moment。有次她發現某個函數邏輯冗長,在原函數下面定義了一個同名但後綴「_refactored」的函數,GitHub Copilot 隨即協助她完成重構;而另一次在寫測試時,她在函數的 docstring 寫完描述後,GitHub Copilot 也幫她完成了整個函數。

從這些經驗,Mosky 認為 AI 工具雖然還無法真正提升她的工作效率,但已經帶給她一些以前沒有體驗過的樂趣。AI 工具省下的時間,她可以去探索或嘗試一些從前沒時間做的事。

用 AI 寫程式是令人興奮的,但要注意寫程式的時間是不是真的有減少?若和 AI 玩得很開心、反而花更多時間在修正 AI 生成的程式碼,可能就有點本末倒置了。(Mosky)

Caesar 則認為現在 AI 工具的最大限制,就是無法將未知的東西連接起來。

當你詢問特定領域相關的問題、例如 React 的使用時,AI 工具不會幫助你引入最適合的解決方案,而是告訴你最多解答的範例。(Caesar)

Mosky 補充,上面這樣的情況讓她覺得,這可能讓軟體工程師在工作中的討論變得乏味。

但 Caesar 說明,「人的影響」一直以是管理軟體工程團隊最大的問題,無論是新手工程師上路需要熟悉工作流程、或是人為實作過程一定會出錯而需要校正,都是時間成本。所以,他期望未來 AI 工具能解決這些問題,幫助他與團隊省下至少 50% 的實作時間。如此,工程師就能有更多時間創作與架構,進而思考整體流程;也讓產品能夠持續試錯,降低機會成本。



建議團隊與組織怎麼使用 AI?適合與不適合的場景?能用在跨部門協作嗎?

目前 Caesar 團隊應用 AI 的方式,是由工程師負責發想、架構和理解需求,再搭配 AI 工具處理重複性任務,例如套入框架、CRUD、ORM 和 ODM 等。但在 Code Review、整合程式碼等環節仍然會由人工確認,只是團隊中也有夥伴開始用 AI 協助驗證 Code Review 結果了。

而 Mosky 的團隊仍在探索如何與 AI 工具協作,尚未開始大量使用 AI 工具。她認為導入 AI 工具到團隊工作前、應該要先思考:你期待 AI 工具能節省你多少時間?實際嘗試後結果如何?開始使用後,工作流程有差別嗎?為什麼會有差別?從個人層次思開始考與嘗試,再擴大應用到團隊中,或許更適合。

而 Mosky 與 Caesar 都認為,最適合團隊使用 AI 工具的場景,就是重複性的任務,例如複製貼上、資料整理和格式調整等工作。

但他們也提醒,要小心因過度依賴 AI 工具而發生錯誤。重複的工作內容可能很多都由 Junior 工程師負責,在改以 AI 工具協助後,Junior 工程師一定要去瞭解過程與確認結果,不要看到程式碼能動就好。更重要的是,Junior 工程師要學會如何向其他經驗豐富的同事請教與求救,以確保執行方向。

Mosky 與 Caesar 的團隊使用 AI 工具的「不」,則都是不要將機密資料丟入;而不適合使用 AI 工具的情境,便是一些需求比較不明確、高度抽象的情況。

解決問題不是找到答案就好,重要的是答案背後的意義。你會定義問題、能拆解工作流程,AI 工具就能成為你的最佳助理。你提問時已經有大概答案,AI 工具就能給出較精準的結果;但當你問題時沒有方向、無法收斂時,AI 也無法給你答案。(Caesar)

最後在跨團隊協作上,Mosky 說明跨團隊協作的任務通常比較複雜,所以雖然 AI 工具能降低對彼此工作任務的瞭解門檻,但實際上仍然存在門檻。所以,目前她的公司還沒開始使用 AI 工具跨團隊協作,而 Caesar 的公司也是類似的情況,現在僅使用 AI 工具來驗證跨團隊協作的執行結果而已。


AI 取代工程師?市場需求會有什麼變化?Junior 工程師如何提升競爭力?

Mosky 與 Caesar 都認為短期內 AI 不會取代工程師,因為目前 AI 還無法處理抽象問題,而且過程中也需要我們去詮釋與解讀結果,AI 工具才能給出接近結果的答案。

但未來,工程師的學習與職涯成長,都可能因為 AI 工具的出現而更加挑戰。

當 AI 工具越來越普遍、也越來越強大後,AI 能提供的價值,就可能與 Junior 工程師的價值重疊。所以當你能專注架構,有對商業的理解與未來的想像,才能夠提供團隊無可取代價值。(Caesar)

Junior 工程師一定要清楚瞭解自己的終點,AI 才能幫你走到終點。(Mosky)

Mosky 與 Caesar 提醒大家,工程師本來就是個需要持續學習,才能保持競爭力的職業。只是在未來,企業選才會更看重工程師的軟實力、那些 AI 做不到的事情上。

AI 來了我還能轉職工程師?來自 Amazon 與 citiesocial 前輩的觀點與建議


如何用 AI 學習與轉職工程師?

Mosky 提醒,無論從過去使用 Google、或是現在使用 ChatGPT,你本來就都不該完全相信你找到的答案。你的判斷與思辯能力,才能夠讓答案真的有價值。所以不該懶惰的地方,例如思考,你終究不該懈怠。

舊的方式不會被丟棄,但 AI 給了你新的路、新的方式,打開你的無限可能與開啟你的想像力,能幫你更有效成為你想成為的工程師。(Mosky)

Caesar 也同意「盡信書不如無書」,他更鼓勵大家現在就開一個 ChatGPT 帳號,開始在學習或工作中與 AI 協作。

甚至你就請 ChatGPT 幫你看完幾千份 JD、請他幫你摘要出你想要的終點樣貌。然後接下來的學習與堅持,就是你自己的功課了。(Mosky)

最後,Mosky 與 Caesar 最後建議大家在這波新工具浪潮中,盡量去嘗試;也去找到一個友善多元討論的社群、例如 ALPHA Camp 學習社群,去跟大家交流你的經驗與心得。與人交流與討論,不但能幫你更瞭解 AI 工具,更是你最快成長的方法。