簡單的先做還是難的先做?
寫 code 不外乎就是除錯和加功能,為了能讓一天的工作有秩序,跟所有的專業人士一樣,programmer 也必須對手中的工作排定優先順序。除了一大包因為生意上的因素,身不由己非得先做不可的工作之外,就如同上班族每天選午餐的天人交戰一樣,總會碰到 「我該從哪裡開始」的時刻。
這件事看起來不大,但是不能小看它的影響,選錯了,小則壞了一天的心情,大則毀了工作,不誇張。
年輕時當 Dev 和後來當 PM 的時候,選的是保守策略,自然是簡單的先做。原理也很容易理解,這樣選出來的工作比較容易有進度,心情就會愉快,前途就會光明。只是隨著年紀和經驗的增長,開始有不同的看法了。
首先,有些事看起來簡單,做起來未必,尤其是除錯,很容易挖出一坨當初意想不到的問題。另外,即使工作很單純,有時卻會花上很多的時間,尤其是到處查資料。本來以為手到擒來,後來卻深陷泥沼,肝指數和血壓升高大概都是這樣來的。
另一方面,從看似複雜的問題著手,由於心裡有準備,有經驗的人反而能掌握最糟的情況。有時複雜的問題,反而會迫使人用簡單的方式解決,或是重新考量問題的本質,是不是真的搞得那麼眼花撩亂。
我的 (認真) 心得: 打仗的時候選戰場真的還蠻重要的。年輕的 dev 如果心有疑慮或是舉棋不定的時候,請教一下前輩吧。