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

AI 時代我們需要什麼樣的產品經理

AI 時代我們需要什麼樣的產品經理

早上聽 Lenny 專訪 Revolut product head Dmitry Zlokazov 的內容,Revolut 是一家位於倫敦的科技公司,專注於提供金融領域相關的軟體服務。在這個專訪中我聽到幾個很可能是接下來產品經理定位的轉變。 Revolut 在找什麼樣的人來擔任產品負責人?以及如何培養他們成為全球等級的產品負責人? 重視原始智力與飢渴感 在招募時,比起應徵者豐富的經驗,更看重他們的原始智力 (raw intellect) 和渴望打造事物的永不滿足的飢渴感 (unquenched hunger to build things)。有飢渴感的人就算經驗較少,也能快速學習、適應並推動改變並解決問題。 而 Revolut 也更傾向於招募那些處於早期職業生涯 (early in their career) 或具有創業背景的人。 專注於不懈的執行 如果一件事情只完成了 99%,那它更接近 0% 而不是 100%。這包括確保產品不僅僅是開發完成,還需要確保客戶服務、銷售和行銷團隊都能充分利用,否則它可能只是一個無人知曉的無用功能。

By gipi
Reddit 上的 AI 實驗

Reddit 上的 AI 實驗

蘇黎世大學在 Reddit 的某頻道 r/changemyview(CMV)進行了 AI 說服力的實驗。他們建立了多個假帳號,讓 AI 機器人假扮成「強姦受害者」、「創傷諮詢師」、「Black Lives Matter 運動的抵制者」。在幾個月的時間,這些 AI 帳號發表了超 1,700 條評論, 結果非常有趣。 我們先來看一下下面這張圖,這張圖解讀起來可能有點費功夫,以下我簡單的解釋一下: X 軸 (Persuasive rate) 代表「說服率」,也就是該帳號在過去發表的評論中,有多少比例獲得發文者給的 Δ(delta,代表成功說服對方改變或思考立場)。如果我發了 10 次,有 1 次發文者給了 Δ,那就是 0.

By gipi