iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
自我挑戰組

綠洲計畫:當團隊開始看見自己系列 第 16

Day 16 第十六章:未完成的重構

  • 分享至 

  • xImage
  •  

第十六章:未完成的重構

應用理論:完形經驗循環 (Gestalt Cycle of Experience)

緊急故障的插曲,讓團隊深刻體驗了壓力下的無意識行為。而隨著第一個行動研究Sprint接近尾聲,另一個潛藏更深的問題也浮現出來。這個問題,與他們最初設定的目標 「共同交付一個完整的前後端功能」 息息相關。

儘管團隊在API契約設計和溝通上取得了顯著進步,但艾佛勒發現,這個功能的開發進度依然異常緩慢。工程師們似乎總是在一些次要的細節上打轉,而遲遲沒有進入最核心的開發階段。這就像一支軍隊,在戰壕裡做了充足的準備,卻始終不發起最後的衝鋒。

艾佛勒意識到,團隊可能在一個更宏大的層面上,卡住了。為了理解這種「卡住」的狀態,他運用了弗里茨·波爾斯的完形經驗循環 (Gestalt Cycle of Experience) 理論。

完形理論認為,一個健康、完整的經驗,會像波浪一樣,經歷一個從「背景」到「前景」,再回歸「背景」的循環過程。這個循環通常包括六個階段:

  1. 感覺 (Sensation): 從模糊的背景中,感覺到某個信號或需求浮現。

  2. 覺察 (Awareness): 意識到這個感覺是什麼,並將其形成一個清晰的「圖形」。

  3. 動員 (Mobilization): 為滿足這個需求,開始匯集能量和資源。

  4. 行動 (Action): 採取具體的行動,去實現目標。

  5. 接觸 (Contact): 與目標對象發生實質性的互動,體驗行動帶來的結果。

  6. 整合/撤退 (Integration/Withdrawal): 經驗完成,從中學習,然後精力從這個「圖形」上撤回,使其重新回歸平靜的「背景」。

任何一個有機體或組織,如果在這個循環的某個階段受阻或中斷,就會產生一個「未竟之事」(Unfinished Business)。這個未竟之事會像一個電腦後台持續運行的殭屍進程,不斷消耗系統的能量,直到它被重新識別並完成。

艾佛勒懷疑,整個「星雲科技」的開發團隊,都卡在一個巨大的「未竟之事」上。而這個未竟之事,就是一次拖延已久的、關於「方舟平台」核心資料庫的重構 (Refactoring)

在多次訪談中,工程師們,特別是後端的大衛和老趙,都反覆提及現有資料庫設計的種種弊病。它是多年前為了應對當時的業務需求而設計的,如今已經不堪重負,成了許多性能瓶頸和Bug的根源。所有人都「感覺」到這個問題的存在,也清晰地「覺察」到重構的必要性。他們甚至在技術會議上進行了多次討論,完成了「動員」階段。

但循環,總是在進入「行動」階段前,戛然而止。

每一次,當團隊準備將重構計畫提上日程時,總會有一些「緊急」的業務需求插進來。管理層也因為害怕重構可能帶來的巨大風險(比如資料遷移失敗、服務長期中斷),而遲遲不敢批准這個計畫。

因此,「重構資料庫」這件事,就成了一個懸在團隊頭頂的、巨大的「未竟之事」。它帶來了一系列負面影響:

  • 能量消耗: 團隊需要花費大量的精力,去編寫各種複雜的「繞行代碼」(Workaround),來彌補底層設計的缺陷。這些權宜之計,又進一步增加了系統的複雜度和技術債,形成惡性循環。

  • 習得性無助: 反覆的「動員-中斷」循環,讓團隊成員產生了一種深深的無力感。他們不再相信重構真的有可能發生,也不再有動力去推動它。這種挫敗感,瀰漫在日常工作的方方面面。

  • 逃避行為: 艾佛勒意識到,團隊之所以在這個Sprint的核心功能開發上進展緩慢,正是因為這個功能觸及了舊有資料庫最脆弱的部分。在無意識中,他們害怕去「接觸」這個痛苦的根源,於是選擇在一些外圍的、安全的任務上拖延時間。這是一種集體的迴避行動

在Sprint的回顧會上,艾佛勒將他的觀察,用「經驗循環」的圖示畫了出來。

「我有一個假設,」他說,「我們這個Sprint之所以感覺這麼『卡』,並不是因為這個新功能本身有多難,而是因為它迫使我們去面對一個我們一直想完成,卻又一直無法完成的『未竟之事』 那就是核心資料庫的重構。」

他指著圖上從「動員」到「行動」之間那道巨大的鴻溝。「我們在這裡卡住了。我們的能量被困在了這個未完成的循環裡。除非我們能正視這個缺口,否則我們做的任何新功能,都像是在一個搖搖欲墜的地基上蓋房子,既不穩固,也讓我們充滿了焦慮。」

這番話,像一把鑰匙,打開了團隊壓抑已久的集體心聲。

大衛長嘆了一口氣:「艾佛勒說得對。每次我寫新的查詢語句,都要考慮一堆歷史遺留問題,那感覺就像在雷區裡跳舞。我累了。」

年輕的前端工程師馬克也說:「難怪,我總覺得後端給的API那麼『彆扭』,原來根本原因是在資料庫。我們一直在處理的,都只是『症狀』。」

這次坦誠的對話,讓「重構」這個議題,第一次從一個純粹的技術問題,上升到了一個影響整個團隊能量和士氣的心理問題。團隊清晰地「接觸」到了自己被卡住的痛苦現實。

雖然他們還不知道該如何完成這個巨大的「未竟之事」,但僅僅是將它清晰地、共同地命名出來,就已經是一種巨大的釋放。經驗循環的能量,在停滯了許久之後,終於有了再次向前流動的可能。

艾佛勒知道,「綠洲計畫」的下一個階段,將不可避免地要觸及這個最核心、也最艱難的挑戰。


上一篇
Day 15 第十五章:當伺服器紅燈時
下一篇
Day 17 第十七章:第一次真正的代碼審查
系列文
綠洲計畫:當團隊開始看見自己17
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言