程式碼高𠅙

2007/01/25

雜牌軍現象與石油提鍊作用

問題很簡單,就是團隊裡面誰會出線,支援前線作戰!而其後果又會對組織造成何種影響?

站在支援部門這邊的觀點,若是支援前線這檔子事對於本身無利可圖,那麼她所派出的傭兵將可能是團隊內貢獻能力最少的成員。每個被要求支援的部門都把 "功能較弱" 的成員交給外部專案經理,最後,整個專案團隊的組成就成了雜牌軍。此謂雜牌軍現象!

與此極端相反的狀況稱為石油提鍊作用:支援外部專案的人員必須經過外部公司的專案經理審核,審核不過者只能留在組織內進行內部專案… 這個程序,有如石油提煉的過程:

– 天然煤氣分餾溫度在20°C以下
– 汽油分餾溫度在20~150°C
– 輕油分餾溫度在120~220°C
– 柴油分餾溫度在200~360°C
– 重油分餾溫度高於360°C
– 最後的殘餘物—瀝青

不同外部專案的經理把最好的人才,次好的人才,再次好的人才一層層的過濾出去,最後留在組織內的就只剩瀝青了。這對公司內部專案的進行,甚至是公司的核心進化產生莫大的阻礙。

不管是雜牌軍現象還是石油提鍊作用,都在彰顯一個準則:組織要能建全運作,必需能留住優秀人力。

人力的組成決定打法,更決定勝負。

這就像玩牌一樣,手中握有的牌,永遠會主宰你發牌的順序。若是手中僅有幾張王牌時更要小心,太早發了,後面就後繼無力,遭人宰制。晚點發,就可能永遠也發不出去。最好是想辦法換牌,調整手中部位。我相信,有些組成是不用下場玩,就知道勝負如何了。

如何成為令人倚重的程式設計師之另類思考

昨晚與好久不見的朋友餐敘,提及當年某公司有一個 "優秀" 的 RD 部門主管及另一個 "重要" 的程式設計師。那位 "優秀" 的 RD 部門主管總會用正規的方式設計,有良好的軟體架構,並且開發過程中及完成後,都會提供其設計文件、使用手冊或範例程式。
另外有一個公司所 "倚重" 的程式設計師--並不是說他不優秀,只是他對公司的重要性,大於他的優秀性。
公司裡面複雜的系統,只有他能維護。而前人所留下的程式,並沒有相關的文件說明該系統的整體架構設計跟思維。
這就產生了一個有趣的現象:對於一個程式設計師而言,把事情做到最好 (除了寫程式外,還寫了讓人看得懂的文件等等),對他本身而言並不一定是好事。當別人越了解你的系統,你的可替代性就越高,那麼你的價值不就越低?
反之,若有人能寫出他自己才看得懂的程式碼,就算上級要求寫文件,也是寫一些高深莫測、形而上學的東西(諸如,用90%的篇幅介紹物件導向的基本觀念,然後說明只要了解物件導向或設計模式的觀念,再自行 trace 程式,就能理解系統運作)。
這樣一來,後人無法維護該套系統,完全是後人資質不佳或能力不足。這樣,他就成為令人倚重的程式設計師了。
以上所言,並不代表本人立場!
PS: 即使是某公司那一位令人倚重的程式設計師,也沒有達成我上述的要求,因為他沒有寫出需要睿智才看得懂的文件。何況,那些不可維護的程式碼,他也曾經力圖改良,想讓人看懂過!

2007/01/02

我的一點 Thunderbird 使用訣竅

自從進入目前公司後,我便一直以 Thunderbird 作為我的 email client,算算時間也三年半以上。這一路走來,我發展了許多 Tunderbird 的應用密技,我想有許多可能是別人沒想過要這樣用的,特別發表出來,與各位分享。

(一) 利用 Message Filter, 將所有不在 Personal Address Book 中的來信,全部移到 Junk 信件夾


因為垃圾信實在太多,只好使出這招釜底抽薪的方式。如果是業務、專案上的初次來信,通常事先會透過電話連絡。此時只要手動自 Junk 中移回 Inbox,再將寄件人加入 Address Book,下次即不會再跑到 Junk box 中。

(二) 快速安裝 extension 的方式


在 https://addons.mozilla.org/thunderbird/ 裡面找到所要安裝的 extensions 後, 在網頁的 Install Now 按鈕上選右鍵,選 "複製連結網址"。然後打開 Thunderbird  的 Add-ons 管理員,按 Install,在 Select an extension to install 檔案對話窗中,在檔名文字欄位按 Ctrl+V 貼上 extension URL,再按下開啟,就會進行安裝程序。

(三) 用 7-zip 來修改 extension 的安裝資訊

如果你也是嚐鮮一族,已在使用 Thunderbird 2.0,那麼你將遭遇最大的問題極可能是 extension 版本的不支援。如果你願意碰碰運氣,可採用下面這種作法:

1. 以 7-zip 開啟 extension 的 xpi 或 jar 檔案
2. 在壓縮檔案的 install.rdf 按右鍵選編輯
3. 7-zip 會以你設定的編輯器開啟 install.rdf,找到類似以下這一段,將其中的 em:maxVersion 元素值調整到你的 Thunderbird 版本以上,例如 2.*,然後存檔,關閉編輯器

       
           
                {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
                1.0
                1.5.*
           

       


4. 7-zip 將提示你檔案已被修改過,是否要更新壓縮檔之訊息,請選擇確定,然後重新安裝 extension 即可。

(四) 用 Plaxo 同步通訊錄

不曉得你有沒有因為重灌電腦而遺失通訊錄的經驗呢?重灌電腦時,我通常會記得備份信件,但是聯絡人卻老是因忘了備份通訊錄而流失。

Plaxo 是一個線上服務,提供通訊錄、行程、作業及記事管理等諸多功能。對於 Thunderbird 而言,最實用的地方在於它提供通訊錄同步的 extension。我把 Plaxo 當成是我的通訊錄管理員,因為它支援了匯整、備份、同步聯絡人的功能:

  • 匯整:我把 MSN、Yahoo!、GMail 上所有的連絡人全數匯入 Plaxo 中
  • 備份:經上述匯整後,Plaxo 成為我唯一一個需要維護通訊錄的地方。因為在資料存在 Server 上,只在 Plaxo 還在,我永遠不怕通訊錄再次流失
  • 同步:因為使用多台電腦,而且我在不同的地方都裝有 Thunderbird,我可以透過 Plaxo 同步不同機器上的連絡人

在 Thunderbird 2.0 上安裝 Plaxo,由於 Plaxo Thunderbird Extension 目前只支援到 Thunderbird 1.5,所以請用前述的方法以 7-zip 來修改 extension 的安裝資訊。另外,個人覺得 Plaxo Toolbar 的設計極醜。若要隱藏 Plaxo Toolbar,可在選單列上選擇 PlaxoPreferences,將 Plaxo Preferences 對話窗中的 Show Toolbar check box 取消即可。

(五) 使用 Duplicate Contacts Manager 移除重複連絡人

當我使用 Plaxo 合併 MSN、Yahoo!、GMail 上的連絡人時,常會造成連絡人重複。透過 Duplicate Contacts Manager 這個 extension,可以快速找出重複聯絡人,並選擇保留與移除的項目。在移除重複連絡人後,從選單列執行 PlaxoSync,你會發現 Plaxo 通訊錄裡面重複的連絡人也被移除了。

(六) 將寄件備份與收件資料夾合併

我將寄件備份放在 Sent 信件夾中,Inbox 用來保留最新的信件。每隔一段時間,我會將 Inbox 裡的信件移到 Sent 信件夾。如此,在 Sent 資料夾中採用 Thread 模式檢視時,我獲得一個類似 GMail 的 Message Thread 介面,可以很方便的看到發信與回信的脈胳。

(七) 將老舊的信件移存到不同的信件夾中

將較老舊的信件,以年為單位封存到不同的信件夾之中,可以避免掉 Thunderbird 同一信件夾不得大於 4G 的限制。

(八) 使用 Remove Duplicate Messages 移除重複信件

有時在不同的信件夾間複製或移動信件後,會造成同一資料夾內信件重複的狀況。使用 Remove Duplicate Messages 這個 extension,可以快速的刪除重複的信件。在信件刪除完畢後,別忘了在該資料夾上執行 Compact,如此才能真正的減少信件檔案的儲存空間。

(九) 善用 To(收件人) 或 Subject 信件表頭欄位分類信件
我知道 Thunderbird 2.0 已正式加入對 Tag 的支援。但是我所採用的方式,不但適用於 Thunderbird 1.x,而且比之 Tag 的操作更為簡易。作法很簡單:在編輯新信時,我會把 To 欄位拿來輸入分類關鍵字,我稱為 To tags。例如,這篇 blog 就是在 Thunderbird 中編寫的。我將此信件的 To 欄位分別加上 blog, note, thunderbird 三行。如果是內收信件,就需要 TB Header Tools Extension 這樣的 extension 才能更改信件表頭。對於內收信件,我通常會透過修改 Subject 的方式,來分類信件,如 [Project:Company].... 這樣的格式。

(十) 善用 Search  Folder  建立分類檢視

Draft 信件夾原本放置外寄信件的草稿,在我為信件加上 To tags 後,它變成個人記事資料夾。我進一步為 Draft 信件夾建立各種查詢條件的 Search  Folder 來設定分類檢視。例如我有個 Search  Folder 名為 "部落記事",其查詢條件為 "to Contains blog";另有個 "生活記事" 則對應為 "to Contains diary"。當然,透過 Search Folder 可建立更複雜的查詢條件。

同樣的,專案的分類檢視也可透過建立 Search Folder 為之,只是查詢條件會變成 "subject Contains Project:Company" 這樣的型式。

(11) 拿 Drafts 信件夾當記事薄

之所以拿 Drafts 信件夾當記事薄,而非別的信件夾的原因是:預設 Thunderbird 所有新信存檔時都會存放在 Drafts 信件夾中。你可以在 Drafts 信件夾重複編輯信件,而不用擔心它會跑到別處。要 Tag 分類的功能,可用上述的 To tags;要樹狀分類的功能,則可用 Subfolder 結合 Search Folder。

當初會想用 Thunderbird 來做記事管理,另一個原因是它的 Rich Editor 功能實在做的太好。而信件又可夾帶附檔,加入圖片。再說,除非你只用 Web Mail,否則電腦裡極可能需要一套 email client,既是如此,那何不就把它的應用效益最大化,這樣又少了需要另外安裝記事軟體的需求。