2008年10月11日 星期六

R11 醫生的診療vs系統的除錯

醫術所謂的”望聞問切”四個字,現在看起來與系統發生問題時所要做的動作似乎相同。(暫時讓病人=系統)先看看系統表現出來的現象,聽取使用者的描述與想法,接著詢問其中還不夠明白的關鍵之處,最後從最可能出錯的地方對症下藥。

就我觀察的醫生診療過程差不多就是這樣,先觀察表面的症狀看符合哪些疾病的特徵,如有與數種疾病的表徵相同就再作更進一步的檢驗直到只剩唯一符合,再來就針對那種疾病施予對應的治療,過一段時間後再觀察病人是否已經好轉並決定接下來的處理。醫治的行為就在取得狀態與處理動作的循環中進行,直到病人痊癒為止;系統的除錯同樣也需要這樣的循環。

但是兩者還是有很大的差異。系統除錯時可以設定中斷點觀察內部程式的動作,可以立即修改程式再重新執行,必要時還可以隨便改動變數的值嘗試看看有什麼改變;診治病人時雖可以有內部的診視,但是有些也沒辦法太細致(懷疑某段血管硬化時總不能先切開來看看吧?),琢磨病情時也不能先下個可能的藥看看(萬一投錯藥掛點的話呢?)。

由於這樣的特性,我們可以在程式設計的領域看到不是相關科系的人同樣有所成就,但是醫生只有少量非相關科系的人能夠生存。另外,程式高手與名醫的相同點在於只要取得相對較少的資訊(甚至只需要對談)就可以判定問題的癥結,這是需要天份將大量的經驗在心中分析化與關聯化後才能達到的領域。

沒有留言:

張貼留言