AI 時代的軟體開發變革-趨勢

AI 時代的軟體開發變革-趨勢

前陣子一直想寫這個題目,因為我認為未來的產品開發,將因為 AI 的出現有劃時代的改變,這變革或許不亞於當時數位時代的來到。

在往下談論主題前,我們可以先問問自己,過去一年的時間,我們對 AI 能做的事是否有了全新的改變?

以我自己為例,我半年前曾說:「AI 目前的不足之處在於處理技術債,也就是維護的難度還是很高。」半年時間過去,我現在認為這不會是很複雜的問題了,一來是因為 AI 又進化了,推理能力更強了,還懂得反問好問題;二來則是因為當時我對 AI 的期待太高了,我希望他全知全能,但其實為他做好角色設定才能發揮他最大的效果

半年前我無法想像他能直接解讀一份我給的文件或者某個架構圖,但近期我嘗試的結果卻發現他解讀正確的成功率之高,根本超乎我預料。而當我根據他的回應再補上一些資訊落差之處,他幾乎就能 100% 產出我所期待的內容。這種理解能力與產出品質,幾乎超越了 90% 以上的人類

這讓我更確信,人類在軟體開發工作的未來,絕對不會是在 AI 擅長的領域,而在於創造、設計、決策與溝通

前陣子我曾援引 Sam Altman One-Person Unicorn 的說法:「在不久的將來,可能會有一些公司只有一位 CEO,其他的工作全部都由 AI 來完成。」

One-Person Unicorn,一人獨角獸的時代來臨?
2024 年 4 月份 Sam Altman 提出 One-person unicorn 的時代來臨了,他強調的是在不久的將來,可能會有一些公司只有一位 CEO,其他的工作全部都由 AI 來完成。而且這樣的公司不見得就是傳統小規模的一人公司,而是有機會成為一家獨角獸公司。 經過這半年多對 AI 的學習之旅,自己天天用 AI 工具,並用 AI 工具來解決具體問題。也聽了許多公司如何使用 AI,並參與了一些公司的開發團隊使用 AI 做軟體開發的過程。 我想藉由這篇跟大家分享一些我對 AI 融入工作與生活的想法。 相信 AI 做得到 我相信現在還是很多人在探討 AI 「做得到什麼」與「做不到什麼」。而這種想法的背後,往往是為了找到不使用 AI 的理由。 例如透過 AI coding,

這個想法的背後,他其實在強調 AI 能做到的事將不再是單點,而是整合,也不再殘缺不全,而是能完整交付

AI 將從工具,晉升為一個個可以獨立作戰的專業人士。而且我相信,這條路應該不遠了。


前陣子看到 Sam Altman 受訪時提到:「到 2025 年底,軟體工程與 2025 年初的軟體工程會截然不同。」

因為專訪過程他只講了這句,沒有其他解釋,所以我拿這個問題去問 ChatGPT。

ChatGPT :「AI 將從「AI 助手」到「AI 共同開發者」。」

目前 AI 主要用於 代碼補全(Copilot)、程式除錯、文件生成、簡單自動化。

但到年底時,GPT-5 或其他更高階的模型推出後,AI 將能做到

  1. 自動補全大規模代碼塊(不只是幾行,而是數百行)。
  2. 根據模糊需求生成完整應用程式,降低進入門檻。
  3. 開發週期大幅縮短,以前需要數週的專案可能幾天內完成。

而工程師的角色也會從「寫程式」轉向「監督 AI 開發」。

且未來軟體開發的方式將會發生轉變:

  1. 工程師價值轉向「問題定義、需求設計、AI 驗證與優化」。
  2. 低代碼、無代碼開發更普及,非技術人員能夠利用 AI 生成應用程式。
  3. 「AI 導向開發(AI-Driven Development)」取代傳統開發模式。

簡單的說,未來的工程師,主要是做開發的最前面的需求釐清、架構設計,以及最後的測試與驗收步驟。而中間開發的工作,將會大幅交由 AI 來完成。


現階段比較難想像的還是「根據模糊需求生成完整應用程式」,但我猜測 AI 的大語言模型,應該能透過幾種方式去做到:

  1. 透過一些預先設置或已經累積的數據,試圖完善需求,並從大量數據中找尋相似性需求。
  2. 大語言模型最終應該能建構起不同行業、領域的完整 domain know-how,很可能一聽需求就能瞬間理解,甚至自行衍生。

就像開發團隊接手一個系統時,也不一定需要把所有規格都爬一次才知道某些功能怎麼設計,也是能自己爬 code,或者根據相似的系統來完善規格。

以當前 AI 展現的能力來說,我覺得補完規格這件事應該也不是完全做不到,畢竟能推理,還能主動提問,加上未來語音下 prompt 也會更簡單,手繪規格,或者提供相似網站、相似功能給 AI 參考。這些應該都能提高 AI 完成開發任務的準確性。

真的到了這個階段,那以開發能力來說真的比一般工程師更強大了。而能做到這些的 AI,我想什麼搞不懂技術債、domain know-how 的問題應該也能被解決了。


不過昨天剛好又看到 IEObserve 分享了一篇報告:https://arxiv.org/pdf/2502.12115

這個關於 AI 能搞定多少軟體開發工作的研究,覺得很有趣,其實正文也不過就 9 頁,有興趣的朋友都可以個半小時看看。

這算是拿一個較接近真實世界的軟體開發任務來直接做驗證,研究將任務分成兩大類,一類是工程師的任務,也就是偏向程式撰寫,另一類則是工程經理的任務,也就是偏決策,包含技術選擇,解決方式選擇。

對於工程類的任務,判斷的基準並不複雜,就是 AI 寫程式,然後看人類寫的單元測試能否通過,如果通過就得分,否則就 O 分。

而對工程經理的任務則是要要在多個解決方案中做出最佳選擇,驗證的方式則是看人類工程經理的選項是否跟 AI 相同,相同就得分。

幾種模型的最終結果是 Claude 3.5 Sonnet 的整體表現最佳。

從數據上直接解讀,我們可能會說:「AI 要取代工程師還早得很。」

但這麼說並不公允,因為從這個測驗中我覺得有幾個很值得看的地方:

AI 在完成工程師任務的成功率較低,但在完成工程經理任務的成功率顯然較高。

我認為這是兩種不同驗證方法的嚴謹性有關,工程師類的任務,要通過單元測試,這代表結果必須要完整無誤,難度上本來就比較高。工程管理類的任務,比較像是一種偏好選擇,AI 只要掌握了大原則,一般就能做出品質還不差的判斷。

加上為了有效測試,測試集的題目也不會刻意設計有一大堆商業、組織政治的考量,所以問題應該是相對單純的。

這個測試中,AI 其實是處在一個沒人可以請教,試錯次數有限,還沒有人能直接手把手指導的狀態。

這與一般工程師在工作中的狀況不同,所以成功率顯然會比較低,但如果有人回饋,有人補上文件,有人完善註解,有人教育訓練。然後讓 AI 在這樣的基礎下可以做多次嘗試,我相信成功率應該會提高許多。

現階段要把 AI 當成一個可完全獨立作業的工程師還是很難的,過程仍須仰賴人類的回饋與建議,但這並不代表 AI 還無法取代人類。

因為工作其實是由一個個任務組成,只要重新做任務的分配,兩個人各有一半任務可以由 AI 取代,人類工作量少了一半,那等於可以少掉一個人,然後調整另一個人的工作範疇,讓他去學習另一個人尚未被 AI 取代的任務即可。

不用覺得不可能,在這個時代,有 AI 輔助的狀況下,掌握一門新技能的門檻大幅降低,任何人都有機會透過訓練與學習升級自己的技能。

AI 取代的,一直都不是人,而是任務,當你的工作任務被完全取代了,你這個人自然也沒有存在的必要了。

未來幾年應該會是軟體開發的革命時期,大量的任務會被 AI 取代,而人與人之間的分工也會因此產生大幅改變。有些職務會不再存在,有些職務則會被創造出來,有些職務則會被重新定義。

下一篇我們接著聊我看到即將改變的幾件具體事項吧。

如果你覺得我內容寫得還不錯,歡迎訂閱我的電子報,我每雙週會發送一封電子報到你的信箱。訂閱連結在這,過往的電子報也在這:Gipi電子報

也鼓勵你可以將我的電子報分享給你認為有需要的朋友們,也許你的舉手之勞,將會改變另一個人的思維與習慣。

Read more

我讀麥肯錫的《注意力方程式》報告

我讀麥肯錫的《注意力方程式》報告

近期花了點時間閱讀麥肯錫的《注意力方程式》(The Attention Equation)報告,從中獲得了一些不錯的啟發,也跟大家分享這篇報告所提到的內容,以及我獲得的收穫。 報告背景 報告的內容大約是 20 多頁的原文,核心放在談論注意力方程式(Attention Equation)這個概念,那什麼是注意力方程式,為什麼麥肯錫要特別談論這個概念呢?首先我們得回到近幾年大家經常在談論的幾個概念: 1. 流量愈來愈貴,數位廣告的 ROI 持續下探。 2. 演算法愈來愈迷,多數的數位廣告媒介都被演算法給操控,不容易破解之虞,還經常更動。 3. 傳統的文字內容不再受到流量青睞,長影音也愈來愈沒人想看,反而短影音似乎成為新的流量王者。 過往我們在看待廣告或其他行銷媒介,或者進一步探討企業獲客(Customer Acquisition)的方式時,我們大多會談論自有媒體(Owned media)、付費媒體(Paid media)與贏來的媒體(Earned media)三者的比例,以及企業應該強化的重點。

By gipi
普通人悖論

普通人悖論

今天跑步時聽了一本書,書中提到一個「普通人悖論」。聽著有趣,因為似乎解答了我這幾年的一些自我認知的疑問。 「我們一般人....」 「對普通家庭來說....」 我們總看著成功人士的故事,閱讀那些不平凡的案例,可到最後,我們還是會回過頭來告訴自己「我們就是個普通人」。 我們渴望不凡,渴望能活出屬於自我的人生,但我們卻又認為自己無法脫離普通人的路徑。20 多歲出社會,謀得一份工作,接著兢兢業業數十年,從基層爬到高層,一輩子在職場上與人競爭。當我們看到那些跳脫這種路徑的人時,我們又說服自己「那是別人」、「那是獨特個案」。 我們心理渴望自己也能是獨特個案,但又不斷說服自己「我只是個普通人」。 這種心境,讓我們沒有勇氣去追求屬於自己的人生。 在聆聽這段時,為什麼我會特別有感觸呢? 在我今年撰寫的新書《用商業思維優化你的人生選擇》中我提到,每個人的人生都是獨一無二的。你不見得要像他人一樣功成名就才算非凡,你能做自己喜歡的是,成為自己想要成為的樣子,活出自己的人生,那你就是個非凡的人。 因為其他人很難活得像你這樣。 我內心是堅定相信這件事的。但我卻又經常在一些時刻,會將「我們一般人」

By gipi
如何快速熟悉一個產業?

如何快速熟悉一個產業?

什麼是產業,什麼又是行業? 有人會說電子業、食品業,也有人會說製造業、零售業、服務業,這兩者指的是相同的概念嗎?其實這邊隱含了兩個概念,也就是業種跟業態。 業種,是行業種類,以販售的「商品種類」區分所屬行業。例如賣建材的建材行、賣文具的文具店、賣水果的水果店或賣米的米店等。這些業種店看招牌名稱就可得知該商店販賣哪種商品。 業態,是行業型態,則是以該店家的「經營型態」區分所屬行業。例如提供即時、方便服務的便利商店;提供專櫃及流行品的百貨公司;提供量大、低價的開架式民生消費品的量販店等。這類商店,無法從其名稱辨別產品。通常是提供「一站式購買服務」為訴求,並提供其他相關的附加服務。 典型的業態,其實分兩大類,製造與流通。製造商負責製造產品,流通商負責將貨物流通到消費者手上,並因應消費者的需求,擴大產品品項,增加服務,而大家常講的零售與批發,其實也歸屬於流通範疇中。 舉例來說,生鮮食品經生鮮處理中心,將生鮮品分類分裝,這是製造的範疇,大盤商集中所有產品,

By gipi
當 vibe coding 已成必然,軟體開發會有什麼變化?

當 vibe coding 已成必然,軟體開發會有什麼變化?

當 Vibe coding 興起後,有愈來愈多的資深工程師的工作重點轉換到修復 AI 寫出的各種 bug。因這個現象,有些資深工程師們打趣地說,他們現在的任務像是專門處理這些 vibe coder 寫出來的爛 code。而這個職務稱為 Vibe Coding Cleanup Specialist。 我個人絕對支持 vibe coding,因為這是軟體開發的典範轉移,用得好的話可以大幅提升生產力,加上 AI 顛覆職場的趨勢幾乎不可逆。擁抱變化會比抗拒變化更明智。 這讓我回想起 2005 年剛出社會時,因為我起步的程式領域是 C#.net,使用的開發工具是 Visual Studio。C# 的好與壞我就不提了,但在當年,Visual Studio 這工具被稱為地表最強 IDE 應該是沒問題的。 它有多方便呢?所見即所得,元件直接拉到畫面上,出來的畫面就長那樣,

By gipi