IMG_2494.jpeg

前言

大家好,我是 Watanabe Jin(@Sicut_study)。

在 AI Agent 參與開發已成為理所當然的今天,許多現場都被要求更快交付。

但在感受到便利的同時,你是否也有過這樣的瞬間?

「跟一年前相比,沒有感覺到自己有變強」
「明明有問 AI,卻沒辦法用自己的話說明」
「開發,變成只是按下核准按鈕的工作」

slide-01-skill-not-growing.png

在真正大量導入 AI 自動化的現場,這種落差反而更大。

有些人一邊快速交付,一邊面對設計,持續成長。
另一方面,很多人只是核准 AI 產出的內容,然後進入下一個任務。
回過神來,彷彿有在思考,卻其實什麼也沒想。

思考的時間變少了,技能也就無法累積。

這次,我想聊聊 AI 時代的品質與速度。

使用 AI 之後,速度確實變快了。
但人的思考停止了,不知不覺就寫出了以品質為代價的程式碼。

接著工作變成了一個個任務,成長也開始停滯。
組織裡留下來的,是負向循環。

slide-02-task-or-design.png

為什麼在 AI 時代,開發反而變得更慢?
為什麼一追求速度,教育就消失了?
工程師的工作會消失嗎?
在 AI 時代,該怎麼提升技能?

接下來,我會以品質與速度為主軸,談談 AI 時代工程師之間的差距會如何拉大。

也有影片教材!

這篇文章可以獲得什麼

  • 了解為什麼明明趕著交付,現場卻沒有變快
  • 為 AI 讓人成長不起來的原因,找到一個明確的名稱
  • 了解工作不會消失之後,還會留下什麼,以及在 AI 時代該如何學習

這篇文章大致分成三個部分。

第一部:明明趕著交付,為什麼現場沒有變快

按理說,趕工應該會更快完成。
但在現場,往往是越急著做,之後的 Review 和修正就越多。

我們會說明,為什麼越趕反而越慢。

第二部:一追求速度,為什麼就無法成長

品質與速度會一起提升。
但被犧牲的,卻是教育。
我會說明,AI 讓可交付的量看起來變多時,為什麼教育會先消失。

第三部:工作不會消失。那麼,該怎麼學習

工程師的工作會消失嗎?
不會。真正不同的是,你是站在設計的一方,還是只能想辦法收拾問題的一方。

接著我會談,AI 時代該如何提升技能。

這篇文章的適合對象

  • 明明用了 AI 卻還是感受不到自己有成長的人
  • 明明很趕,卻覺得現場沒有變快的人
  • 無法用自己的話說明 AI 產出的程式碼的人
  • 擔心工作會消失的人
  • 想從 junior 成長到 mid-level,或從 mid-level 成長到 senior 的人

犧牲品質就能提升速度,這是大錯特錯

隨便做就會更快完成,這種想法在軟體開發裡行不通

回想一下以前寫漢字練習的時候。
如果急著寫,字就會變形。
但相對地,也會更快寫完。

只要降低品質,就能提高速度。
這在日常生活中確實成立。

daily-quality-down-speed-up.png在日常生活裡,降低品質就能加快速度;很多人也相信這個關係同樣適用於軟體開發。

「交期來不及」
「人手不夠」
「要交付的東西太多了」

這時候通常會選擇犧牲品質,來換取速度。

在《Agile Samurai》裡,專案的限制條件被分成四個:範疇、人力、期限、品質。
當時間不夠時,最先被砍掉的就是品質。

agile-samurai-four-constraints.png時間不夠時,現場最先被砍掉的就是品質到了 AI 時代,隨著程式碼生成代理的普及,開發速度確實提升了。
看起來,開發似乎一路順利推進。

「總之先把任務快點做完」

要求大家更快完成工作、做更多事情的壓力正在增加。
但實際做起來,結果就會變成這樣。

slide-03-work-increasing.png

品質與速度之間,存在相互關聯。

slide-04-quality-speed-correlation.png

那麼,在軟體開發中,為什麼這種相關性會成立呢?

雖然都叫「品質」,但品質特性並不只有一種。
功能正確、穩定不易壞、好不好用。
有些是客戶看得到的面向,也有些是開發者是否容易維護的面向。

而在許多現場中被犧牲的,尤其是可維護性。

maintainability-three.png現場被犧牲的,這三項裡最先被砍掉的通常不是整理文件的時間,而是寫出容易理解的程式碼這件事。

  • 交給 AI,先把事情往前推
  • 程式碼變得越來越複雜
  • 不再刻意寫給人看得懂的程式碼
  • 就這樣在沒有人真正理解的狀態下繼續往前

slide-05-nobody-can-read.png

你可能會想:「之後再修就好了。」

slide-06-refactor-later.png

但在 AI 之下,市場競爭變得更快,任務也變得更多。

模型雖然越來越聰明,但要理解複雜的程式碼仍然需要成本。
依賴關係怎麼串起來的?改了什麼,哪裡會壞掉?
這些都會拖慢開發速度。

也就是說,「之後再修」這件事,已經不再那麼容易發生了。

那麼,到底哪一種才是真正比較快的做法呢?

slide-07-quality-makes-fast.png

對可維護性的投資不足,代價不會等到三年後才來。

maintainability-one-month.png損益平衡點,甚至在一個月內就會到來。使用 AI 快速開發時,短期內看起來確實能更快創造價值。
但這個極限很快就會出現。
留下來的是複雜的程式碼,下一次修改也會變慢。

用 AI 來加快開發是好事。
但不代表只要快就好。

做 Review、思考設計、保留人類可以閱讀的狀態。
如果省略這些,就算有用 AI,最後還是會變慢。

slide-08-not-tradeoff.png

一追求速度,教育就會被犧牲

如果不是取捨,那被犧牲的是什麼?是成長與教育所花的時間。

品質與速度會一起上升。
但被放上天秤另一端的,是成長、多樣性,以及花在教育上的時間。

tradeoff-education-vs-speed.png真正的取捨,是成長,還是短期速度讓工程師使用 AI,讓他們持續開發。
短期看起來,會顯得比較快。
但這不會帶來長期速度。

即使能用 AI 寫程式,AI 仍然缺少某些東西。
那就是認真面對設計。

要同時兼顧品質與速度,設計非常重要。
而設計,是在實際解決問題的過程中累積出來的能力。

但這份教育,正被 AI 一點一點奪走。

撰寫程式、實作的領域,正在往由 AI 負責的方向轉移。
越被要求快速完成,就越沒有停下來思考的時間。
眼前的任務變成工作本身。
而消化任務,並不會帶來學習。

沒有學習的現場,最先離開的會是優秀的人。

最近常聽到的是 CTO 離職的故事。
上層不斷施壓,要進一步提升效率,最後工作只剩下像任務清單一樣的事情,於是他們選擇離開。
而留下來的成員,任務只會越來越多,教育也越來越遠。

這不是因為你沒有學習意願。
而是公司為了產出成果所施加的壓力,讓事情變成這樣。

有些人會自己保留面對設計的時間。
一邊用 AI 推進工作,一邊持續提升技能、打造自己的職涯。

但也有很多人,一整天都在把 AI 產出的內容往下一個流程送。

這裡正是工程師職涯的一個重大分歧點。

slide-09-design-or-output.png

而最顯眼的是那種對 AI 做出的內容不太明白,卻還是說好的人。

當你先看到一個大致正確的答案時,人就容易不再自己思考。
因為比起懷疑,直接核准更輕鬆。這就叫做自動化偏誤。

不再試著完全理解。
也不再試著學習。

以前,我們是透過思考的過程而成長的。
讀程式碼、搞壞它、修正它,最後變成自己的語言。
而這樣的機會,正因為 AI 開發而逐漸消失。

slide-10-approve-without-understanding.png

也有人為了成長,會把不懂的地方拿去問 AI。
但一讀 AI 的說明,就很容易產生「我好像懂了」的錯覺。
這只是輸入而已。如果沒有輸出,就不會真正內化。

「昨天,從問 AI 得到的學習是什麼?」

slide-11-not-learning.png

有速度要求
↓
被工作塞滿
↓
在不明白的情況下核准
↓
看不懂的程式碼變多
↓
更依賴 AI
↓
能幹的人離開
↓
任務變得更多

一旦進入這個循環,品質就會下降,教育也會同步下降。
這就是典型的惡性循環。

education-vicious-cycle.png人走得越多,任務就越多。教育也會進一步消失。年輕人的實作機會與失敗經驗,正被 AI 一點點抹去。
職涯的壽命,取決於你累積了多少次設計上的對答案經驗。
一旦經驗消失,就會失去作為純程式撰寫者的競爭力,工作也就可能消失。

那麼,接下來會發生什麼事?下一章會說明。

工程師的工作會消失嗎

品質下降的系統,修改起來會非常花時間。
在必須持續保持速度的情況下,卻又無法提速。

那該怎麼辦?
就增加輸入 prompt 的人數。
處理 bug,推進開發,需要很多人。

這和以前銀行的大型開發很像。
程式碼越來越複雜,於是投入大量人力。
接下來要發生的,就是 prompt 版的這件事。

prompt-human-wave.png工作不會消失。只是投入的位置,會從實作轉向 prompt 工程師的工作,不會消失。
留下來的工作會分成兩類。

一種是動腦做設計、真正做工程師該做的工作的人。
另一種是其他人。

其他人剩下的,會是品質相關的工作。
用 prompt 去處理 AI 產生的複雜程式碼。
修 bug。壞了就再下指令。

不能自己實作,也不能做設計。
只能做 AI 能做的那些具體工作的人,會被安排去做輸入 prompt 的任務。
那是在接手自己無法掌握的程式碼的工作。

因為工作不會消失,所以不能安心。
人力還是需要,但經驗不會留下來。
薪水也不容易上升,又不有趣,很辛苦。
很多人會落到那一邊去。

大多數人,超過八成,會變成輸入 prompt 的工作。
剩下不到一成的人,才會做需要動腦的工作。
不是任務,而是真正的工作。

slide-12-eighty-percent-prompt.png

那不到一成的人,年收入會高到和以往完全不能相比。
工程師之間的差距,會越拉越大。

工作不會消失。真正的分界,是你站在設計的一方,還是只能收拾問題的一方。

那麼,要怎麼學習,才能留在前者那一側?下一章會說明。

AI 時代要怎麼提升技能

現場想要的是速度。
而「不要用 AI」或「改變現場」這兩件事,多半都很難做到。

與其說「不要用」,不如建立「在使用前先思考」的習慣。

這會是我們作為工程師,能否持續工作的關鍵。

在把問題交給 AI 之前,先想好設計。
要解的是什麼?做到什麼程度才算完成?有哪些風險?
先用自己的腦袋把問題解決的順序整理一次,就能把 AI 之前的成長找回來。

先看到答案,判斷就會偏掉。
先自己思考出假設,就能看出和 AI 之間的差距,而成長也就會發生。

slide-13-think-before-use.png

「如果是我,我會這樣寫」
「做到什麼程度才算完成」
「有哪些需要注意的疑慮」

在產生內容之前,只要先想這些,差異就會很大。
而且,當你向 AI 提問時,不要只停留在輸入。

看了 AI 的說明,很容易覺得自己懂了,但那只是輸入而已。
真正變成技能,是做到輸出之後。

至少把從 AI 那裡問到的一件事,試著用自己的話說給別人聽。
如果你沒辦法用自己的話講一分鐘,就表示還沒有真正變成自己的東西。
或者也可以請 AI 幫你出理解測驗,確認自己是否真的記住了。養成這種習慣很重要。

slide-14-output-not-input.png

另外,學習的價值也沒有下降。
有人會想:「有 AI 了,好像就不用再學了。」但其實正好相反。

正因為有 AI,基礎才變得更重要

如果沒有理解基礎,就會把 AI 說的話當成答案。
AI 也不會無條件產出比你更高品質的內容。

你無法指出問題,代表你的程度還不夠。
也就是說,你會一直停留在「不知道自己不知道」的狀態。

讓我們持續磨練基礎能力,直到能夠指出 AI 輸出中的錯誤與不同之處。

slide-15-basics-matter.png

正因為進入了 AI 時代,更應該學習基礎與基本功。
有沒有做到,工程師職涯的差距就會拉開。

「做輸入 prompt 的工作」
「做問題解決的工作」

你想走哪一條職涯?

結語

這次我從品質與速度的角度,談了為什麼 AI 工程師沒有成長。

只要一件事就好。
在把內容交給 AI 之前,請先用自己的話寫下「做到什麼程度才算完成」再開始生成。

工程師之間的差距一定會出現,而且會越來越大。
做辛苦工作的人的數量也會增加。

如果這篇文章能成為一個契機,讓更多人開始重視教育,那我會很開心。
現在真的是職涯的分岐點,讓我們一起努力吧。

如果你看到這裡,還請幫我按讚和收藏。
如果也能追蹤 @Sicut_study,我會非常開心。

明天的文章再見!

JISOU 也在招募成員!

程式設計教練 JISOU 正在招募新成員。
要不要在日本第一的輸出社群裡提升自己的職涯呢?
有興趣的人,歡迎直接到官網預約諮詢!
▼▼▼

我也發了很多文章!


原文出處:https://qiita.com/Sicut_study/items/b9e38c0584d4aa720d31


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
boluoji
📝11   💬3   ❤️5
241
🥈
站長阿川
📝4   💬2   ❤️1
197
🥉
mike
1
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登