業餘大叔程式心得筆記#4:影響生產力的種種因素/葉光釗
自從知道自己的生產力低落之後,雖然沒有外部的壓力(一沒老闆、二沒薪水),但作為一個「業餘」的專業人士,總不能這樣放縱下去。幾經思量,決定嘗試幾種方法,看看能不能改進。
首先試的是傳統法:設定目標及期限、給定可承受的壓力,然後訂下計劃以及指標,每天反省進度。
基本上就是以前用的那一套,只是不想對自己太狠,稍微寬鬆一點。我想,以我勤奮的個性(哈哈不要笑太大聲),應該有點效果。
很不幸的,結果並不如預期。
一方面自然是人的怠惰天性,在沒有其他方的監督之下,自律看起來不是每個人都做得到的。另外,我發覺我寫程式的行為模式,並不會因為有了計畫就改變;最基本的問題是,「能專心在寫程式環境中的時間長度」是個重點。
好吧,人性我是管不動的,也不想管;但是第二點可以想想辦法。換個方式試試看。
首先,是「早上一直要到 10 點才能開始專心」的問題。這樣吧,把偶一為之的運動習慣改成每天、而且提早到 6 點開始,讓腦袋清醒的時間提早。
幾天試下來,嗯,真的有用,可以將發動時間提早半個小時。
不過早上起得早,中午也餓得早。我的解決方案是早餐吃豐盛一點,這樣就可以延到12點半再吃午餐;下午呢,想不到其他的方法,只好補充高咖啡因的飲料,至少將基本腦袋的運作時間維持住。
本來還想試試10點以後工作,但是很明顯這樣就不能早起,犧牲早上的生產力很不划算,就放棄了。
有效,不過要繼續觀察。
我的心得是:人心真是險惡啊。原來Google、Facebook,微軟這些大企業提供免費餐點、健身房、淋浴間等等令人羨慕的設施,並不是慷慨大方,都是有目的的──都是要 「壓榨」員工的生產力!
簡單的先做,還是難的先做?
寫程式,不外乎就是「除錯」和「加功能」;為了能讓一天的工作有秩序,程式設計師跟所有專業人士一樣,也必須對手中的工作排定優先順序。
除了一大包因為生意上的因素,身不由己,非得先做不可的工作之外,就如同上班族每天選午餐的天人交戰一樣,總會碰到 「我該從哪裡開始」的時刻。
這件事看起來不大,但是不能小看它的影響。
選錯了,小則壞了一天的心情,大則毀了工作,不誇張。
年輕時當開發者和後來當專案經理的時候,選的是保守策略,自然是簡單的先做;原理也很容易理解,這樣排出來的工作比較容易有進度,心情就會愉快、前途就會光明。
只是隨著年紀和經驗的增長,開始有不同的看法了。
首先,有些事看起來簡單,做起來未必;尤其是除錯,很容易挖出一坨當初意想不到的問題。
另外,即使工作很單純,有時卻會花上很多的時間;尤其是到處查資料,本來以為是手到擒來,後來卻發現深陷泥淖,肝指數和血壓升高大概都是這樣來的。
另一方面,如果是從看似複雜的問題著手,由於心裡有準備,有經驗的人反而能掌握最糟的情況;有時複雜的問題,反而會迫使人用簡單的方式解決、或是重新考量問題的本質,是不是真的搞得那麼眼花撩亂。
我的(認真)心得:打仗的時候選戰場真的還蠻重要的。年輕的開發者如果心有疑慮、或是舉棋不定的時候,就請教一下前輩吧。