2009年6月30日 星期二

外科醫生 Surgeon

我曾經聽過一個笑話。

有一個人受了箭傷,身上插了一支箭,被送到一個外科醫生那兒去救治。誰知這個醫生拿了一把剪刀出來,把露在皮膚以外的部份剪掉,然後對著送他來的人説:「好了,現在該把他送到内科醫生那兒去了。」

那是我小學時聽到的笑話,當時只覺得好笑,並不明白寫這則笑話的人的含意,事隔幾十年,沒想到在我的人生當中,還真正的經歷了類似的事情。

在現在的工商業界,由於内部過度分工的結果,許多原先可以/應該由同一個人一貫作業完成的事情,被細分成許多不同的階段,由不同的團隊來執行。由於個人只顧自己的工作範圍,不願意有多餘的責任落在自己身上,「日頭赤炙炙,隨人顧性命」的心態,類似那個外科醫生的行為就被表露得一覽無遺。

舉個例子説吧,我寫了一個資料轉換/運送的程式,交給專門負責production integration的人經過QA測試,通過後放進production。一段時間後,不知道是什麼原因這個程式或資料出了問題,需要專門負責支援production的團隊(production support)來檢視問題到底在那裏。這個production support的人説:「這個不是我們放進來的程式,我們不管這個。」那你至少可以檢查紀錄檔案(log),看看程式停在哪裏吧?Production integration的人説:「這個不是我們寫的,我們只負責把它放進production。」兩個可以上伺服器(production server)的人都推得一乾二淨,留下我這個寫程式卻沒有辦法上伺服器的人乾着急,還得求爺爺告奶奶地找人幫忙,聽我的一個指令一個動作,好像他們都是我操控的機器人一般,一步一步查下去。到最後發現,原來是由於兩個伺服器的時間不同所造成的問題。Production support又説話了:「這個伺服器的時間是另一組人定的,我們只負責管理資料庫(database)。」氣得我口吐白沫,只差沒咬人。我看這些人都是負責吃飯領乾薪的,公司裏養了一幫這種人,怎麼可能會有競爭力啊?

幾年以前由於Enron大弊案的關係,美國國會通過了Sarbanes-Oxley Act,從此以後責任分工制(separation of duty)變成一個非常重要的方向。一個寫程式的資料庫管理工程師,由於知道太多有關資料庫是如何運作的,也知道該怎麼操控裏頭的資料,所以在完成所有有關這個資料庫運作的程式以後,便必須把一切交給下游的production integration team。他們把東西丟進production以後,就由production support來接手,確保運作正常。但是也由於這個分工的系統,任何程式出了問題都得召聚一大幫人來找出問題,曠日費時,效率奇差無比。偏偏我們這種最基層的工程師,聲音微弱意見渺小,日子久了,就算是有滿腹的雄心也被這個官僚系統消弭的無影無蹤。到最後想想,何必跟自己過不去呢?就跟大夥兒一塊兒混飯吃吧。。。可悲啊!

1 則留言: