iThome 網站首載:程式人卡關的日子
程式人總有些時候,什麼事情都做不了,這邊談的不是熱情消逝,也不是對工作的失望,單純就只是死活寫不了程式這類的狀態,有時是因為身體上的不適,又或者是心理上的疲累,當這個狀態發生在應當有進度的工作時間,就更會因為無法從事生產而焦慮,你知道總得做些什麼來擺脫這種膠著在原地的困境。
- 暖不了機的腦袋
在進行各式運動之前,總會需要有個暖身動作,藉由一連串低強度的肢體動作,讓身體加溫,也讓自己在心理上逐步進入運動的節奏;類似地,以腦力為主要貢獻的程式人,每天正式進入工作的節奏前,總也需要有個暖機的程序,這個程序也許是在上班的途中就啟動了,你會開始想著昨天想到的解法,盤算今天要進行的工作,這也可能是坐在電腦前開始,你會翻翻郵件、看看RSS Feed、在Twitter上檢閱一下今日技術頭條等,在正常的日子裡,這一連串的預備動作,就能夠將你導入工作的節奏,甚至進入神馳(Flow)狀態。
然而經常在某些日子中,你進行了平常例行的預備動作後,卻會處於放空狀態,感覺腦袋還是在冷卻或是沉重的狀態,無法集中精神思考,沒有辦法搭建思緒來找到問題,無法構思出解決方式,完全產生不了靈感,你的眼睛盯著螢幕,手放在鍵盤或滑鼠上,但什麼進度也沒有,你覺得腦袋有些東西很重,雖然知道只要想辦法動起來就沒事了,然而就只覺得現在的狀態,就像拿著車鑰匙拼命想發動引擎,卻只聽到嘰嘎作響的各種雜音,無論如何都發動不了。
腦袋無法加溫,對程式人來說就意謂著無法進入平常的工作節奏,代表著接下來會是低產能或無產能的情況,你思考著原因,如果只是精神不濟的話,來杯咖啡或許就能解決,畢竟程式人是有將咖啡因轉換為程式碼的本事,怕的是莫名不知原因的低潮情緒,讓自己只能枯坐在電腦前,焦慮且重複地翻翻郵件、看看RSS Feed、檢閱Twitter等那些平常進入工作節奏前的例行公事,結果卻只讓自己更麻木地枯坐在電腦前,什麼事也做不了,你得做些別的事情。
- 從事低密度腦力活動
既然無法進入平常的工作節奏,那是否表示目前的腦袋絞不出足夠的腦汁來做平常要做的事?那不如檢視一下工作安排,選擇一些低密度腦力的活動來進行,你的職務中總有一些這類的工作,即使是因為沒有創意、無趣、不必用大腦等原因,讓你平常不怎麼愛做的例行公事也可以,選擇從事這些低腦力活動,一方面讓自己在產能上能有些進度,一方面也可以避免讓自己持續處於低潮而焦慮的狀態。
在什麼事都做不了的時候,我會選擇寫一些文件,寫一些簡單的小程式,翻閱一下程式庫的文件甚至是原始碼,記錄這個過程中的想法,這耗費不了什麼腦力,重點在於我轉換了情境並有了一些進度,通常這成了另一種加溫腦袋的方式,經常在寫完一份文件之後,我的工作節奏就穩定了下來,這就像Joel Spolsky在〈邊移動邊開火〉中說的:「要開始本身就是唯一的難題,靜者恒靜,我腦袋裡有些東西重得不得了,很難很難加速,不過一旦全速運轉就不必費心維持」。
如果做不了事的狀態是來自缺乏靈感,從事與工作相關的低密度腦力活動,通常也會引發靈感。我有位朋友reader選擇整理TODO項目,在他的〈那些做不了事的日子〉文章中寫到:「每次看 TODOs就能發現一些先前曾在意過的事物,或是前一陣子在熱頭上很想做的事,還有些是同事閒聊時觸發的靈感」。沒有靈感時鑽牛角尖是沒有用的,低腦力的活動意謂著你可以用低的處理速度,用緩慢的思考與行動來帶動腦袋中那些待整理的地方,經常地就會在那些角落發現一些想法。
- 從事創意輸入
在沒有產能的日子裏,也就是在產能低落持續的那數天中,我會選擇從事的另一件事就是閱讀,基本上這只是為了暫時脫離現有的問題與狀態,閱讀的媒介通常是實體書籍,這是為了讓雙眼與雙手能脫離電腦,讓思緒專心進入書的領域。如果不打算脫離工作太遠,我會選擇閱讀程式思想類或是設計概念的書籍,偶而我會閱讀健康或醫學類等當時純綷感興趣的書籍,閱讀總是能從意外的角度刺激我許多的想法,往往地,這些想法就像潤滑油般,讓腦袋的齒輪得以再度轉動。
在《The Clean Coder》書中談到程式人這種什麼事都做不了的狀態為卡關(Block),並說到免於陷入卡關狀態的方法之一,就是從事一些創意輸入(Creative input)的活動,因為「創意輸出有賴於創意輸入」,Bob大叔談到了閱讀就是他創意輸入的來源之一,而準備投影片、演講稿和製作影片也很有幫助,最有用的甚至是探險主題的精采老片。
Bob大叔也鼓勵運用結對程式設計(Pair programming)來脫離卡關狀態,不過這並非每個人都做得到,聊天或許是一種方式,找個願意與你交流的人談談,也許是陳述一下程式上的問題,或者是一些技術上的想法,就能獲得一些剌激與想法,甚至是某些讓你能穩定情緒的肯定。
如果允許的話,暫時離開問題出去走走路,也是個不錯的方式,很多人都有在走路中想通問題的經驗,就生理上來說,腳是人類的第二顆心臟,走路可以促進血液循環,當大腦血液暢通,獲得更多的氧氣與養份時,思考自然更清晰,自然能從事更多的創造,給大腦更多的氧氣與養份或許也算是另類的創意輸入來源。許多人亦有在洗澡時解決大量問題的經驗,也是相同的道理。
- 順從目前節奏啟動思緒
現在的我正在寫作這篇文章,實際上是因為我這幾天確實處於做不了事的狀態,幾天來的身體不適讓我沒有時間構思專欄靈感,今日一大早腦袋也暖不了機,我試著從事一些低密度腦力活動,整理一下瀏覽器書籤,瞥見了Joel Spolsky寫的〈邊移動邊開火〉,我漫不經心地又閱讀了一次,想到並拿出《The Clean Coder》閱讀其中談到的卡關,然後靈光一現地想到,既然現在正是這種狀態,何不順從目前節奏寫些什麼事都做不了時的想法?這不正是忠實呈現這類狀態的時機嗎?
在決定開始寫之前,就設定好寫作進度並不是重點,因而我寫得很慢,一個早上只寫了三個段落,我出門走路去吃個午餐,路上想到了看過朋友也寫過文章談到類似的狀態,用餐回來後依舊保持緩慢步調把路上想到的東西寫下來,中間還停下來跟朋友在網路上聊了一下,等我回神看文章時,才意外地發現已經寫了快三分之二的內容了。
有時你就是得順從目前的節奏,做些符合現有狀態的事,而不是在原地不動,腦袋暖不了機,表示過去加溫腦袋的前置動作不適合目前的節奏;假若做不了事的原因是因為身體的疲累的話,選擇休息也是一種方式;如果真的不希望沒有產能,那麼就得換個方式,順從目前節奏一點一滴地進行,至少慢慢地你可以看到,自己確實有在前進,而往往在蝸步前進一段時間後,會驚喜地發現自己非但沒被卡關,還取得了另一種沒想到的成果,就像是在卡關後的接關成功,順利回到平常的工作狀態。