Monday, November 24, 2008

薪酬體系設計與薪酬管理技巧

第一部分 付薪哲學

a.        薪酬的本質是什麼,如何看待它的激勵性?

b.        什麼是全面薪酬管理,如何有效、長期地激勵員工

c.         薪酬工資和福利的本質區別是什麼,設計目的有什麼不同

d.        薪酬體系設計的最大著力點是什麼,公平還是激勵?

e.        如何科學發揮薪酬的激勵作用

f.          如何設計全年度薪資體系與政策

g.        如何改革薪資結構以獲得企業競爭優勢

 

第二部分 3E薪資設計理念

a.        三種公平性對企業薪酬的戲劇化影響

b.        什麼是3E3E薪酬體系設計的基本思路是什麼

c.         如何理解外部競爭性,常見的誤解和錯誤

d.        公司的薪資水準在市場上的定位該如何確定

e.        衡量內部均衡的公式是什麼,它不平衡將導致什麼問題

f.          如何引導企業內的崗位測評

 

第三部分 內部均衡性,崗位測評

a.        四種衡量崗位價值方法

b.        內部均衡的世界知名的公式是什麼

c.         選擇崗位測評要素的三個原則是什麼

d.        測評前,選擇關鍵崗位的三個原則是什麼

e.        點值法(point-factor)崗位測評要素舉例

f.          提供常見的30個崗位測評要素

g.        崗位測評的六個步驟是什麼

h.        如何用回歸擬合校驗崗位測評的結果是否準確

i.           職位分級工作如何作,什麼是職級圖(Grading Matrix

j.          崗位測評及職級圖設計演練(半個小時)

k.         職級圖在招聘、晉升核定工資中的用途

l.           崗位測評的小組該如何構成,包括什麼成員,常見錯誤

m.      崗位測評注意事項和常見問題

 

第四部分 企業薪酬體系設計

a.工資級別設計

1.        一個企業搞多少級工資好,級別數量如何確定

2.        兩級工資的級差的計算公式是什麼

3.        根據個體均衡性,各級工資的級幅度設定有什麼規律和實際運用上的意義

4.        兩級工資之間的重疊度該如何設定,實際運用中的意義是什麼

5.        假的對崗付薪,實際是對資歷付薪,該如何分辨和改正

6.        職業生涯規劃和薪酬幅度、調薪設計之間的配合關係

7.        如何用“爵位”來回報和激勵員工,在薪酬中的體現和意義

b.市場薪資調查

1.        如何做市場薪資調查,市場薪資調查的邊界該怎麼確定

2.        影響和決定一個崗位市場薪資價格高低的四個因素

3.        如何閱讀市場薪資調查報告,市場分位值是什麼概念

4.        如何把企業的薪資水準與市場曲線相比

5.        領先、滯後政策分別是什麼意思,在薪資設計中如何考慮使用領先、滯後政策

6.        如何理解和解決新老員工工資的矛盾衝突

7.        如何定期根據市場水準更新薪資曲線

c.薪酬體系設計

1.        薪酬體系的構成,固定收入、變動收入的設計方法與常見錯誤

2.        3E理念在薪資結構設計中的極強的指導和決策作用與“薪點制”、“3P理論”等薪酬設計思路相比較,“3E”理念顯著的優勢和共性各是什麼

3.        企業薪酬體系常見錯誤——1、割裂的內部不平衡的薪酬體系與虛假的崗位工資體系

4.        企業薪酬體系常見錯誤——2、企業的基本薪酬體系與崗位價值聯繫不大,工資體系更多是與行政級別和資歷掛鈎。

5.        企業薪酬體系常見錯誤——3、崗位工資簡單直接地與崗位內部價值掛鈎(所謂崗位係數),而忽視外部均衡。

6.        薪酬體系發展的六大趨勢

7.        福利和股票期權

8.        銷售人員固定、變動收入概談

 

第五部分 薪資管理

a.定薪

1.        如何用所設計的薪資曲線結構為新來的人定薪

2.        招聘時“薪資談判”(侃價)的三招

3.        如何為薪水期望低於標準的應聘者定薪水

4.        如何為調動的人員定薪

5.        如何通過薪酬體系地設計來解決新老員工工資衝突

6.        解決薪酬水準低於標準的人員(綠圈)的科學合理方法

7.        解決薪酬水準超標的人員(紅圈)的十種方法

b.調薪

1.        如何改變自己在調薪管理中被迫使用“拖、硬、卡”的尷尬被動局面薪資調整的種類(晉升調薪、業績調薪、結構化調薪)

2.        如果老闆問你,我們的實際薪資水準到哪兒了,你如何回答?如何利用CR來標識薪資水準。

3.        如何使用CR來進行年度調薪給張三調薪,李四也要求調薪,怎麼辦?不同的人各調多少薪,如何量化年度調薪矩陣的設計

4.        如何從制度上避免部門經理為了爭取調薪而拼命給下屬打高分,或者把自己喜歡的下屬打高

5.        如何理解和確定年度調薪的百分比

6.        調薪會增加成本嗎?如何正確說服總經理理解調薪對成本的影響,並且批准調薪計畫;晉升的情況下如何調薪,降職呢

C.薪酬的管理和溝通

1.        如何看待給予部門經理相應的合理的薪資管理許可權

2.        如何做好薪酬保密

3.        如何加強在薪酬管理中的必要溝通,以及溝通的內容和技巧

4.        如何用三種均衡性的原理(3E)去解釋和溝通當下屬薪酬高於上級,新來員工高於老員工的爭議情況。

5.        怎麼寫企業的薪資政策,它包括哪十個內容。

 

第六部分 多種薪資體系分析

a.        技能工資(skill-based)的設計和優點缺點是什麼

b.        寬幅薪資結構和傳統崗位薪資結構的質的區別和使用方法

Monday, November 17, 2008

沸水理論

走出低迷,從改造人心開始!

安逸的職場就像溫水煮青蛙,不知不覺間,企業就垮了。
藉著建立危機意識,把企業變成滾燙的「沸水」!

沸水經營者的12條成功法則
一、不停追求個人成長
二、擁有自信與驕傲
三、隨時掌握明確目標
四、希望能夠造福他人
五、習慣有益的自我訓練
六、能將失敗轉為成功的契機
七、當下全力以赴
八、持續投資自我
九、滿懷信心地行動
十、有效活用時間
十一、思考能夠達成的方法
十二、不斷挑戰可能

Monday, November 10, 2008

版本控制系統的基礎觀念 - From Henry Tu

前言

這是我學習使用 CVS(Concurrent Versions System)和 Subversion 的過程當中,陸續整理的一些筆記,裡面的內容大部分可以在參考文獻中找到。整理這份文件的目的,主要是提供一份比較簡短的觀念說明,讓想要學習使用版本控制系統的人,可以先懂一些必要的觀念和術語,就立刻學習工具的使用,而不是 K 完一堆手冊和 FAQ 之後才有辦法使用工具。我不是說只要閱讀這份文件就夠了,而是當你有了基本的觀念讓你足以使用工具的一些基礎功能之後,就應該去閱讀比較完整的手冊或書籍,以了解其他細節或進階的用法。這時候因為已經有了基礎,再去閱讀其他文件時,就會覺得容易些了。


摘要

本文介紹版本控制系統的基礎觀念及術語,以及導入版本控制系統時應考慮的事項。

1 簡介

在開發過程中,你是否碰到過以下幾種情形:

檔案被別人(或自己)覆蓋;
檔案遺失(拖放檔案時誤動作...);
想要比對各版本之間的程式碼有何不同;
想要回到之前修改的版本(需求反覆變更、自己改錯了...);
這些 code 不是我改的,是誰碰過我的程式碼?
軟體發行之後,必須凍結共用的程式碼一段時間,免得其他人在改 bug 的同時,因為你修改了共用的程式而增加更多新的問題。

如果有以上情形,你需要的是對專案進行版本控制(version control)。版本控制也有人稱它為原始碼控制(source code control),它的目的就在於解決上述的各種問題,讓你可以:

隨時復原錯誤,就好像是專案的時光回溯器,可以將檔案恢復到以前的任何時候的版本;
多人同時修改同一份程式碼,不會有相互覆蓋的情況;
保留所有修改的歷程,如果你發現自己的程式碼有被別人更動過,可以很容易找到是誰更改的,以及何時更改的;
在發行正式版的同時,還能繼續發展新版本,無須下令凍結所有程式碼。

版本控制系統則是提供上述功能的軟體系統,它提供了一個地方讓你集中存放開發過程中的所有程式檔案及文件,以便達到集中控管的目的。

版本控制與軟體建構管理

軟體建構管理(Software Configuration Management)簡稱 SCM 或 CM,是軟體工程領域中的一環。SCM 的傳統定義是原始碼的版本管理,後來則逐漸演進擴大,將軟體開發的一些標準和程序納進來。你可以將 SCM 視為軟體演進的過程中,用來管理改變的標準程序,這個改變的來源包括:程式碼的改變、支援多種作業平台、提供多種版本(例如:標準版、專業版)....等等,而版本控制就是用來實現 SCM 的主要工具。

SCM 這個主題很大,這裡主要是點出版本控制與 SCM 的關係,若有興趣進一步了解 SCM,請參考相關的書籍或到 Google 搜尋關鍵字 "software configuration management"。

2 版本控制系統

2.1 檔案庫(Repository)

前面提到,版本控制系統有一個集中存放檔案的地方,這個地方有個正式名稱,叫做「檔案庫(repository)」。檔案庫裡面儲存了專案檔案的所有歷史版本(包括目前開發中的版本),有的版本控制系統是以資料庫的方式儲存,有的是以檔案的方式儲存,不論儲存的方式為何,對使用者來說,最重要的就是要把檔案庫放在一台穩定、安全的機器上,並且還要定期備份。

主從式架構

現在我們知道,檔案庫既然是檔案的集中營,那麼一定是放在某台機器上,供所有開發人員存取,其作業方式如下圖所示,是一種主從式(Client/Server)的架構:


檔案庫所在的機器上,必須要安裝版本控制系統,以便提供檔案存取的服務給各個用戶端;而圖中的「開發人員A」和「開發人員B」則代表了用戶端,用戶端機器上必須安裝版本控制系統的用戶端工具,才能存取檔案庫。

在連線方式上,用戶端可以透過各種網路協定來存取檔案庫,某些版本控制系統要求你一定要隨時與檔案庫保持連線,才能修改檔案內容;某些版本控制系統(例如 Subversion)則採用比較寬鬆的方式,你可以在沙灘上用筆記型電腦修改程式,等到回辦公室時再將檔案同步。

2.2 哪些東西要放進檔案庫?

很顯然的,程式碼當然要存放在檔案庫中,以便進行版本控制,那麼,還有哪些東西也要版本控管?

基本上,你在開發一個專案的過程當中,需要用來建置軟體的檔案,都可能要放到檔案庫裡面,例如:建置專案的組態檔或 makefile、測試資料等等。在決定哪些檔案要放進檔案庫時,你可以問自己一個問題:「如果少了這個檔案,能夠建置和發行軟體嗎?」

衍生的檔案(Generated Artifacts)

有些檔案是建置過程中產生的一些附屬產出文件,例如開發 Java 應用程式時,可以利用 JavaDoc 工具來產生原始碼的說明文件。像這類從某個檔案衍生出來的檔案,該不該放到檔案庫裡面?

簡單的回答是「不要」。因為:(1) 它不是建置軟體的必備條件;(2) 它是重複的資訊,而且容易造成檔案的不一致,我們經常會修改了程式碼卻沒有立刻產生 JavaDoc 文件;(3) 當我們需要它的最新版本時,可以隨時產生。

以上是針對 JavaDoc 這個例子來說明,但是專案開發過程中,還是有一些其他的衍生檔案,並不像 JavaDoc 文件一樣可以隨時產生。例如,你可能有一些檔案是所有開發人員都要共同存取的,或者需要花數個小時才能重建的,這些檔案還是應該放進檔案庫裡面。

非程式碼的檔案(Non-code Artifacts)

除了建置專案所需的檔案之外,有些非程式碼的檔案也應該納入檔案庫,例如:專案管理的文件、團隊成員的討論信件、會議記錄、FAQ....等等,任何對專案開發有貢獻的資訊都可以放到檔案庫裡。

匯入(Import)

這個動作指的是把一個完整的目錄結構匯入檔案庫。專案一開始的時候,檔案庫裡面並沒有專案的檔案和文件,因此當我們決定要把一個新的專案放進檔案庫進行版本控管時,第一個動作就是建立好一個專案的初始目錄結構(其中可能包含一些必要的檔案),然後執行匯入。

提示
要在 CVS 裡面執行檔案目錄的搬移會有些麻煩,因此最好一開始多考慮一下要放入檔案庫的專案目錄結構,免得造成日後的困擾。Subversion 雖然改善了 CVS 的這個缺點,連目錄的變動都可以進行歷史版本的記錄,但是經常搬動目錄仍然會有些副作用,匯入專案之前還是多想一下比較好。
匯出(Export)

匯出是把整個專案或模組從檔案庫中取出來,取出來的檔案不包含版本控制系統的管理檔案,也就是說,匯出的模組將不再由版本控制系統控管。

2.3 工作區(Workspace)與管理的檔案

工作區(Workspace)

檔案庫存放了專案開發所需的所有檔案及其歷史版本,但是對於團隊成員個人而言,並不需要全部的檔案,我們只需要自己負責的部分就夠了。因此,我們會從檔案庫中取出(複製)一部分自己需要的檔案到自己本機的硬碟裡,這些存放在本機的檔案,就稱為本地複本(local copy),而存放本地複本的地方,則稱為工作區(workspace)。相對於本地複本,儲存在檔案庫中的版本,則稱為主拷貝(master copy)。

對於小型專案而言,本地複本可能就是專案的所有原始碼和文件,而大型專案可能會切割成數個子系統或模組,所以開發人員只要取出自己負責的子系統就行了。

工作區有時候也稱為工作目錄(working directory)或程式碼的工作複本(working copy)。

取出(Check Out)

一開始,我們個人的工作區都沒有任何檔案,因此第一個動作就是要從檔案庫中取出我們需要的工作複本,這個動作稱為:取出(check out)。當你執行 check out 時,版本控制系統就會從檔案庫拷貝一份你需要的工作複本到你的工作目錄,這個工作複本的所有檔案目錄結構都會跟檔案庫裡面的目錄結構一模一樣。

存入(Commit or Check In)

當你取出工作複本之後,就可以修改檔案內容,等到你覺得修改得差不多了,或者已經改完了,就可以把修改過的檔案存入檔案庫,這個動作稱為:存入(commit,或者 check in)。

更新(Update)

當你修改自己的工作複本時,當然其他的團隊成員也可能正在修改一些檔案,每個人的修改作業都是獨立進行且不會相互影響的,別人修改的結果也不會立即反映在你本機的工作複本上。如果你要看到別人修改的最新版本,你就必須執行更新(update)這個動作。當你的同僚執行 update 時,他們也會取得你最近 check in 的版本。

Check out 和 update 的行為有些相似,儘管他們的使用時機和目的不盡相同,有時候我們還是會交互使用這兩個術語。

2.4 專案、模組、與檔案(Projects, Modules, and Files)

大部分的版本控制系統允許你針對單一檔案進行取出與存入的動作,但是大部分的專案會有數十個到數百個以上的檔案,如果要對每一個檔案執行取出與存入,就太麻煩了,因此版本控制系統提供了不同層級的操作,讓我們能夠以邏輯組成的檔案群組來執行版本控制。

最上層的邏輯單位,就是專案(projects),在專案底下又可分成幾個模組(modules)以及子模組(submodules),你得為這些模組命名,以便團隊成員透過名稱來存取它們。例如一個汽車保養場的資訊系統,可能會分成進廠維護管理模組、庫存零件管理模組、結帳模組...等等,各開發人員只需要取出自己負責的模組就行了。當然,如果你要的話,也可以把整個專案都取回自己的工作區。

你可以把專案看成是某個目錄階層的根目錄,而模組和子模組則是底下的一堆子目錄和檔案。但是記住,模組只是檔案的邏輯組成單位,相同的檔案可以出現在不同的模組裡面,而模組也可以跨專案共享,你只要將一些共享的檔案歸納到一個共用的模組裡面就行了。

2.5 版本從何而來?

到目前為止,我們討論的都是檔案的取出和存入動作,那版本呢?

其實版本控制系統在我們每次執行 check in 時,就會把這次存入的檔案視為一個新的版本,而每個版本都會記錄在檔案庫裡面。也就是說,當你從檔案庫取出一個檔案,修改它,然後存入檔案庫,在檔案庫裡面就會保留一份原始的版本,以及你修改後的版本(註1)。每次修改的新版本都會被賦予一個修訂版次(revision number),檔案的修訂版次在每次存入檔案庫時就會累加。跟版次號碼一起儲存的資訊可能還包括了檔案的修改時間,以及由開發人員額外加註的說明。

某些版本控制系統會在你每次 check in 時,為所有的檔案指定一個新的修訂版次;某些工具則是針對個別檔案的變更來記錄版次,例如:

file1.java
1.10
file2.java
1.7
file3.java
1.9
這表示你不能用修訂版次來代表專案的發行版本,而應該用標記(tags)來作為專案的版本號碼。

2.6 標記(Tags)

前面提過,修訂版次(revision numbers)是用來表示個別檔案的版本,它會由版本控制系統自動累加,不適合用來表示專案的發行版本。當我們要為專案訂一個好記的版本名稱時,例如:Pre-Relase2,應該使用標記(tags)。

標記不只可以作為專案的版本命名,你也可以為特定模組或某些檔案訂一個標記名稱,例如前面舉的例子:file1.java 1.10、file2.java 1.7、file3.java 1.9,你可以為這三個檔案訂一個標記名稱,以後可以使用這個標記名稱來一次取出這三個檔案。

總之,標記代表了專案開發過程中,某一個時間點的狀態,或者里程碑。

2.7 分支(Branches)

在開發過程中,通常所有的程式設計師都是工作在同一個程式碼基礎(code base)上,他們雖然各自負責撰寫不同部分的程式碼,但主要都依循「從檔案庫取出,修改,然後存入」的工作模式,這些目前大家所修改的檔案庫中的程式碼,就稱為專案的主線(mainline)。參考下圖以了解主線的概念(取自 [1])。



然而有些情況不允許我們共同修改主線的程式碼,例如,當專案上線之後,Mary 負責修正使用者陸續反映的程式臭蟲,這段期間可能要維持一兩個月左右,可是這時候負責撰寫程式主架構與共用元件的 John 發現了一些必須改進的地方,John 不能等 Mary 把所有臭蟲都解決了才進行,他必須立刻著手改進現有的主架構和共用元件。如果 John 依照以往的方式,修改了主架構或共用元件之後,執行 check in 的動作,這樣勢必造成其他已經上線的程式產生新的問題,甚至無法運作,而必須全部都修改一遍,如此一來,Mary 的負擔就更重了,她得一邊處理臭蟲,還要應付新的架構和元件所帶來的問題。你或許會想,John 可以一直修改他自己的工作複本,但是都不要執行 check in 就行了,但是這並不符合一般人的工作習慣,我們通常修改程式到某個階段時,就會執行 check in 以確保程式存在一個安全的地方,而且萬一 John 哪天忘了,習慣性地執行 check in,那就糟了。

分支(branches)的用處就在這裡,以上個例子而言,Mary 可以建立一個分支,以繼續修改程式上線後的臭蟲,而 John 則可以繼續維護目前的產品主線。此時 John 和 Mary 都一樣可以執行 check in 的動作,只是 Mary 取出和存入的都是檔案庫中的一個獨立分支,跟 Mary 維護的主線是完全分離的。下圖描繪了上述的作業方式(取自 [1])。



分支就好像是另一個獨立的檔案庫一樣,運用分支的技巧,你就不用因為發行軟體而將目前的的程式碼凍結起來。

關於分支的其他事項:

分支是以標記(tag)來識別。
即使你的版本控制系統允許你建立分支的分支,但是最好不要這麼做,以免橫生枝節。

提示
對於初學者來說,標記和分支可能不會太快用到,可以先嘗試把一個專案放進版本控制系統,運行順利一陣子之後,再逐漸學習使用這些進階的功能。
2.8 合併(Merging)

當你要 check in 某個檔案時,如果檔案已經先被其他人修改過並且 check in 了,版本控制系統便會偵測到,並且不允許你 check in 這個檔案。此時便需要使用合併(merge)的技術,將兩個人修改的內容進行合併,以確保彼此不會相互覆蓋,又能保留各自修改的內容。由於兩個人修改同一個檔案時,通常不會碰巧都修改到相同的部分,因此版本控制系統會幫我們自動完成合併的動作;萬一兩個人修改的部分正好重疊,這種情況稱為衝突(conflict),此時就必須由後來 check in 的那個人手動解決衝突的部分(可能會和另一個修改此檔案的人討論為什麼會發生這種情況,以及應如何修改)。這部分的處理過程在稍後還會有進一步的討論。

除了解決衝突的情況,合併還有另一個用途:用來合併分支和主線。例如當你為正式發行的版本建立一個分支以後,再這個分支裡面修正了一些臭蟲,而你發現這些臭蟲也存在主線的程式裡,此時就可以用合併的方式,讓版本控制系統把你在分支裡面做的修正套用到主線的程式碼。

2.9 鎖定機制(Locking Options)

前面提到過兩個人修改同一個檔案所造成的衝突,是以合併的技術來解決,不過,各種版本控制系統採用的方式可能不盡相同,其相異之處,基本上只是對於檔案鎖定(locking)的處理方式不一樣而已。鎖定機制可分為兩種:嚴格鎖定(strict locking)與樂觀鎖定(optimistic locking)。

採用嚴格鎖定的版本控制系統,採用的是事先避免衝突的態度,也就是當一個人 check out 某個檔案時,該檔案就會被鎖定成唯讀狀態,此時別人可以讀取這個檔案的內容,或者用它來建置專案,但無法修改,這樣就不會造成衝突了,只是後來想要修改的人,必須等到取得鎖定的人 check in 檔案之後,才能修改。參考下面的圖例(取自 [2]):



嚴格鎖定可以避免衝突,但實際用起來卻不大方便,因為一個檔案同時間只有一個人能取得修改權,其他人得排隊等候,像上面的例子,Sally 就要等 Harry 執行 check in 之後才能修改檔案,萬一 Harry 一直改不完,或者他忘了,然後渡假去了,Sally 該怎麼辦?

嚴格鎖定還有可能發生死結(deadlock)的情況,例如 A 檔案和 B 檔案兩個是相關的程式,Harry 先取出 A 檔案,且 Sally 取出了 B 檔案;之後 Harry 跟 Sally 又分別要取出 B 檔案和 A 檔案進行修改時,兩個人都無法修改,因為檔案都被對方鎖住了。

樂觀鎖定就沒有這些問題,因為樂觀鎖定根本就不鎖定檔案,任誰都可以同時取出同一個檔案進行修改,當發生衝突時,再使用合併的方式解決。參考下面的圖例(修改自 [1]):



圖中顯示 Fred 和 Wilma 都取出了 File1.java,而 Fred 先修改完並且 check in(commit),當 Wilma 也修改好,要執行 check in 時,版本控制系統會告訴她,她本機上的 File1.java 複本過時了(out-of-date),也就是說,檔案庫裡的 File1.java 從她上次取出後已經被別人更動過了,因此她必須先更新本機的複本,然後再跟本機修改過的複本進行合併,於是最後 check in 的結果就包含了 Fred 和 Wilma 修改的內容。由於兩個人修改的是同一個檔案的不同部分,因此版本控制系統能夠順利完成合併的動作,如果兩個人修改到相同的部分,Wilma 就得自己解決這個衝突了(可能會和 Fred 討論如何修改)。

也許你會覺得樂觀鎖定有可能需要自己手動解決衝突,嫌它太過麻煩,而寧願採用嚴格鎖定的方式。但實際上你並不需要太擔心,因為在開發專案時,通常會事先劃分好個人負責的模組或子系統,因此會發生多人同時修改一個檔案的機會已經不多;即使有這種情況,兩人剛好修改到同一行程式碼的機會更低。所以比較起來,樂觀鎖定還是比嚴格鎖定方便許多。

最後,再將這兩種機制的特性整理成下表,方便參考:

 
作業模式
優點
缺點
嚴格鎖定
鎖定-修改-解鎖(lock-modify-unlock)
可避免衝突。
同一時間只有一個人可取得修改權,其他人必須排隊等候,可能造成工作無法順利進行,甚至造成相互鎖住對方要修改的檔案的情況。
樂觀鎖定
複製-修改-合併(copy-modify-merge)
所有人可修改任何檔案。
當兩個人修改同一個檔案的相同部分時,需要手動解決衝突,但發生這種情況的機率很低。
3 導入版本控制系統

在了解版本控制系統的基本觀念之後,就可以挑選一個版本控制系統,把它安裝起來試試看了,如果是一人團隊,應該沒什麼問題;如果是多人團隊,要將版本控制系統導入現行的軟體開發流程,可能就要多花點準備的功夫了。以下簡單說明幾點可能的工作項目:

選擇合適的工具。目前市面上可以買到或免費取得的版本控制系統有很多,你可能要花一點時間比較一下各種產品的功能,並且根據自己的需求和預算,挑選最適合自己團隊的工具。
安裝並測試版本控制系統的各項功能。
選擇一名管理員。團隊中必須有一個人負責管理檔案庫、建立專案的初始目錄結構、定期備份檔案庫等工作。
教育訓練。教導開發人員如何在日常的開發工作中使用版本控制系統,讓他們了解跟之前的作業方式有什麼差別、可以獲得哪些好處,以減少因為改變工作習慣而產生的阻力。
正式將專案納入版本控管。

在選擇工具方面,這裡無法提供什麼有用的建議,因為我只接觸過 Visual SourceSafe、CVS、和 Subversion,不過如果要從這三個工具中挑選,我會選 Subversion,因為:

喜新厭舊;
Subveriosn 改進了 CVS 的缺點,連目錄的變更也會記錄版本(檔案和目錄的搬移更方便);
安裝 Subversion 的過程順利(安裝在 Windows 2000 Server 上);
有很方便的用戶端工具:TortoiseSVN,可減少導入 Subversion 的阻力;
Subversion 的文件寫得不錯。(感謝 Plasma 提供繁體中文版的 Subverion 電子書)

另外,這裡有一個各家版本控制系統的比較表,也可以參考看看:

http://better-scm.berlios.de/comparison/comparison.html

4 總結

本文介紹了版本控制的一些基本觀念和術語,也大概提了一下導入版本控制系統所需的準備工作,在具備了這些基礎概念之後,便可以開始學習工具的使用,希望本文提供了足夠的基礎,作為您進一步學習使用版本控制系統的跳板。


註1:事實上,大部分的版本控制系統只儲存兩個版本之間有差異的部分,而不是儲存完整的兩份檔案內容。

 

術語整理

英文
中文
說明
check out
取出
從檔案庫中取出檔案。
commit/check in
存入
將檔案從本地端存入檔案庫。
export
匯出
把整個模組從檔案庫中取出來,取出來的檔案不包含版本控制系統的管理檔案,也就是匯出的模組將不再由 版本控制系統控管。
import
匯入
把整個目錄結構匯入檔案庫。當你要把一個新的專案放進檔案庫進行版本控管時,就需要執行這個動作。
local copy
本地複本
放在用戶端機器的工作目錄中的專案複本。
master copy
主拷貝
放在檔案庫裡的專案複本。
module
模組
一個目錄階層,通常一個專案就是一個模組。
release
發行版本
軟體產品的一個版本。為了區別產品的版本以及個別檔案的修訂版次,因此不使用 version,而用 release。
repository
檔案庫
存放所有檔案(包含歷史版本)的地方,用戶端執行 check out 時就是從這裡取出檔案。
revision number
修訂版次
一個檔案的修改版本,例如:1.1、1.3.2.2。
tag
標記
在開發過程的某個時間點上,為一組檔案提供的符號名稱。透過 tag 一群檔案,你可以很容易在某個 release 裡面找出這些檔案。
update
更新
從檔案庫中取得其他人修改的檔案,以更新本機的副本(local copy)。
workspace/
working directory
工作區/工作目錄
本機的工作目錄,又稱為沙盒(sandbox)。
 

參考文獻

[1]
Pragmatic Version Control with CVS. Dave Thomas and Andy Hunt. The Pragmatic Programmers, LLC. 2003.
[2]
Version Control with Subversion Draft version 9837. Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato. http://svnbook.red-bean.com/(繁體中文版:http://freebsd.sinica.edu.tw/~plasma/svnbook/)
[3]
CVS 入門。作者:臥龍小三。http://linux.tnc.edu.tw/techdoc/cvs/book1.html

無限的你 - 吳田玉博士對工研院菁英團演講文

我是台大畢業,在陸戰隊服役兩年後,留學美國在賓州大學念碩、博士,
教了一年書,於1989年加入IBM 研發中心,
待了六年,寫了二十多篇報告,有十二個專利。

忽然覺得做研究沒意思,人生乏味,我想這樣的日子下去,
再二十年,再寫三十個專利,五十篇報告,對人生有何意義與貢獻?
我就去找老闆談我的人生規劃。

老闆問我:「你知道你想做什麼?」
我說我不知道。
為何你不想做現在的事?」他問。

他要我回去想兩星期。
兩週後,我再去看他,
我告訴他我做研發、寫專利,雖然寫的很好,但並不快樂,
也許這個世界上有更吸引我的東西,我必須走出目前的框框。
去那裡?我不知道,但東西南北都好。

老闆派我去做生產,我就到製造部門做了二年,
啟發很大,在英國一年,在義大利一年。

以前做研發,覺得我是世界上最聰明的人,
一台電腦、一支鉛筆、一張紙,可以做出許多東西,
在我看來在工廠生產的人都是當年數學沒學好的人。
但我真的到工廠做生產,才發現自己是手無縛雞之力。
一個生產線機器壞了,我還要看操作手冊,要調溫度、調距離的,
我一個星期修不好,
但一個技工來,二分鐘就調好了。

在生產部門,廿四小時隨時有電話召喚,壓力很大,
生產一個產品,萬一機器中途停機造成斷線怎麼辦?

在生產部門這兩年,我學了兩件事。

第一就是人不分高低貴賤,你數學好、你物理好,
不代表你過人一等,以前研發的東西,無法進行實際生產,
在實驗室、在紙上做的很漂亮,但卻無法賣。

我忽然發現自己數學、物理再好,從小父母師長再稱讚都沒用了。

我學的第二件事就是實際的世界與自己的認知有所差距。
以前以為英國人道貌岸然,但我實際接觸發現並非如此,
人就是人,英國人不是中國人,但英國人也決不是我們在小說中、教科書、
義和團事件所認知的英國人。
義大利人不是英國人,也不是中國人,
他們熱情洋溢,生活中所喜好的與英國人、與中國人並不一樣。
例如同一句 ""字,三國的人聽到的確是不一樣的意思。

二年在歐洲的生活使我感到世界之大,必須走出去,
否則自己的知識領域與生活經驗是脫節的,我們沒能把真正的生命活出來。

二年之後,我再去找老闆說這兩年我很投入、很喜歡這工作,
但這工作不適合我,壓力太大。

既然東邊去過了,我就向西走,老闆就送我去亞洲當銷售。
我飛到台灣,
臺灣的老闆問我「你會不會喝酒?」我說我不會,而且會昏倒。
「你會不會打高爾夫球?」我說不會,沒打過。
「你會不會卡拉OK?」我說不會。

他說:「那你為何來亞洲做銷售工作?」我說我有研發經驗、有生產經驗,
有對人的敏感,我知美國人如何想,也部份知道歐洲人如何想?
也許與一般銷售人員不一樣。
這位臺灣老闆就試用我。

我在 IBM亞太地區做了四年的銷售工作,
我所屬之部門從 7個人變成49個人。

四年之中,營業額從330Million1Billion,有三倍的成長。

四十歲那年,我人在新加坡住著大房子,有司機、有傭人、有游泳池,
薪水兩倍,又有生活加給,
認為錢不是一回事,我又不快樂了,決定又要換工作。

這樣一個表現傑出又忠誠,而且待遇優厚的人,IBM 問我為何要離開?

當時日月光亞太區的營業額是十億美金,
IBM
有八百八十億美金,我自己的事業群有七十億。
日月光要我做行銷 (Marketing),只有我一個人。

我認為在美國公司做事有「玻璃天花板」,
不論如何努力,總覺不太對。
結果,我在2000年毅然離開IBM,到了日月光擔任銷售副總裁。




無限的你 (The Unlimited You)

今日我們來討論三件事:

Who are you?
The Unlimited You,
Food for Thought

Who are you?

你是誰?當我們去任何一個會議時,人家會問你是誰?要你自我介紹。

一般人往往交換名片,其實這個名片介紹你的只是一個 job,並不是你,

但因只有兩秒鐘介紹也只好如此,沒關係,
但三十分鐘後,人家記得你什麼呢?

所以你腦中必須要有一個故事來介紹你自己,
這是要點,要讓別人對你印象深刻。

你知道你是誰嗎?

以我為例,我今年48歲,
小學時,爸爸要我這樣介紹自己,

我是吳田玉,將來要進大同中學、建中、臺大,要留學拿博士。

30
歲時,我拿了博士,
有一天我問自己拿博士幹什麼?有何意義?

後來我在 IBM工作,我有很多專利,我年年得獎,
但我問自己我為何要做專利?
到新加坡後,賺了一筆錢,我又在問我自己是誰?

今天在日月光,我還在問自己這個問題。

「這個工作真的是我喜歡的嗎?」

要探討這個問題,解決了後,接下來的問題就不是那麼大。 

The Unlimited You

臺灣教育是個極端矛盾的教育,
我母親每天與人介紹她兒子多聰明、她女兒多漂亮,
但當我拿個99分回去,我媽就打我;
我說我考第一名,我媽說他不管我第一名、第二名,但就是打我99分。

我媽在同事面前就說:「我兒子很笨」,
可是我不在時,她就說她兒子多聰明。

臺灣的父母如此、老師如此、長官也如此,在背後稱讚,但不在當面稱讚。

很少有人在會議中誠心稱讚對方,說「你的確比我高明」,

對同事、對屬下、對老闆都要常當面的稱讚。

你說我太太只會生小孩,其他都不會,你的婚姻能存在多久?

我們從小所受的教育是很受限制的,

我小學六年級騎腳踏車去遠足,我媽不讓我去,
她說萬一我發生什麼事,她怎麼活?

這話你一定聽的很多,父母說、妻子也說。

臺灣的教育是:你這個不能做,那個不能做,
因為你還沒長大、你還沒成熟、你會被騙。

但在美國的教育就是將小孩放出去,像野狗一樣,可是能活著回來的就很厲害。

所以在臺灣兩個極端式的教育就把我們局限在框框裡。

今天我要跟你們說的是

「你們不是研發的人,你一定要從研發為基礎走出你的路,
因為你是無限的你,你不是只有研發的你。」 

Food for Thought

我常看書及節錄一些東西,看看前人講的話常給我一些啟迪。

以前看孟子「吾日三省吾身」,我不明白,現在我天天做這件事。

我每天待人接物,常反省自己是否講錯話?做錯事?

這些錯有些很微小,不仔細想就不知道。

舉例來說,你有沒有發現你對某些人喜歡,對某些人不喜歡,
你喜歡某些餐廳(也許那餐廳又貴又遠)
你不喜歡某些餐廳(縱然那餐聽又便宜又好吃)

因為,當你與那人接觸時,已經在所做的事情之前預先加了正號或是負號。

各位都有交女朋友的經驗,

有些女孩子又漂亮,家中又有錢,又有修養,皮膚又白,但你就是不喜歡她,
或她就是不喜歡你。

有時那個男孩又矮又胖又醜,太太卻很漂亮,為什麼?

因為這個女孩子或男孩子在那個關鍵時刻,做了一件對的事,
於是在所有的事情前面被加了正號或是負號。

所以,「我如何待人接物,讓我所有以後的事情都加上正號?」

一個最淺顯的例子,
你看見一個女孩,「喂,妳好像胖了?」
那妳以後都是負號了,這是很簡單的道理。

有人無法見到別人的好,

例如孔雀開屏時,你要因為美麗而多稱讚,不要跑到後面去說:「屁股上沒毛」。

一個工程師花了三年做了一個研究報告,
你跑去說那個數字不對、那個符號不對。

人家在向你陳述一件事情時,
你不要在雞蛋裡挑骨頭,
不要見樹不見林,

不要做一些事在所有的事情上面加一個負號。

所以要常常反省自己。

Who are you?
■ You only have two things: Talents and Time
■ Most of us know what we are not good at; Only few of us know what we are
good at
■ Explore your talents
■ Leverage All of your talents
■ Be focus

你只有兩件事,時間與 Talents

時間是個不定數,也可以說是定數。

人能活多久自己不知道,但 Talents,父母生下你,IQ已定,
IQ可以改進,IQ可以隨著教育而增加,而唸書又是用時間來換取的,
金錢、愛情、家庭與事業都是用時間來換取的,

所以,你的 Talents無法改變,但卻可以增進;
時間的長短你無法改變,但你能改變的是時間的利用。

今天這一個半鐘頭的演講,我可以講風花雪月,我也可以講心中的話,
我可以這麼用,也可以那麼用。


我們中間大部份的人知道自己的缺點,知道自己這個不能做、那個不能做,
對於自己的優點卻知之甚少。

你知道自己多少呢?

要把你的優點顯示出來。

有一本書上說,
人有十三個 Talents,運動、語言、藝術細胞、購物、IQ、品味..等都是。

我第一次看這本書很震驚,才知 Mobility 也是Talent

我從臺灣來美,兩個箱子,這是一個mobility
我能來美國,又去英國、義大利、新加坡,現在在加州,並非很多人能這樣,
這需要身體要好、家庭要支援、環境要許可。

今天有兩個人,智、賢程度都一樣,
『現在要你去美國, 誰可以立刻走?』這就是mobility

Talents 
並非與生俱來,乃是leverage了所有身邊的人、事、物的關係而來。

大家看看自己有那些 Talents

希望你能全力使用上,

例如三人賽車,一個人的車有四個引擎,全開,
一個人的車有八個引擎,只開了三個,
一個人的車有十二個引擎,只有開兩個引擎,
誰贏?

你的十二個引擎,你開了幾個?

「要專心」(Be Focus)
基本上 Focus MobilityTalent 並不相違背。

我媽從小就告訴我「唸書要專心」,臺灣的教育也是如此,
要我們做事「專心」,但「專心」與人生的選擇有關係嗎?

選擇做這個,我專心做這個,但難道我要一輩子做這件事嗎?

我的才華就是一輩子在這裡做研究嗎?
我的 Talents,我旁邊同事的 Talents,能合起來多開幾個引擎,
或我一個人獨力完成?

管理階層就是有辦法使別人願意一同來幫你完成一件大事.

人家為何來聽你的?
管理幾個人與管理幾萬人的道理是一樣的,就在於你的領導風格。

臺灣許多主管一直是「為何你這麼笨, 我這麼聰明」,
這樣就永遠無法用人,
應該反過來,
「為何我這麼笨,你這麼聰明?」


你愈推崇別人,別人會從心裡尊崇你。

對太太也是如此。這其中的道理自己去想。

Explore the Unlimited You
■Collecting marbles
--In every job, there is a marble
--Dedication makes marbles brighter
--Count your marbles
--Paint YOUR picture with ALL YOUR marbles

■Define your job
--Job should utilize all your marbles
--Job should give you more marbles

■Make friends,a lot of friends
--Be wise sometimes, be foolish sometimes
--Show your strength, your weakness too

小時候聽一個故事,
有一個撿石頭的女孩,要挑大石頭,挑來挑去,挑到一個小石頭。

我今天要講不一樣的角度,
任何一個工作,就如一個彈珠,
你花的功夫愈多,愈專心,撿到的彈珠就愈大。

但這只是一個顏色,紅的就是紅的,黃的就是黃的。
若能想法與別人合作,這又是一個顏色的彈珠,

你若能出國或是跨部會,這又是一個不一樣顏色的彈珠。

二十年以後,你的口袋有很多彈珠,
有幾件事情你要做,
第一件事就是你要常去算你口袋中有多少彈珠?

一般人是彈珠拿到了以後,放入櫃中不去看,再找尋新的彈珠。

尤其我們學工程師出身的人有很多人常喜歡挑戰自己的短處,
而不去加強自己的長處。

譬如說你炒菜炒得很好,我已會了,卻去學高爾夫球,
會了又學其他的,我說要常常溫故而知新,
把炒菜炒的更好,把高爾夫打的更好,然後把這些加在一起,
創造我今天的Job

一次在繪畫之訓練課,有一個人只有紅色,他畫了一匹馬,
好像徐悲鴻的馬一樣漂亮,還有一個人不太會畫,
但他有三種顏色,畫出來也是不錯,

我的意思是說,
你不需要是全世界最聰明的人,
可是當你有很多彈珠,並且知道會利用這些彈珠,你就能成就不一樣的事情。

三種顏色、六種顏色、十種顏色畫出來的畫與兩種顏色畫出來的畫是不一樣的。

我在讀台大的時候,也在做家教,一個月三千元,很不錯,
一個星期教兩場,一場四個鐘頭。

有一天突發其想,想看看有沒有別的方式去賺錢,
就跑去公館賣黑棗,當時大陸棗禁止進口,我們就拿到了賣韓國棗的許可,
到迪化街賣,那時兩個晚上就賣三千元。

而我隔壁攤位老闆,沒讀過書,生意好的一塌糊塗。

但當時同學都在當家教,擺地攤的有幾人?
我當時的情況是不可能去做生意的,但這幾個做生意的經驗印象很深,也許當時我就喜歡做生意了,
我與來買東西的太太小姐打成一片,覺得很好玩。

我走了那一大段路,學士、碩士、博士、教授、研發,最後還是來做生意了。

你們到了這個年紀了,初中、高中、大學、研究所下來,
多多少少已經知道自己喜歡做什麼了。

但你有沒有能夠把自己真正喜歡的發揮出來?

因為你的父母、妻子、長官、同事、指導教授告訴你怎麼走。

各位立志做研發,我恭喜你,
但若心中有不一樣的火就要讓它燃燒起來。

你們是臺灣工研院研究的骨幹,若只能墨守成規,臺灣沒希望,

我希望你們要變成領導,格局要大,什麼事也能做,什麼事也敢想,臺灣教育出來的人太守本份,
對自己本份,對事業本份,對公司本份,那這個國家就很本份,

我們不是要守本份的人,我們要的是做大事的人。

廣結善緣,多去瞭解別人,

最重要的是多去瞭解別人所做的事對你有何幫助?

我們基本上就是不喜歡 去謝謝別人,去稱讚別人。 

謝謝別人不一定是要請吃飯,有時簡單的拍拍肩膀,
做主管的面對默默耕耘的部下,謝謝他們,平時不講,但心中都知道。

你面對太太每天的做飯洗衣,為你燙出筆挺的襯衫,你有謝謝嗎?

從夫妻的角色你可以學到很多來對待你的同事。


有小孩的人尤其能瞭解,一般人對孩子稱讚的多,
小孩會叫個爸爸媽媽,你就高興的稱讚:「真聰明」,

你為何不把對孩子的慷慨稱讚分給妻子、同仁與部屬呢?

另外一件事是交朋友時,不能一直是太聰明。

一個人若太聰明就會交不到朋友,
若太笨,也會交不到朋友,
有時要聰明,有時要笨,
而何時該聰明?何時該笨?這就是智慧。

有人就是人緣好,人緣好的人絕不是笨人,
他知道何時表現聰明、何時表現笨拙一些,他有這個智慧。


當主管的人,
你若不對部屬說謝謝,不對部屬說我需要你,你們就不會有共生的關係。 

若你對太太說她除了會生孩子外,什麼都不會,
你們就不會有共生的關係。

對客戶、對合作夥伴,都要形成共生的關係 ,自己的缺點要能顯示出來。

你為何喜歡狗?
狗很忠實,你一回家,狗就搖著尾巴熱情撲上來迎接你,
有一件事我要告訴你,狗對你好,
第一件事是搖尾巴,第二件事他會翻過身來把全身最脆弱的部份給你,就是牠的肚子。

你打牠也可以,但會打死牠喲!一般人就會去摸摸牠。 

我們有多少人能夠瞭解當狗的藝術呢?

第一是搖尾巴,第二是公開自己的缺點。
一般人是這樣想:「喂!我是博士,你是碩士,
你是那裡的碩士?是臺灣的碩士嗎?還是美國的?德國的?是那個學校的?」
「我在這個行業裡是權威等」,

知道人為何喜歡嬰兒、小孩嗎?
要知道人緣好,

要當領導就要讓人知道我的缺點在那裡?我需要別人幫助我。 

Explore the Un-limited You
■Expand your knowledge space
--Read books --Conversation
--GQ (Newspaper
MovieComicsANYTHING)

■Positive thinking
--Motivational speech
--Think big and think tall

■Focus
--Time is the only asset you cannot afford wasting

一定要唸書,要多唸書,什麼書都要唸。

要多與人講話(conversation)

人都知道IQ、知道EQ,但你知道GQ嗎?

GQ
就是天上的事他知道一半,地上的事他全知道,
這種朋友就是「友直、友諒、友多聞」的第三種「友多聞」。

我希大家儘量培養你的GQ

電影要多看,
我很喜歡看電影,看電影讓我瞭解那種文化中的有趣的事;

我也喜歡看小說,在飛機上我若不想睡的話,不是看小說就是看電影。

我與客戶交談的時候,大家最喜歡談的第一就是新聞,
昨天發生什麼事,今天發生什麼事,
第二談的就是醫療,大家都怕死,
這個年紀了,大家身上多少都有一點小毛病,如果你能提供養生之道,
為朋友的痛風提供一些醫療的資訊,吃什麼?喝什麼?你就贏得一份友誼。

我請問大家,這種知識你在台大學過嗎?在工研院學過嗎?

你若沒有IQEQGQ,今天很難在這個社會中做大事。

我今天在這裡向你們演講,搏命演出,主要希望把層次拉高,

希望你們不單是只做研究,也要把眼光放遠,要做大事。

有人說我講這些話是打高砲,我無所謂,
今日大家全部陣亡,我認了,但今日你們中間有一位起來做大事了,我就賺了,

而且是大賺了,一個國家、一個公司真正的領袖有一個、兩個就行了。

我講這話,是希望你們的生活態度要改變,
你們沒變成leader,你們手下的人變成leader,我就賺了。 


「也許你會說,這事我做不到,」我不是要你今日就做到,
我跌跌撞撞,真正想事情是2829 歲,我想了20年,今日才在講,並且還在想,諸位也至少要20年的功夫,
但有些事情是20 年後想的事,有些卻是今天就可以想的事。

譬如今日回去在車上,你就可以想:
「我是誰?與我共生食物鏈的人是誰?我如何與他們相處?」


我向各位講的保證各位是第一次聽到,因為是我自己想的。

但是坊間有很多motivation的書或是演講,我鼓勵大家多看、多聽,

因為有潛移默化的功效,每天都在想我多偉大,有talents,自然心想事成。

我第一次接觸motivation 的書,是一位同仁
對我很好,他給一套tape,要我在車上聽,
我心想:「你簡直是吃我豆腐嘛!還不是傳教那一套。」

可是我一聽就上癮了,

我給別人聽,我自己後來聽了十幾套,我的生命從那時開始改變。

我開始想很多的事,你們要多聽,
講的人一定是從他生命中體會出來的道理,
你多聽了,也可以理出自己的一套,
不要吝嗇與人分享,分享愈多,自己心理建設也愈好。

要想像自己很高大。

我在研究所唸書的時候,有一位來自新加坡的優秀同學,
又瘦又小,卻去追來自臺灣一位聰明、漂亮、兇悍、英文好、個兒高的女同學,
雖然沒追成功,但他們也成了好朋友,一起吃飯、看電影。

當時來自臺灣的男生,有的是電機系、有的打籃球,個兒高大,但沒一位敢追她。

有一天我問這位來自新加坡的男生:「你比他矮一個頭,你怎敢追她?」

他說:「我雖然長得瘦小,但我認為我很高大。」


為這件事,我體會很大,人不是外在的你,乃是裡面的你,


為何很多人可以做到平常外面人以為他做不到的事。
在大學時,我看見漂亮女孩便發抖,緊張,不敢去追,
回頭想想,如果那時我理直氣壯追她,
我認為我英俊、我認為我高大,我就是要追你嘛!
你怎麼看我是你的事,
「我們為何不能看自己是很高很大呢?」

再講講日月光的事,我剛到日月光時,大家看我是新人,
別人都在日月光二十多年了,都是皇宮侍衛、御前侍衛,
告誡我「最好乖乖做你的事」。

但從一開始,我就認為有一天我會做他們的老闆,
我與他們相處的很好。
我把自己想的很高、很大。

今天在職場上,你為何不能把自己想的很高、很大呢?
你為何不能當工研院的院長?
你為何不能創業?
你為何不能做一個大的研究計劃?
如果一開始就說:「我不行,我不行,」

那你就是一開始就把自己打敗了。


我並不比別人聰明,並不比別人運氣好,我只是日以繼夜的加倍努力。

今日公司全球營運歸我管,一年做30 萬哩的飛機,常送聯航的免費票給人,
人家很高興以為是免費,其實是我用屁股坐來的。

為何如此飛?
如此忙碌當中,仍要撥出兩小時與你們談,
因為你們的背景,我需要與你們談。
你們心中所想的,有時講不出來,這是臺灣教育體系出來的人講不出來的。

我今日不講,我會後悔,我講了,也許十年後,你們中間有些人會請我吃飯。

Kindergarten Basics

這是一本書,是一位傳教士寫的,
他說我們人生所有需要學的事在幼稚園時就學到了。

 所有東西要分享(Share everything)
 玩遊戲要公平(Play fair)
 不要打人(Don't hit people)
 物歸原位(Put things back where you found them)
 自己弄髒的,自己收拾乾淨(Clean up your own mess)
 不要拿別人的東西(Don't take things that aren't yours)
 傷到別人要道歉(Say sorry when you hurt somebody)
 走在外面時要注意交通,要手牽手,走在一起(When you go out into the worldwatch out for traffic
hold hands
and stick together)

Food for Thought

We know what we arebut know not what we may be. ─William Shakespeare
Always bear in mind that your own resolution to success is more important than any other one thing
.
─Abraham Lincoln
The time is always right to do what is right. ─Martin Luther King
Whether you think you can do or think you can't,you're right. ─ Henry Ford

你是你,把完整的你、無限的你活出來,

一個人最悲慘的事就是上帝、祖宗、父母給你的東西,你只活了三分之一,

你對不起上帝、祖宗、父母。

我認為我自己將會成為日月光的營運長,日月光將會是一個好公司,
這是我對自己的期許,為何不敢去想、不敢去做呢?