星期六, 10月 28, 2006

小心詐騙

萬一你沒注意到這種手法,連過來請大家注意。
金魚的遭遇
=== end ===

星期三, 10月 25, 2006

半週記

坐公車上下班時當練英文聽力,把「世界是平的」的有聲書聽完了,198個MP3大約十幾個小時,真是漫長的過程。當初在書店翻得太快了,這書還是要逐頁看過比較好。

坐巴士去上班
去內湖坐公車還好,前幾天要去新竹開會,不想開車又沒有人載,想試看看直接進園區的亞聯客運,沒想到還真辛苦。

早上八點18分出門,坐一站公車轉捷運到公館,等坐上亞聯已經九點。巴士走北二高,還在龍潭停一站,到園區科技生活館是十點18分,不太會坐園區巴士,覺得不太遠就用走路的,走了廿分才抵達,於是總共花了兩小時廿分去上班...

下班也沒好多少,6:40離開辦公室,走20分到科技生活館,等了四十分才坐上走一高往台北的某客運,抵達承德路總站下車時是八點五十幾分,也差不多是兩小時廿分了。還害我們失去了一個愉快的18週年慶晚餐...

怎麼有人那麼愛打嘴炮
今天回某同事的信,回來回去回到很煩。搞不清楚是我太敏感,還是這人真的太愛耍嘴皮子。

提議要改某個功能,整理出來的卻是不一樣的東西;擔心這樣改太多影響客戶,回信卻牽托些有的沒的;給個兩全其美的解法,回來卻是嫌東嫌西,然後最後空一行再寫一句「還是照辦」。

雖然很煩,還是把情緒放空之後才回信。做事嘛,能獲得有意義的答案,讓事情繼續進行比較重要。

星期日, 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十六次就可以下班了。


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

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

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

星期一, 10月 09, 2006

翻譯

昨晚一時興起又去譯了半篇文章,邊做邊覺得自己還是挺喜歡翻譯的。

喜歡解譯另一種語文時的解謎感覺,喜歡看不懂或不確定時找資料找答案的過程,也喜歡寫成中文時反覆讀出順句的過程。這其實和寫程式也挺像的,如果是由神秘難解的規格開始的話。

那翻譯的過程中討厭些什麼呢?

討厭那重重疊疊的子句,怎麼翻都翻不通順。討厭自己看錯翻錯,更討厭的對文中所述不甚贊同,不想譯出還是得逐句寫下,彷彿違背自身意願般的。

如果是校稿的話,最討厭的當然是那種亂亂譯的句子。不過改正之後還是會因為小小的優越感而帶來小小的喜悅。
=== end ===

星期六, 10月 07, 2006

亂寫

真的是很奇怪,在家裡還是不太有心思寫東西,做事時卻沒來由地想到,不忙的話就敲成文字檔,等有空有心情再放上來。

常聽到有人被指控「位置換了連腦袋就換了」,我在想這不是很正常的事嗎。立場不同,做事的方法就不一樣。在甲公司就沒有保守乙公司事情的義務,換到乙公司自然就應該守口如瓶。同一級的人大家一齊摸魚很正常,但是當主管扛績效自然要盯緊一點。

我覺得換不換腦袋,指的指個人的信念而不是這些事務性的東西。如果我相信人很重要,那麼不管到哪都會重視人。萬一有一天當我身處高層,做決策時卻只管利益而忽略人的價值,那麼我就真的是換了腦袋。如果把很多東西混雜在一起,事情永遠都會釐不清楚。

先天的限制固然重要,但其實那條無形界限究竟在哪裡是沒有人知道的;即使大約曉得也不可能明確劃出來,這就有點像很多數學證明命題,你或許可以證明某個東西介於1.5N和2N間,但你永遠不知道它確實的位置,隨便估計即使只有一線之隔,實際上或許天差地遠。更何況那條界限是否如此確實,恐怕也有待商確。這樣子知道有限制而悲觀,似乎有點言之過早。

我認為看到什麼會覺得心往神向或是契合,人生經歷的影響絕對不會比先天基因少。這個答案或許存在基因之中,但或許這也只是基因容許的很多答案之一吧。

人不容易改變也不一定要改變,隨便寫寫罷了。

噢,祝大家中秋節快樂。

請人

適應了新公司的行程,又開始有點時間可以看東看西了。這兩天看了一篇"Good Agile, Bad Agile"和另一篇"Hiring Great Developers?",講得都很有道理,我看了之後對於找人這件事有點東西想寫。

很久之前的大老闆是HP出來的,偶而都會聽到他說HP這家公司有多麼的好,新人進來有多麼完整的訓練。其中印象最深刻的話之一,就是面試時若有一點點在意就寧可不要,所謂寧缺勿濫大概就是這個意思。

這個原則真是很有道理,等到想實際應用就遇到問題了。當時待的是家小公司,名聲不響薪水又不高,實在很難吸引到好的人。再挑剔一點就根本找不到人,原則再好沒有人要怎麼做事呢?其實當時什麼都不懂,面試什麼的其實都是瞎攪和。

混了幾年之後,自然而然跑出另一個原則:找不到頂尖的人,那就求其次找些沒那麼好的人來。好好培養再加上合作,即使達不到A級,能做到B+甚至A-也不錯。實際上也真行得通,當初的團隊也就是這樣慢慢地建起來。

又經過了幾年,慢慢覺得當初的寧缺勿濫其實還是很有道理。標準寬一點就會失誤,有時候反而請到一些麻煩。尤其是聰明的人,在面試時會把各種問題隱藏起來,相處久了才會發現。不過即使精挑細選,又怎能保證絕對不出差錯呢?現在覺得這所有的原則不過是參考罷了,永遠有更好的原則,最後下決定的還是自己。