星期日, 10月 22, 2006

2006/10/22週記

週記又來了。

側錄
上星期在公司時突然發現,在乂上寫大姆碟的東西全都被側錄到某個內網的位址,於是好奇地用FileMon查了一陣子。雖然之前就有聽聞,親眼目睹後還是有點驚訝。不過那個側錄系統有點笨,本來就在大姆碟上的檔案,沒有讀寫也拼命側錄,結果只是要清乾淨大姆碟,也一直遇到「檔案使用中」的錯誤。笨程式...

辦公室桌椅
最近右手一直不舒服,到後來才發現辦公室的桌子太高(比舊公司高約九公分),搭配的高背椅雖然舒服,椅墊卻調不高。於是右手一直以誇張的外彎姿勢操作滑鼠,當然很不舒服。今天去會議室推了張平常的椅子,調高坐墊之後好多了,只是雙腳有點不著地的感覺,不過我都習慣盤腿,影響不大就是了。真是搞不清楚當初裝潢是怎麼想的...

流程改善
前幾天問同事有關某個工具的問題,工具是其他分公司的工程師寫的,有些部份相當不錯,不過也有不太好的地方。

在和那位同事討論途中,發現他會捨棄工具的某些功能不用,因此每當客戶提供新的資料,他就必須人工做一些剪貼及轉檔的工作。我覺得這並不好,可是對方似乎完全不以為異,之後的對話也因此開始有點辯解及挑戰的意味。我趕快把事情歸咎到我個人的習慣,轉移話題,請他把某些資料寄給我,然後就怱怱結束對話。

我相信過程中的步驟越多,出錯的機率也越大,後來在想很多事情時,都會特別注意,減少處理過程中人工介入的程度。雖然還不到流程改善狂的地方,不過對很多人來說,我已經有典型處女座A型的表現了。

我在工作上常會執著於某於過程上的細節,比如明明使用了IDE,為什麼還要打開命令列視窗,打CD命令跳到工作目錄,然後在IDE與命令列間不斷切換,一直輸入"make xxxx=1 yyyy=0"編譯,編譯成功後還要用另一隻GUI程式進行燒錄。我喜歡改完程式後在IDE裡按個鍵,就能全部一次做好,編譯成功會自動燒錄並RESET,不成功就在IDE內直接連結錯誤訊息與程式碼,讓我看到哪一個檔的哪一行錯了。這在PC或Web開發的IDE上不是像空氣一樣自然嗎?這些寫軔體的人怎麼了?

又比如說,具備LCD的電子裝置通常由於容量有限,字串和字型都需要特別管理。增加一個文字訊息通常都會影響字串表和字型表。而我接觸過的軔體平台在字串及字型維護上幾乎全都是失敗的,很少能讓這個動作全自動或儘量減少人工操作。

改善流程一般說來有兩種意義:節省時間以及避免錯誤。不作改變不般有幾種原因:

  1. 改善並不一定能節省時間
    這是最實際的理由,而且也是很多改善行動的盲點。由另一個觀點來看,過早對程式碼最佳化其實就是典型的例子。前兩天才看到一篇文章,說某個著名軟體在進行改版時,發現有些原本最佳化的程式的執行時間會因此倍增,於是團隊內就出現正反意見相持不下,直到某人做了徹底的模擬才停息。結果模擬發現長期密集執行(超過一兩天)的時間只會多三秒。

    這個理由最大的問題在於「不一定」,那個軟體做了模擬,那你呢?在說不之前,有沒有量過某些時常重複的循環要花多少時間呢?這聽起來有點令人毛骨悚然,讓我想起在工廠搞作業研究的那豦:某個作業流程現在需要30秒,理論上可以縮在12秒,原因是作業員訓練不足,生產線長要加強訓練,另外生產線安排不良,應該如何如何...其實這是不同的情況。任何事情到了極端都會變得很可怕(XP也是嗎?)。有人做得這麼絕,讓事情變得很恐怖,那只是告訴我們別做到這麼極端,很多事本來就自有其合理的範圍。


  2. 覺得沒有差別
    有些人會認為既然無法節省時間,改變就沒什麼意義了。這樣想通常是直接用時間來計算成本效益。但是實際的成本和效益是很難計算的,只考慮時間就忽略了改善後避免出錯的效益。

    最近在看設計心理學(對岸譯本,原書是The Design of Everyday Things)的掃瞄版,這是本只有兩百多頁的小書。第五章To Err is Human討論人出錯的各種狀況,譯本翻成「人非聖賢,孰能無過」也很貼切。這一章說的是人出錯才是正常,並且探討各種出錯的機制。而整本書以人容易出錯來解釋各種設計的原理,我覺得很有趣。

    如果改以避免出錯為著眼點,改善流程的意義就很大了。有些事情一年只做一次,應該不值得去整理。但是我敢保證,這種事一般人根本記不住,等到要做的時候必定手忙腳亂。稍有條理的人會特地把步驟寫下來,需要時再挖出來照做,不過通常還是需要花點時間進入狀況。如果這些動作能自動化,讓整個過程自己進行,就能減少出錯機會,也不需要記那麼多東西。年紀越大越覺得人的記憶力不可靠,即使目前對這顆腦袋還有點信心,也不敢去賭自己完全不會忘記事情。


  3. 知道應該但是不想去做
    或許這才是最複雜而真實的原因。有人會把等待的時間當作藉口,讓自己覺得自己好像有在做事,只是機器太慢所以做不好。有人是真正知道這很浪費,但是件它來圖一點喘息的時間。隱約記得某人寫過:流程越改善,對專業的要求也越高,自然對人的壓力也越大。極度的壓榨時間只要讓自己無法承受。但這還是到回到老問題:有必要做到那麼極端嗎?

    想混時間的話就不要去改,想想重新編譯一次程式足夠去喝杯咖啡的時代(我生不逢時沒有遇上),那是多麼的愜意啊,改過程式二十分鐘編譯才十分鐘,一天八小時make十六次就可以下班了。


像我這種人很容易流於改善枝節,雞毛蒜皮的小事也要改。但我還是覺得,當某一件事每天要做很多次,或是每次做都要花時間回憶一下或再查查看,就留個文件或花點工夫自動化吧。我覺得改善的意義,就是把精力時間省下來用在真正需要的地方。這個其實是流程改善最容易發生的盲點。一直著重於細微流程,卻忽略真正的目的是要完成什麼。

或許真正的問題是時間節省下來要做什麼,像某人(就是我啦)每天回家就是漫畫卡通遊戲上網和下載。改善吃飯煮菜洗澡的過程,把時間省下來好進一步虐待自己的身體嗎?

這樣說並不公道,工作和生活畢竟是兩回事。只是以工作的立場來看,就是希望能把事情做好。如果改善流程能減少出錯的機會,又能空出珍貴的時間可以少加點班,不管如何都應該做的。

3 則留言:

jlchang 提到...

>不過我都習慣盤腿

我以前在辦公室也都是這樣坐,但是若是遇到有廣告業務來找,通常會發現我起身的動作慢了好幾拍,因為要穿鞋子...

>或許真正的問題是時間節省下來要做什麼

省下來的時間當然是用來打混摸魚的哦!幹麻拿來加班,浪費!

匿名 提到...

在大姆碟上放些A圖如何?

mph 提到...

當老師就不行盤腿囉?要摸魚就不要省時間,省了被老闆發現那多不好。

A圖這主意我老婆提過了,說如果夠精彩,MIS可能還會私下打電話來要呢。