魔鬼藏在細節中

這句話四處可見,字面的意思也不難了解。不過近的一個經驗教訓,讓我對這句話有著接近蝕骨般強烈的理解。

在電影或是電視劇中常常看到醫學手術的情節,主刀醫生氣定神閒地將最重要的部分完成之後,就有團隊的其他成員接手將剩下的部分完成;而鏡頭通常會停留在主治醫師辛苦之後滿足的表情,幾乎看不到團隊收拾善後的劇情。這個時候我都會想,寫程式能像這樣多好啊,我只要把最重要的主架構做完,其他助手就會今來把細節做完,案子完美的落幕,應該是每個人的夢想。

現實當然是與夢想差一大截,而且通常主架完成之後,才是夢靨的開始。

最近的經驗就是如此。一開始的規劃十分順利,而且透過簡單的幾個 prototype 也證實可行性很高,心想應該可以手到擒來,一開始心情還蠻愉快的。而中間的實作也沒甚麼顛簸,主要的演算法和資料結構也跟預期一樣發生效果,只剩下機個細節修正完畢就可以結案了,就是幾天的功夫吧。

沒想到,要命的就是這幾個「細節」。

一路修改下去,好像踏入了一個泥沼。由於都不是大問題,也跟主架透無關,一開始並沒有特別警覺。但是越修越像在打地鼠,為了要解這個 bug,要去改其他兩個地方;而為了讓那兩個地方能 work,還要去改其他的地方。到了後來,專案的大部份原始碼都改到了,還是搞不定。感覺就像泳賽的終點明明就在眼前,卻是始終游不到,而且快淹死的感覺。

我的心得: 看來不管 scope 的大小,永遠要有打持久戰的準備,一步一步紮實地往前推進,不奢想一步到位,才有看到隧道彼端亮光的希望。

results matching ""

    No results matching ""