顯示具有 快速學習 標籤的文章。 顯示所有文章
顯示具有 快速學習 標籤的文章。 顯示所有文章

9/25/2016

企業巫醫 - 時間乃最終之敵人? (上)




在每年不可計數的企業管理勵志書籍中,有越來越多把「時間」視為判斷事務的重要標準。想當然,個人「時間管理」變成一種必要的技能。然而,更近一步是在越短的時間,達到越驚人的效果,從早期的「24小時學會某東西」系列,到「7分鐘運動燃脂72小時」,都是試圖在短的時間內達到CP(註1)值最好的結果。


時間似乎是最終的敵人?


也許,在某些時候,「搶先一步」是競爭的最佳方式。不是大的打敗小的,而是快的打敗慢的(註2):就變成企業主事者認定的最好成功方式。畢竟,如果可以用很少的投資(小),只要用比較少的時間(快),好像就可以打敗大但是慢的競爭對手?聽起來永遠不吃虧阿!再者,兵法有云:故兵聞拙速,未賭巧之久也。似乎,只要速度夠快,總比慢來的好?

更近一步的說,許多人逐漸視時間為最終測量維度。例如Compete Against Time,就將時間視為在商業上,衡量事務的最重要方式(註3)。甚至有人認為應該是唯一的度量方式

就經濟學始祖亞當斯密1776年的說法,企業組織價值的來源主要由三種事情組成:資本,土地,勞力。土地:泛指一切自然資源,勞力:泛指人類的智慧和努力。任何商品的價值,都是由這三者的其中一種,兩種,或者三種組合起來。

時間快轉到2016,隨著全球化經濟發展,資本以及自然資源,對於企業的影響已經遠遠不如「勞力」,更確切的說,是人的努力強化資本和自然資源的運用。即便現在存在著比1776工業革命初期更自動化的設備,更能節省人付出肌肉的努力,但面對更趨複雜的環境,人類的「智慧腦力」似乎需要付出的更多,某些人需要付出更多的腦力,讓其他人少動點腦?而最終,變成某些人在相較短的時間,付出較多的腦力,產生較好的結果,可以大幅讓商品的價值領先市場的其他人。


總之,各種訊息「似乎」都顯示,即便時間不是最終的敵人,也是先要處理的「衡量指標」


以廣大勞工而言,衡量生存的指標,就從古時候的「每天能耕多少田」,轉為「每天能在工廠做多久」,而再變成「每天在電腦前面完成多少工作」。只要能在越短的時間完成越高品質的工作,就會越有機會加薪升遷。


然而,事實上只有極端少數的人,能夠妥善駕馭自己的時間,也因此,「時間」變成企業巫醫用來恐嚇部落子民的惡靈之一。


巫醫有三種方式來處理「時間惡靈」

一:加速 - 跑的比它快


各種企業巫醫的,也在強化此信念,教導讀者「加速」用來增加巫醫的崇拜。

例如,最有生產力的一年超強時間術早上三小時完成一天的工作時間整理術... 請隨意搜尋類似標題,一定可以找到超過100種以上的方式,書籍,甚至mobile app。

這些加速的書籍,有些的確是有用的個人經驗,就像南美巫醫累積了數世代的經驗,分辨有效的草藥一樣的有些用途。然而,通常僅能適用於巫醫自己。關於「加速時間」,就像投籃命中率一樣,可以學習,可以練習,但是因為環境的因素,每個人終究有其極限。

事實上,「加速」全然是靠自己的經驗和能力,就像大部分的感冒是靠自己的抵抗力痊癒一樣。採用巫醫的建議手法,確實有幫助,只要自己意識到這樣樣的手法是在幫助自己的經驗與能力即可。過度崇拜「方式與手法」,會容易走火入魔。(參考:2013年的9個todo app)。



二:有效利用 - 80/20法則的極端利用


光是加速,能取得的效果總是有限。頂多取得20%-30%的進步就很了不起。唯有改變方式,甚至改變目的,才有可能取得3倍或者10倍的改變。

從「加速」改為「有效利用」,就成為在2008金融危機之後的顯學。

例如:為什麼菁英都是清單控Scrum一半的時間做兩倍的事少但是更好其實工作不必這麼累 ... 一樣有成千上百的書都屬於此累。

這類型的「找重要的事情做就好」的書,其實真只有這個重點,那就是掌握80/20法則,先做重要的事情,你的職業生涯就是彩色的。

但是,企業巫醫沒辦法告訴你,在你身上哪個20%是最重要要做的事情。誠實的巫醫永遠只能說「施主,這要問你自己阿」。而拐彎抹角的巫醫會用「斷捨離」,「時間矩陣四象限」,「人生優先清單」等等技術性的手法,告訴你,你還是得自己找到那重要的20%。


三:心靈層面 - 永遠都有的一招


幾乎所有的企業巫醫都會的一招:將所有的事情,推移給心靈與精神層面。

例如:心靈慢活療癒慢活從容的力量慢一點成功又何妨被討厭的勇氣...

就心靈層面觀點而言,這些巫醫也許可以帶來平靜,而平靜讓人的思慮或許可以更周延,並降低更多的壓力。但是,這些巫醫雖然好意的想要讓世界變得更美好,但是絕大部分的人類是社會性動物,試圖全然擺脫外在的影響,等於是要人類放棄天性。當企業組織內變得越來越快速,光是一個人在裡面「慢活」是難上加難。




那結論呢?


請參考下篇:企業巫醫 - 時間乃最終之敵人? (下) 。




註1:CP值,或者性價比,請參考這裡

註2:這句話很多人都講過,包含郭台銘和柯文哲。不過,這個名言最早應該媒體大亨:梅鐸所說。另外,這句話在2002年也是某本書的名字。

註3:將時間視為第四個空間維度來描述,請參考狹義相對論

註4:增加工作效率?聽起來和前述的巫醫有什麼不同?就想要達到的效果來說,有良心的巫醫和一般的醫生並沒有不同。最大的不同在於方法是不是合理,經過有效驗證,而且可以在未來檢討改善。



9/05/2016

人工智慧的淺顯應用 - 製作Facebook或Line聊天機器人





聊天機器人(chatbot)並不是什麼新鮮事,早在1950年間圖靈(註一)在提出關於人工智慧判別方式時,就提到利用文字訊息 - 因要把人和機器分開 - 來和兩個對象聊天,其中一個對象是人,另一個對象是電腦,如果一個正常人在聊天的過程無法區分這兩者誰是電腦,誰是人,則可判別這電腦程式,是真正擁有智慧。

要達到這個目的難上加難,在wiki上可以看到目前僅有在2014年一個名為Eugene Goostman的聊天程式通過這個測試。

目前可取得的人工智慧演算法或相關技術都沒有太驚人的發展。然而,由於網路上的資料取得越來越容易,電腦執行速度越來越快,以致於不需要有驚人的技術能力,也不需要有對人工智慧會不會變成奴役人類的電影劇情的深思,就可以開發出有意義的應用。


Facebook聊天機器人也是其中之一。

商家,企業,甚至某些個人都擁有FB page (粉絲頁 專頁),而從2015年開始,facebook開始出現具有固定反應或者訊息回應的聊天程式。不過台灣似乎比較少見非特定用途的聊天機器人,因此我們就做了一個在粉絲頁上。參考下圖:


https://www.facebook.com/sandy4ai/ 具有人工智慧聊天的粉絲頁

這個聊天機器人會回應你的訊息,根據她內建的知識庫和基本的語意分析,會回應你訊息。當然,她也會慢慢學習對話,這個聊天程式並不會需要額外的facebook權限,因此她沒有太多額外的功能。下圖是聊天實況範例:



和具有人工智慧聊天的粉絲頁聊天


Line在今年(2016)也開放bot api,作法和Facebook幾乎很雷同。不過雖然都是webhook,他們的api實際傳遞內容當然完全不一樣。

Facebook/Line 聊天機器人的可能應用:


1. 基本客戶問題:

企業組織在網路上最常「被」查。查詢營業時間,查詢電話,查詢服務項目等等。在台灣,這幾年用facebook來做生意來越頻繁,而聊天機器可以提供24x7的基本回答問題服務。

2. 促銷活動:

聊天機器人在某些權限下,可以主動傳遞訊息,或者貼文給facebook使用者。這和一般廣告貼文有些許不同,因為貼文之後,使用者可以持續和貼文者 - 也就是聊天機器人互動。

3. 例行客戶服務:

預約預定,提醒預約,服務調查,生日賀卡貼文等等。




如何製作Facebook臉書聊天機器人:



1.摘要步驟

  (1) 到AWS開設帳號。 開發過程會用到Lambda, API Gateway, elasticsearch, s3 cloudwatch 等服務。

  (2) 到facebook建立facebook app。(簡稱 fb app)

  (3) 新增並撰寫基本的Lambda 以回應 之後fb app webhook時的GET驗證。

  (4) 新增撰寫基本的Lambda 以用在 接下fb app message hook回應

  (5) 新增 API Gateway 的GET/POST,對應到Lambda

  (6) 設定fb app 的webhook 對應到API Gateway的URL
  
  (7) 讓fb app的設定頁verify(基本上就是http  GET) API  Gateway

  (8) 讓fb app設定頁訂閱message 並記得在lambda程式回覆訊息時使用page token

  (9) 此時可以進行知識庫的連結,在AWS建立elasticsearch並且匯入經過程式處理的資料,這裡我們以台灣e院資料為範例。

   (10) 修改lambda程式,讓使用者的訊息,在elasticsearch查訊相關訊息,並且回復給原送訊息者

   (11) 至此完成,其結果大致如下圖:



2. 詳細步驟:

    ....<待續>...


如何製作Line聊天機器人:


1.摘要步驟

  (1) 到AWS開設帳號。 開發過程會用到Lambda, API Gateway, elasticsearch, s3 cloudwatch 等服務。

  (2) 到line developer建立帳號以及channel。

  (3) 新增並撰寫基本的Lambda 和 api gateway 用以回應之後在line的channel上link時的驗證。Line的api基本上只用到POST

  (4) 將自己的line帳號 加入剛剛自己增加的channel。就是設好友的意思,這樣才能測試

  (5) 將line channel所需要的api key, secret以及token設定在lambda 要傳回給line bot api的地方。

  (6) 此時可以進行知識庫的連結,在AWS建立elasticsearch並且匯入經過程式處理的資料,這裡我們以台灣e院資料為範例。

   (7) 修改lambda程式,讓使用者的訊息,在elasticsearch查訊相關訊息,並且回復給原送訊息者

   (8) 至此完成,其結果大致如下圖:


2. 詳細步驟:


    ....<待續>...



參考: https://www.facebook.com/sandy4ai/ 

 註一:Turing 就是電影模仿遊戲的主角
 註二:詳細步驟還沒有時間寫...反正不見得有人需要:)

8/06/2016

Scrum 認證!? 不要再浪費你的錢了!


管理類型的證照無用論,早在軟體工程界提倡Agile Movement的時候就逐漸存在。

以目前看起來取得成本最高的PMP在資訊科技的評價為例:比較客氣的說法像是這篇:雇用有PMP的專案經理需要更進一步了解其能力。而比較不客氣的說法會像是幾篇:PMP毀了專案管理,或者PMP證照無用。(註1)

而這幾年Scrum的方法論,因確切執行之後確實對軟體產品開發有顯著效益。隨之就有各類型推廣,教育,甚至認證產生。

然而,花大錢考Scrum真的有意義嗎?


(1) 認證市場


技術專業認證,絕對有其必要性,例如:醫生執照,律師執照,CCNA,SCJP,TOEIC,甚至,職業大貨車駕照,乙級中廚檢定...等等。擁有此技術執照,表示你至少「會」做某些事。

然而,非技術執照,只證實「考過」某些考試,一旦考試內容和實際會到的問題有差距,該執照就沒有太大意義。只能代表你對某些考試的努力成果。專案管理,企業經營方面的執照就屬於這類。這類型執照如果成本不是太高,倒也無妨。高收費的認證?等於是浪費錢。

一旦有高收費的認證,自然就會有認證教育訓練市場。教育訓練本身是好事情,可以讓人學習成長,但是,教育訓練本身如果是應付考試,意義就降的很低。


(2) Scrum高收費認證為何沒用?


迄今,Scrum認證有很多種類,單就Scrum Master而言,網路上隨便找,都可以找到以下七種,請參見下表。


證照名稱考取成本 (以台幣計算)組織
Certified Scrum Master$30,000 (含16小時訓練課程)Scrum Alliance 
 Professional Scrum Master I 
 Professional Scrum Master II
$4,500

$7,500 
Scrum.Org
Expert Scrum Master$3,000EuropeanScrum
Certified Scrum Master$3,800 (不含訓練課程)
$4,500 (含8小時訓練課程)
GAQM
Scrum Master Certification$13,500ScrumStudy
Agile Scrum Master$5,880EXIN
Scrum Master Accredited Certification$900Scrum-Institute


筆者考過並取得最貴的認證以及最便宜的認證。其價格差距很大(三萬台幣 vs 九百台幣)。單就「考試內容」而言,最便宜的考試內容甚至還稍微難一點點。而最貴的CSM (ScrumAlliance)其實也就是台灣各教育機構最努力推廣的認證。

就考取認證作為職場價值這點來說:

1. 如果是沒有任何軟體專案經驗者,透過高收費教育訓練考取最貴的收費認證,基本上,和只自學而通過最便宜的認證,在Scrum基礎知識上根本沒差別。而在Scrum實務運作上,也沒差別:都屬於完全沒經驗。


2. 如果是有數年軟體專案經驗者,「有無證照」對於專案管理來說,只是履歷表上的一撇,一旦遇到真正的艱難問題:在Scrum上採取正確作法的經驗和收獲,遠比考證照的收穫大得多。因此,昂貴證照和便宜證照也無任何差異。

3. 沒有駕照,就不能合法開車。但沒有Scrum證照,在務實的企業中,只要你有足夠實務經驗,足夠證明支持你的能力,根本沒有問題。反之,如果有Scrum證照,但無法足以匹配的經驗,能力,而再加上創意不足,那麼甚至是有害無用。



(3) 建議作法


如果有想考Scrum相關證照,有三個強烈的建議:1.「自我學習Scrum」2.「確切運用Scrum」3.「考最便宜的」

1. 自我學習Scrum:

學無止盡,無論是Scrum還是其他未來可以出現的方法論,都值得一學。但更重要的是,如何自己學習。任何教育訓練都很有用,但也不可能完全取代自我學習。

自我學習的方式可參考這裡:如何學習Scrum 。以及這裡:如何成為Scrum專家,或者:scrum的缺點,或者 :Scrum三件必要的事

2. 確切運用Scrum觀念與作法在軟體專案中:

任何專案管理上的知識技能,如果不能有效運用在專案管理上,當然就沒有意義。以Scrum的每日會議(無論是不是站著開會)來說,其基本觀念在於:

「限時」 - 15分鐘
「事實」 - 只描述做完的項目,和下次打算做完的項目。(註2)
「困難」 - 只說明困難,不是要在每日會議上解決困難。

也許現實會讓Scrum Master或專案經理有所調整,但如果調整的方式不能切中Scrum觀念,則取得昂貴Scrum證照也沒有任何意義。(例如每日會議花超過40分鐘,肯定不符合任何一種Agile專案方式)

3. 以實力考最便宜的證照:

不可否認,還是有不少人認為一旦履歷表上有幾個証照,似乎會多一點點面試機會。另外,也有些有專案管理經驗者,自我學習Scrum想要有個目標來證實自己。

以這樣的立場,其實考取最便宜的證照即可。而最好是在沒有任何準備的情況下,抱著隨便考的心態。如果這樣考過了,表示Scrum的基本知識已經深入腦海中,考不過其投入成本也不高。

剛出社會的新鮮人,如果覺得萬一在面試時,有人對便宜的證照有疑慮?你可以客氣的敦請他去考考看,了解一下其考試的品質。





註1: 我們不是反對PMP。事實上,在其他工程領域PMP有其必要性。例如:cern的LHC是一個橫跨數十個國家,涵蓋土木,電機,資訊的龐大工程,PMP條列的九大項目,五十多種可能的文件在此就有點必要性。本文反對的是,以PMP(或其他管理證照)來判斷一個專案經理有沒有能力執行資訊軟體相關專案

註2: 何謂做完?(definition of done)也是Scrum team需要在專案開始前定義好的。

註3: coursera.org 提供各種課程修業完成認證,目前沒有ScrumMaster,但是有類似Agile Management的課程,上課是免費,不過,取得認證約為3000~5000台幣之間。

7/18/2016

解決軟體專案困境的最爛方式 - 加班





「加班」是解決軟體開發專案困難的常見方式,但也是最爛的方式。(好方法?請參考:解決專案困境的三個方式)

負責控管專案進度的主管或專案經理,如果只會用「加班」這招來解決問題,那就不適合做軟體專案經理。

長期,非自願的(註1)加班沒辦法真正解決問題的各種經驗實證,早在許多談論軟體專案的書籍中存在。例如:人月神話Peopleware約耳談軟體與熊共舞等等。從來沒有看過有任何「專案管理理論或實務認為加班有用」。

最根本的原因在於:知識工作者(軟體工程師),其產出和付出的「超額」時間根本沒有關係,也因此,加班從來都不會解決真正的問題。

既然如此,為什麼加班文化仍然存在?

常見原因有:

1.  短期效應


特定目的的短期加班:例如參加週末創業活動,或者,產品銷售大會之前的熬夜修正demo問題等等。這些特定的目的,固定時間的活動,確實會讓人拼了命「加班」完成目的。但是,短期效應絕對不能當作一般專案管理的方式,大部份的專案都不是百米賽跑!


2.  專案經理本職學能不足,利用要求加班來展示苦勞。


專案經理沒有其他辦法,只會加總人時。因此,即便人月神話從初版印刷上市(1975)到今天已經超過40年!仍然有不少軟體專案經理即便看過人月神話這本書,仍然不可自免得繼續要求加班。因為,如果有加班,即便專案失敗,以往也被認為「沒有功勞也有苦勞」。

但是,以現在環境變化迅速,一個軟體企業中,如果「一直都只有苦勞」,被淘汰的速度遠比過去還要快得多。



3.  模糊的合約。


在某些糟糕的情況下,銷售可能會簽下模糊的合約,當專案經理看到合約內容時,其解讀方式和客戶「截然不同」。在各種專案經理訓練課程,以及各類商管叢書裡,都會說「要良好溝通」,但實務上,當專案經理手上已經拿到不合理,而且驗收條件極為模糊的合約時,幾乎不可能以「溝通」來解決。如果專案經理,誤接燙手山竽,而又沒有足夠的創新能力和技術能力來解決時,通常會誤以為軟硬兼施的「加班」,或許可解決這個問題。

但是,如果這次不能非加班的方式解決,下次就不可能有更好的方式。其後就落入惡性循環。可以google一下「台灣  接案公司」看看目前的現實情況。


4. 心靈激勵。

無論是「要有創業家的精神!」,或者是「我們在做全世界最偉大的軟體」,甚至是「世界的和平,人類的未來就靠我們了」。而又有太多人誤以為,只要有正確的心靈激勵,軟體工程師就可以像電影劇情,日夜匪懈的工作,還能有創造性的思考解決問題。


5. ...很多其他的理由。


如果你是專案管理人員,之前要求成員加班的理由到底是什麼?如果你是軟體開發人員?曾經被哪些理由要求加班? 




既然如此,到底什麼是解決軟體專案困難的好方式?
除了可以參考這裡之外,還有三個原則:


1. 永遠都有選擇 - 「Say No」也是一個選項!


認為不正確的事情就應該說「不」。在正確的時間點不說,只會拖延,就不是個好的專案領導者。


以組織層面的角度:

就專案經理本職學能而言,一旦發現自己不是個好的專案領導者,應該要對自己說不,迅速辭職,改當一個好的程式設計師,或許是對專案最好的幫助。

就專案目標而言,倘若使用這的需求不確定,就應該選擇不做,或者選擇先做mockup,讓使用者確定需求,才不會浪費時間。

資源 - 特別是人力而言 - 在企業組織中,永遠都是有限。而良好的管理是透徹於在有限的資源中做有效的分配。加班不會讓分配變得有效,只會讓無效的分配繼續無效。

以技術層面的角度:

技術永遠有選項。一個複雜的功能,可能有起碼5種不同的實作方式,到底是選擇複雜但是有趣,還是選擇簡單,但是堅固耐用?就要視情況而定。

無論什麼事情,一定有選擇,絕對不會有「我們只能加班」這個選項。



2. 專案擁有人,必須參與專案!


近年來流行的Scrum,有一個必要的要點:專案擁有者(product owner)在每一個sprint之後要檢視產出。這個要點非常的重要,遠比正確做好燃盡圖,每天站著開會來得重要100倍。

專案擁有人,需要參與專案的每一階段進展,確實了解專案的人把時間用在哪裡,並且確實了解,每一個sprint產出都是專案擁有人最想要的產出。如此才能確保「做出對的事情」。

如何讓專案擁有者參與專案,就變成專案管理者「一定要做」的事情。

會把PMP的教材背的滾瓜爛熟 -- 溝通管理計畫書是要建立蒐集擷取散布各處的資訊,以及最終處置專案資訊的流程 -- 但實際讓連每一小階段讓專案擁有者「確定產出是他要的」都無法實際做到,簡直沒有任何意義。

在每個階段發個制式的email,裡面塞了很多複雜的圖表資訊,只會讓專案管理者「誤以為」一切都很順利。把確認每階段產出是他要的這件事情越往後延,風險就越大!


3. 磨利斧頭!


技術上的學習,會讓事情事半功倍。太陽底下沒有新鮮事,你所遇到的困難,可能已經有另外17個人遇過同樣的困難,而其中也許有9個人已經解決,解決的人之中有5個把相關資訊放在網路上。只要有正確的英文閱讀和google查詢能力,並能固定的自我學習,充實自己(參考如何充實自己),通常都能以更好更快更有效率的方式,解決軟體上的問題。

但是,千萬不要把「沒有時間學習」當作理由。當你的斧頭已經鈍到無法砍樹,還試圖用鈍斧頭砍樹來表現自己的努力,這是完全沒有意義。學習的目的就是磨利自己,將知識與技能銳化,才不會以無意義的舉動,做無意義的事情,加無意義的班。






註1: 凡事皆有例外,遇到天災人禍等不可抗力情況而加班其實算合理,不過即便如此,也應是極短的時間。例如,颱風天放假,隔天需要額外的工作時間。自願性質也絕對不會是長期,例如自己去參加創業週末,某種程度是自己為了自己額外工作,但頂多是一個週末,也不可能連續10個週末都在進行這樣的活動。

相關文章:
-->  換工作的面試-軟體工程師如何展現價值
-->  靠感覺做專案管理 - 鐵定失敗
-->  如何提高工作效率:三個務實的快速步驟
-->  心智圖:職場的第一個技能
-->  你確定知道專案進度嗎?
-->  80/20法則之軟體專案的三個運用重點


7/12/2016

如何充實自己:大量閱讀的三步驟




閱讀是充實自己的最簡單,便宜,有效的方式。

閱讀不需要花錢去買書,以新北市的居民為例,只要就近找一個新北市圖書館的分館登記成為讀者,就可以線上借書。如果在該分館沒有,還可以運送其他分館或者總館的書到你最近的分館領取。方便到幾乎沒有藉口不閱讀。

閱讀是許多人的休閒活動,在躺椅上一邊讀喜歡的書,一邊吹著微風,是悠閒人生的象徵。小說文學,遊記漫畫,在這個情景下是再好不過的書。

但如果為了充實自己,那麼大量閱讀是有很大的幫助。

所謂大量閱讀和傳說中的超強速讀並不一樣

傳說中超強速讀,則是存在某個不太認識的人身上的特殊技能,總是會人試圖花錢去學習這個從來學不會的特異功能。

大量閱讀是在同一個主題下,透過不同作者的觀點來建立自己在這個主題下的知識。大量閱讀是閱讀超過7本以上同類主題的書,並且透過前人的知識,建立對這個主題的全面性概觀。


步驟一:選定主題,取得大量書籍



為了充實自己的大量閱讀,需要有個主題。例如:「創業」。也可以將主題縮小或者放大。例如:「精實創業」就是縮小範圍,而「企業管理」就是放大範圍。

有了主題自然就要去取得書籍。除非很有錢,否則大量書籍會先從圖書館借。現在圖書館幾乎都有線上查詢的網站。在線上查詢網站,查詢該主題。


以「精實創業」為例,在新北市圖書館網站,竟然只查詢到兩本。基本上除非主題過於偏僻,這種情況太不可能,當改為「lean startup」查詢之後,就找到了52本,雖然裡面有幾本不太相關,不過數量也已夠多。稍微瀏覽一下書名和簡介,就直接利用線上借書功能,盡可能借到不能借為止!通常是10本左右。



切記!!先別在網路上搜尋這個主題!!


由於撰寫網路內容的成本非常非常低,確實有可能搜尋到片段知識,但對於充實自己的角度來說,弊大於利。除非已經對這個主題有一定熟悉程度,只是需要找到特定問題的答案,否則在這個階段完全不適合利用網路!



步驟二:閱讀


等拿到那幾本書,就要開始閱讀。

大量閱讀的「閱讀」要從目錄開始。假設相關主題的書共有10本,先將這10本書的目錄,大致瀏覽一遍。根據自己的感覺,先列出哪些「章節條目」是重要的,那些可能是不重要的。對於某些「條目」 如果有很明顯的「正反面意見」就要特別留意,這個條目可能很重要。

目錄瀏覽過,就表示應該產生基本的心智圖筆記(參見步驟三)。現在請排序找到前三本要讀的書,將三本書依序讀過。

接下來,在記憶中,將這三本書的重要關鍵項目,轉折點,列在心智圖筆記中。這時候心智圖可能會一改再改。鉛筆會是最好的選擇。

當心智圖筆記大致完成,檢視自己的知識,看看對哪些條目有更深入的興趣,將剩下的7本書,以「條目」的方式閱讀。剩下的書,不需要每本的從頭看到尾,但是,可以針對有興趣的項目,或者重要的項目,特別橫向閱覽所有關於這個條目的章節。當然在過程中,如果發現這7本書裡面,有寫得非常好的,當然也可以從頭看到尾。



步驟三:心智圖筆記

專案管理的心智圖筆記


雖然說是步驟三,但是其實在閱讀的當下,就應該先做筆記。而心智圖,是最好做筆記的方式。

在閱讀的開頭,可以先把「主題」畫在中央,然後把書本的「章節條目」根據自己的興趣以及自己的分類方式,「記錄」其關聯性。這樣的紀錄,並不一定以章節名稱。以右圖為例,這個圖示紀錄「專案管理」這個主題的心智圖,其中右邊第一項「Practical way」指的「實務做法」,因此從專案計畫,執行,產出,結束,都被分到這一類。

注意!心智圖筆記的關聯與分類,乃是根據讀者(也就是你)的想法和關聯而來,他並沒有所謂對錯,他是讓你的心緒能夠抽離。除非你有鄧不利多的儲思盆,否則,這是目前已知最簡單最快速能讓你的思維視覺化的方式。






參考:如何充實自己:三個務實的快速方法



7/06/2016

如何提高工作效率:三個務實的快速步驟





Give me six hours to chop down a tree and I will spend the first four sharpening the axe. 

 - Abraham Lincoln

白領工作者,或者,知識工作者的工作,追根究底是利用智慧知識和經驗,做出一些行為。例如:行銷經理,就是擴大產品的市佔率;軟體工程師,就是產出程式碼;業務員,就是賣出產品; 言情小說作家,就是寫書;專業經理人,就是領導管理團隊完成任務。

只要是知識工作者,不管用什麼方式衡量工作效率,理論上都可以持續提高。

就概念上來說,工作效率來自於三大方向,(a)技術與知識,(b)環境,(d)心理層面。

技術與知識。需要靠學習與經驗累積,而正確的學習和正確的經驗累積更為重要。請參考這三篇相關文章:自我學習的方向片段知識的危害工作中學不到東西

環境。如果週遭都是工作效率極高的人,自然而然就會主動提高效率,然而環境有點運氣成分,大部份的人很難控制周遭環境。

心理層面。從馬斯洛需求階層論,到赫茲伯格的雙因素理論,心理與管理學界不乏各種相關的研究以及結論。但知識工作者,可以先參考Ted的這篇


工作效率,絕對會和「超過」的工作時間呈反比。長期的加班對絕大部份的知識工作者而言只會降低效率,拖延成果,殘害自己與家庭。尤其是對剛進入職場的新鮮人,提升工作效率是最最最最重要的事情。工作效率的提升,會伴隨知識技能的成長,更多的時間運用,以及對組織產生真正的價值。高效率地利用時間,可以產生對職業生涯的正面循環;低效率的長期加班,則會產生很難逆轉的惡性循環。


只要願意嘗試,每個人都可以利用以下三個務實的步驟,持續並快速提升績效。做法很簡單,只需要筆記本和筆:

(1). 15分鐘每日計畫


每天開始工作前,先不要開電腦收email,而是拿出筆記本和筆,把今天最重要的幾件事情寫出來,分類事項,決定今天要先做什麼,要完成什麼,參考這篇的分析。切記先完成重要且緊急,以及重要不緊急的事情。

每日計畫只是簡要列出「打算完成」的項目,並且花一點點時間,沈思哪些真的可以完成,哪些是在80/20法則中最重要的完成項目。 也可以加上一些「保留」時間,用以處理意外。

(2). 15分鐘檢討改進


每天結束工作「後」。拿出筆記本,看看今天開始計畫的事情,哪些完成,哪些沒完成,哪些真的重要,哪些其實後來發現不重要。自己檢討一下自己的判斷為何不正確,為什麼該完成的事情沒完成,並且,簡要記錄一下,完成的項目大概花了多少時間,未完成的事項是因為什麼原因。


(3). 15分鐘重點學習


改進檢討結束後,找一小段時間,再把筆記本拿出來,看一下那些比預期晚完成的事項,哪些是因為自己的知識技能不足,導致太晚完成。列出這些項目。特別是找到「厲害的人一下子就可以做到」的事項。舉例而言,excel的PivotTable是資料分析的最基礎的方式,也是做big-data模型時,小規模測試的最好參考,會妥善利用PivotTable的資料專家,會比不會用的人更節省時間的驗證自己的模型。

在筆記本列出需要學習的項目,每天花15分鐘,在網路上學習這個技術或知識。每天只要專注於「一個能提升效率的事情」就綽綽有餘了。




知識工作者最悲慘的情況,莫過於努力了好幾天去做一件完全不需要做的事情,或者完美的執行一個完全不對的方式。

如果還沒有找到最適合自己的方法,請按照這三個務實的方式,每天花不到45分鐘,在2-3週之後一定會有顯著的效果。




這篇文章的乃是根據以下書籍參考,匯整,並且實際執行之後的結果。
- Getting Things Done  
- The Productivity Project 
- The 4 hour work week
- Lean startup
- Do Over

5/26/2016

問對問題,如履平地。問錯問題,萬劫不復!




在不到十歲的年紀,有一次流感重症去看醫生。那時候還沒有健保,醫生通常還是會跟家長講一下治療方式可能的價格。當然,如果打一針可以好的比較快的話,多花個幾百塊可能也是值得的。但是!小時候的我很害怕打針。也許恐懼的神情被醫生發現了,他就好意地問『有比較大筒的針跟比較小筒的針,看你要打哪一種?』小時候的我,毫不猶豫的當然回答『小的針。』。結果,最後護士是拿出「兩隻」小的針筒,左右兩邊各打一針。

這個慘痛的經驗,後來讓我學習到,要完整考慮「問題」,至少要從三個方向思考:


1.問題可能不能代表真正的問題


無論是一般工作進行,還是特定專案,通常都有各式各樣的「問題」產生。有些可能是單純的疑問,例如「這個功能什麼時候可以完成?」。有些看起來比較複雜,例如「帳號如果被管理者停用,則正在登入使用中的session是否要立刻中斷?」

單純的問題,可能要考慮的更多。以「這個功能什麼時候可以完成?」為例。可以循用5 Whys 五個為什麼,來了解看似單純問題的真正本質,

例如:

「這功能完成的時間已經在系統有紀錄,為什麼要額外詢問?」--- 原詢問者回答:「只是想要知道有沒有意外」

「為什麼會想要知道有沒有意外?」 --- 原詢問者回答:「之前某高層詢問專案進度,我覺得這個功能因為比較複雜,不知道會不會有風險」

「為什麼高層會詢問專案進度?」 --- 原詢問者回答:「因為高層覺得專案預計完成時間太晚,想要用一些方式提早」

「為什麼會覺得預計完成時間太晚?想要哪種方式提早?」---原詢問者回答:「我也不知道,不要再問了!!」



2. 真正的問題很難找到


事實與真相就像船頭和船尾,首先會看到船頭,然後根據整個情況有多大多複雜,才會在最後看到船尾。

要找到真正的答案,必須要先找到真正的問題。

在許多軟體專案中,經常會有專案管理者以「人力不足」作為問題並試圖解決。但是,這個問題在絕大部份的軟體專案中,根本不真正的問題。

真正的問題也許是:

(a) 許多專案成員另有其他任務,導致投入專案的時間太少

(b) 專案需求不明朗,時常增刪變更,導致時間浪費

(c) 「人才」不足,而非「人力」不足,像是:
       (C-1) 專案管理者沒有看透技術關鍵的能力
       (C-2) 專案成員訓練不夠
       (C-3) ...其他...

而每一個問題, 背後又隱藏其他的問題。絕大部份的專案中,問題看似很多,但最重要的可能只有幾個。

專案經理的重要任務在於:決定真正重要的問題(忽略不重要的問題),並且優先解決最重要的問題。


3. 真正的問題才能找到真正的答案


要找到真正的答案,必須要先找到真正的問題。

一旦找到真正的問題,等於已經產生一半的答案。不過,另一半的答案可能也不見得很簡單。

假設認為真正的問題是「專案需求不明朗,時常增刪變更」,答案的選擇可能有:

(a) 採取Scrum開發模式,確保每個Sprint的需求不會再改變,讓真正的專案擁有者能參與每階段的決定

(b) 暫停所有開發活動,在沒有完成細部設計與需求規格書之前,先不開始開發

(c) 再花時間去找到為什麼專案需求不明朗的背後原因,






最終,每一個成員,需要為自己找到最適切的真正答案。
隨波逐流,最終只能忍受左右兩邊各一針的結果。





3/25/2016

資深與中高階人才選用:三個要點





在資訊科技領域裡,資深或中高階人才選用遠比找到剛畢業很有潛力的人來的困難重重。

詭異的是,幾乎所有已經在資訊科技領域工作7年以上的資深專家,通常多少都會遇到獵人頭(hunter)的引誘。事實上,中高階的職缺其實很少,由組織內部升遷的機會很大。然而,如果真的從組織外部尋找,雖然看似符合條件者眾多,但能有效媒合卻是難上加難。




要點一:情境實例面談


絕大部份的中高階人才之所以是「人才」,乃是根據其真實的過去事蹟。而非未來想像。

在書面篩選階段,通常是根據過去工作經歷,決定要不要請來進一步面談。

而在面試階段,卻常落在討論未來的理想和展望。的確,未來的理想跟展望,的確很重要。不過,在面試階段,要判斷此人能否實現理想和展望,應該是根據其過去的「理想與展望的實際產出」。

一般外商HR的實務操作方式為:面談時著重於情境「實例」。(SAR: Situation Action Result) 

例如,有個軟體研發部門RD主管的履歷表中,表示有帶領軟體開發團隊開發軟體。此時開放性問題無法真正展現該主管的經歷,應該採用情境實例問題,了解過去的「真實例子」。


-- 爛問題範例 --


未來取向的開放性問題:「未來你如何帶領開發團隊?」「你覺得RD團隊應該如何與業務團隊溝通?」....這種問題的回答必定是十分鐘不著邊際的長篇大論。



-- 好問題範例 -- 

初級情境實例問題:「目前你的團隊共多少人,其中有直接report給你?」「此專案你本人有參與寫程式嗎?」「此專案你本人有執行code review嗎?」「這個專案一共大約產生多少行程式碼?」

......初級問題著重能取得簡單而無可偏頗的答案,答案可能為「是或否」,可能是「數字」。回答應該是在10秒內。




中級情境實例問題:「在帶領N個人的團隊裡,你個人做過哪一件事情對團隊合作最有幫助?你怎麼做的?結果是什麼?」「在之前的工作裡,你做過最糟糕的決定是什麼?為什麼此決定是最糟糕?」

......中級問題著重於過去的某單一事實,必須引導回答針對這個人的實際作為,以及產生的結果。如果詢問的問題是負面資訊,例如犯下的錯誤。必須確定是問到犯下「最大的錯誤」。在面談過程,如果一個中高階主管,在過去7年的職業生涯沒犯任何錯誤(或者拿一些小小的失誤當作談話材料),很可能是隱藏事實,但更糟糕的是,他不覺得自己有任何錯誤的地方。


高級情境實例問題會和另外兩個要點:「本職學能」以及「獨立執行單位有關」請參考以下兩節。


簡而言之,SAR的基本概念很簡單:找出事實,而非空想;討論實際,而非理想;了解過去,而非未來。這部不代表理想與未來不重要,而是要判斷中高階人才的理想與未來,應該是看他「過去實踐過多少」,而非不是他「打算未來實踐多少」。


參考資料:(Careerly, SAR)





要點二:本職學能


已經位於組織中高階,很有可能早已不具備,或者喪失本職學能。因此,正確判斷是否具有合適的本職學能極端重要。

然而,中高階位階的人,其本職學能比較抽象,需要有方法加以判斷。

資訊科技領域的判斷方式有:(1) 基礎經歷 (2) T型延伸 (3)培育人才


(1) 基礎經歷:

以職業籃球為例,目前NBA的總教練,必然曾經在他人生的某個時期是「頂尖球員」,也許只是在NBA眾多明星中的候補球員,但也至少是NCAA某個第一級學校的球星。縱使不是,至少也是在高中時期,某一個州的的MVP等級球員。總而之之,他必然曾經當過明星球員,因此在當總教練的時候,能夠了解一整隊明星球員的思維,球員在比賽時的「真正作為」

同樣的,假設在軟體開發,找尋中高階的帶人主管,他本人必須「曾經是軟體開發人員」,最最最起碼也需要有3年以上實務寫程式的經驗。一個的SA或PM,也許工作的經歷還不錯,但如果沒有務實的寫程式經驗就來帶領開發團隊,就好像一個資深的球隊經理,看過很多比賽,卻沒有實際上打過球,就來當總教練一樣的危險。

或許有人會說,有些人屬於「將將之才」,他當將軍比當士兵還適合,不應該以過去的基礎經歷來斷定。在其他領域,或許是,但在資訊科技領域,「沒寫過程式」就是「沒寫過程式」。


其他的基礎經歷,必須有「清楚的事實」的佐證。例如,在履歷表上有AWS的使用經驗,就必須要清楚地知道何謂使用經驗?是用過EC2/S3/Route53,還是用過那數十個服務的哪些服務?是自己親自使用還是「指揮」別人使用?使用的規模有多大?等等


(2)  T型延伸

T型延伸的基礎是先有「基礎」,因知識與職責擴展的關係,延伸到其他相關領域。例如,在已經有智慧型手機應用程式開發的「基礎之上」,延伸到線上行銷,社群開發等等。

誠如前一節所述,沒有基礎,延伸不具意義。

關於T型人才,請參考這裏這裏

(3) 培育人才 

並不是每個人都會是好老師,不過如果中高階人才承擔的任務與管理有相關時,能否「培育人才」將會是團隊成功的關鍵。在SAR的方式裡要找到培育人才的方式很簡單。初級問題像是「你個人過去六個月以內,做了哪一件事情最能幫助團隊培育人才?」。中級問題像是「」




要點三:獨立執行單位


資深的工程師和初入社會的新鮮人最大的差別之一,應該是能夠自我成為一個執行單位。判斷是否已經成為獨立執行單位,是選才關鍵要點。


判斷的基礎方式有:(1)自我培養,(2) 計劃未知,(3) 人才培育。



(1) 自我培養

可以在組織裡,自行培養自己,發起並參與適當的事件。在中高階人才中,不存在「組織要協助培養能力」的情況。

這並不代表不用學習,只是不應該透過組織來建構自己的職業生涯和學習計畫。資深與中高階人才,應該要能自己規劃學習計畫,主動學習,並且「主動」將自我成長與組織成長「整併」。

僅專注在自我成長,對組織沒任何好處。努力使組織成長,放棄自己的成長,對組織也沒有好處。雙贏才是長久之計。



(2) 計劃未知

沒有人能預測未來。但資深中高階人才,應該能透過本身的技術能力,工作經驗,長久累積的直覺,有效看出至少數個月後的可能發展,並能有效制定計劃。

計劃(plan)本身並不重要,重要的是做計畫(planning)。中高階人才應該能在有限的已知情況中,盡可能計劃未來,建構真正的目標,評估控制風險。

而這計劃並不是為了展示,也不是文書作業,也不一定需要900頁巨作。關於計畫,請參考這裏


(3)人才培育:

請參閱前一節的培育人才。






3/17/2016

工作學不到東西:三個自立的方法



在資訊科技的公司裡工作的人,無論年資,大概常會聽到有人提到「在這裡學不到東西」「這個team沒有給足夠的訓練」「在這裡的發展有限」等等的牢騷抱怨。抱怨自然是人之常情,不過,個人職涯最終還是決定於自己。換言之,大部分的情況下:公司,環境,同事,工作內容...等等大概都不是「學不到東西」的主因。

任何情況下,都有以下三個實質的方式可以嘗試。


方法一:理解事實


任何事情,一開始都應該理解事實。

先確定是組織或者公司無法給予足夠的學習機會,還是自己沒辦法自我學習?假設沒辦法判斷,99%大概是屬於沒辦法自我學習的情況。

事實無好壞之分,事實只是單純的事實而已。然而,試圖了解事實有時候並不簡單。

一個剛畢業的學生,除非是高斯埃爾米特之類的天才,否則幾乎在任何組織裡,都有可以學習的事物。特別是在資訊科技領域裡,無論是正面學習,側面學習,甚至負面學習,在一段不長時間內(1-3個月)一定可以學到某些新技術,某些新觀念,某些應該避免的不正確的事情。

如何了解事實?可以試著問自己以下問題:

(假設處在一個軟體開發的組織中)

* 在這個組織裡面,所有相關技術你都能有效掌握?

* 組織中沒有人比你資深?

* 組織中比較資深的人,你都了解他過去的工作經歷?

* 目前組織中使用的程式語言,開發工具,你都已經徹底瞭解其優缺點?

* 目前整體開發過程的技術問題,都已經了解真正原因,並能務實地加以改善?

* 對於類似的軟體開發專案,類似功能的產品,都已經了解相較於自己團隊的優缺點,以及技術差異?

如果以上回答都是YES。事實就是這個組織真的無法讓你學到東西。不過如果有回答是NO,事實可能是你需要知道怎麼學習。




方式二:學習如何學習


請參考如何充實自己篇。

學習的本身是需要學習的。雖然每個人的學習方式略有不同,但提昇自己如何學習的能力,遠比把自己放在「可被教學」的環境來的重要。

簡而言之:花錢去上教學課程,在工作中有資深同仁可以帶領,參加各類型研討會...等等,這些雖然絕對益於個人成長。但是,「靠自己獨立學習」卻是一個難能可貴的技能。

而這項自我學習的技能也是需要學習。這衍生出看似複雜的問題:個人能否自我學到自我學習的技能?

撇除邏輯上的矛盾,找到適合自己的方式最為重要。若還沒有找到,可以參考如何充實自己篇。

舉個實際一點例子,假如你想學習作為一個好的軟體團隊中的QA,隨便在google或者youtube搜尋一下相關字眼,起碼可以找到數十個相關的教學文件甚至錄影。

認真花上幾個小時看完以下網頁以及教學錄影,相信你對這個主題肯定有某程度的瞭解。這都是僅透過"how to be a good software QA" 以及相關關鍵字搜尋得來:
1 http://www.guru99.com/software-testing.html
2 https://www.youtube.com/watch?v=sab0dblUpIE
3 https://www.youtube.com/watch?v=G5RpYi2dT04
4 https://www.youtube.com/watch?v=j8kY9txH2bc
5 https://www.youtube.com/watch?v=xCwkjZcEK6w&list=PLXXvO4OXeJrfbPrI0CV-re2VkdiV1dC7X 
6 https://www.youtube.com/watch?v=vimfiZZ4NI0&list=PLZTe0pWS8OYv3KYWJTZT_3chbtpXBoiOz&index=6
7 https://www.youtube.com/watch?v=OLayCNOPWIo

8 https://www.youtube.com/watch?v=hMfPCdF07hA






方式三:做出結果


資訊科技相關工作,特別是和軟體開發有關的工作,「學習」是很重要,但是「產出」卻更為重要。而產出就表示有具體的結果出現。

例如:這幾年data scientist相關話題非常熱門,有許多已經在職場2-3年的軟體工程師,常常會以這工作能否讓他有「data scientist經驗」為學不學到東西的考慮因素。

然而,其實特定技術領域,學東西最正確的方式,應該是自己能做出「某種結果」。

如果想要有data scientist工作經驗?有太多現成的「真實」工作經驗可以自行取得。

在大部份組織內部,都有很多無形產生的資料。這些資料,絕對足夠一個程式設計師學習以及做出學習的結果。

例如:

  •  程式碼版本控制系統(git, subversion, svs)。含有整個專案開發過程的「實質進展」資料,可利用他做時間序列分析,程式設計師個人績效分析。目前早有許多專案提供工具。
  • 組織的AD資料。正常情況下含有可供內部公開使用的資料,例如組織架構,人員變更。
  • Web Log。現在大部份的專案多少都使用HTTP,他必然會產生足夠大量的Log。一般Log分析工具(例如AWStats)已經可以做基本的資料分析,再配合machine learninig就可以做出各種有趣的結果



至於在組織外部,機會更幾乎是無窮盡的,也可以透過某些網站取得真實的資料,做真實的工作。例如:kaggle :在此有真實的專案,任何人都可以取得資料,透過自己的能力,完成資料分析專案。其他像是一般外包的網站:upwork.com也會有類似的工作,但可能不見得可以取得真實資料。

以結果為導向的學習,會比較腳踏實地,並且容易達到想要的效果。然而需要個人的興趣以及決心來支持。




參考:努力的三個迷思


3/13/2016

如何組成團隊:三個步驟





分工合作,是人類社會進步的主要原因之一,也是幾乎所有人類活動的基礎(參見國富論:第一篇第一章論分工)

新創公司,資訊產業也不例外,建立一個好的團隊,是擴展未來的主要關鍵。雖然好的團隊沒辦法保證生意蒸蒸日上,一切順心如意。但是一個糟糕的團隊,卻是可以保證企業和組織的失敗指日可待。


市面上團隊合作的企管叢書,方法論,激勵理論,顧問大師...很多。但就和所有的事情一樣,越是很多人在談論的事情,越是困難。成功的團隊真實例子極為罕見。

萬事起頭難,「組織並成立團隊」是達到成功團隊的第一要務。許多人常依賴運氣,或者隨遇而安的隨意組成團隊,但其實組織團隊是一種可以學習的艱深技術能力。

資訊相關工作的人,如果有機會能扮演組成團隊的角色,並有意識的學習其中,將會是個人成長的重要關鍵。(無論未來是朝純技術領導方向前進,抑或管理方向前進)


有很多原因,會讓一個人扮演組織團隊的角色。也許是一個新的專案,讓你來領導專案,而恰巧專案開始的時候沒有既定的人。也許你是新創企業的創始人,你打算聚集一些人來開發創新事業。也許你是資訊相關科系的學生,因為課程需要必須組織團隊完成專案。

不管如何,如果你有「從頭開始找人選人,組織團隊,完成某件事情的機會」,請衷心的痛哭流涕的感謝上帝,這樣的經驗,在資訊科技領域裡是十分難得。

通常,由於各種背景壓力,組成團隊的方式通常就是先根據需要N個人,然後「儘速」透過各種管道,找到可能的人選,經過正式面試,或者非正式的聊天,就逐一邀入加入此團隊。這種方式沒有不妥,只是這樣的方式(如果算是一種方式的話)有很大的成分依賴運氣。如果不想依賴運氣,其實需要考慮的實務步驟也不多。


以資訊相關工作為例,組成團隊必須要有以下三個步驟:


步驟一:定義目標

--- Your goal shouldn't be to buy players, your goal should be to buy wins. And in order to buy wins, you need to buy runs.   (MoneyBall)

定義目標,必須要在團隊開始組成之前,就先找到並且定義完成...最起碼是團隊差不多組成的時候就應該決定。

定義目標並不容易。

例如,以類似的資訊系統外包案而言,有些明顯的目標是「在成本內完成專案並驗收通過」或者「在期限內通過驗收」。但是,倘若一開始的合約是低價得標,而且還是業務亂搶合約,那麼一開始就已經知道不可能在時間成本內驗收通過。則團隊目標必須要轉換,例如「完成專案過程可順便完成重複利用的元件讓未來標案能大幅降低成本」。

大部分的資訊團隊真正的目標並非「技術達成」。例如,「完成iOS APP線上購物」這通常不是真正目標,真正目標通常是「在某移動通訊市場上,讓使用者可以線上購物」。

在營利企業裡,大部分的真正目標通常關聯到增加收入或者降低成本。而在非營利企業(例如研究單位)團隊的目標有可能非常模糊。例如,一個碩士班的實驗室團隊,他的目標可能是「培養人才」,也可能是「讓主持的教授獲得升遷的點數」。

定義目標雖然不容易,但掌握以下三點可以除去大部分的誤差:

(1) 定義目標後,審視檢查這個目標背後是否還有目標。例如,籃球比賽目標,某球員目標是得30分。但其背後還有個目標就是球隊要贏球。在球隊沒贏球的情況下得30分可能沒有意義。

(2) 定義目標後,檢視此目標是否只是某個大目標的一小部分。例如,某些NBA的球隊,會談論是進入季後賽的目標,然而背後的大目標其實應該是拿到總冠軍 - 無論有多艱難。

(3) 定義目標後,檢視此目標是否因為其他條件未達成就失去意義?這時候所謂「其他條件」或許可能是目標。例如,一個團隊負責營運線上購物網站,其目標是「網站每分鐘必須可以提供10萬個使用者同時進行交易,7x24服務不中斷不當機」。然而,若此線上交易網站平均上線交易人數每分鐘才1人,即便營運團隊達到技術目標,商業目標肯定無法達成,則此團隊目標也沒有太大意義。不如改成「與業務團隊合作線上行銷活動,讓每分鐘平均交易人數成長XX%」



步驟二:組合優勢


--- The greatest improvement in the productive powers of labour, and the greater part of the skill, dexterity, and judgment with which it is any where directed, or applied, seem to have been the effects of the division of labour. - (Adam Smith)

無論用什麼方式找到團隊成員,資訊相關的團隊必然有分工,而分工必須要能讓成員發揮相對優勢。而每個相對優勢,都可以達到步驟一的目標之一。

構成團隊過程可能很多,但無非是找到某人,詢問意見,在某時間此人加入。然而,「加入之後做什麼」著重於考慮組合優勢。

台灣經濟學的入門書通常會用蓋木屋與磚屋的例子(參見這裡)簡單的說,組織團隊時,把成員的時間投入在相對優勢的工作上,可以達到1+1>2的效果。

實務上,分工時請考慮一下三點:

(1) 根據相對優勢來分工:盡量只考慮優勢,而不是先考慮缺點。

(2) 分工的結果,還是必須朝「真正目標」前進

(3) 整個團隊需要了解分工與分派任務的原因 



步驟三:產生運轉動能

--- All things are difficult before they are easy.


團隊組織完成,要開始運作,不會像籃球比賽一樣,十個人在場上,裁判吹哨跳球就開始。

團隊前進需要累積動能。就像騎腳踏車一樣,從靜止到穩定前進,會花比較多力氣,然而一旦穩定前進,就很輕鬆。

產生動能指的是團隊成員已經彼此合作,彼此鏈結工作,發生問題也可以彼此協調解決。

以資訊科技為例:

最常見也是最糟糕的產生動能方法是由專案經理透過一連串的方式 - 通常就是開會 - 持續讓事情前進。團隊成員花在正式會議上的時間比例只要超過10%(也就是每週超過4小時)就屬於這種類型。


最佳,但是最罕見的產生動能的方式是由每個團隊成員,透過自身的判斷,做會讓事情前進的動作。類似足球或者美式足球的比賽。在資訊科技團隊中,這種組合需要時間磨合成員,而且也須一點點運氣,讓團隊的成員大部分的能力都可以足以某種程度的獨當一面。

如果你剛好是資訊科技/軟體開發的團隊領導者,至少要先避免最差方式,並且透過你的領導能力,讓團隊慢慢的朝向最佳的方式前進。

實務上有三個重點方式:

(1) 資訊透明:讓所有進行的事情透明的讓所有人取得。要注意,資訊透明指的是針對確定的事實透明。非確定的事實就是所謂謠言,要緊記:謠言止於智者,起於智障!

(2) Scrum中的豬雞原則:請參考這裡。在組織產生動能過程,豬負責的事情就由豬來決定,雞只是提供參考意見。

(3) 檢討 retrospective:需要團隊自我檢討任何不正確或可以強化的地方,檢討並非開批鬥大會,目的在於讓團隊能更有效率的,以及確保團隊真的朝向目標前進。




12/03/2015

如何充實自己:三個自我學習的快速方法



資訊科技進展不只迅速,它順帶擴大自我學習的可能性。大部份的人只要能夠上網,就可以取得各種即時的訊息與知識。換言之,很多人都認為,資訊科技領域沒有什麼東西是學不會。

但是,沒有人一開始什麼都會。即便資訊工具改善過去知識的取得的不平等,但是自己要有意願和方式去學,這件事是沒辦法由技術來改善。


而為了充實自己而學習是沒有最好的方式。然而,多參考別人的方式,建立對自己最適合的方式是簡單並且直覺的選擇。

學習的目標,以及打算達到的廣度深度各有不同。如果只是很淺的了解個大概,只要用google搜尋,看看wiki大概就可以了。不過這樣的學習非常的片段,並且沒有組織。如果想要建立足夠的深度,這樣的方式獲取的知識過於片段,難以累積。(參考->片段知識的危害)


提供三種務實的方式,這三種方式的目標,廣度,深度,所需要的時間各有不同:


(1) 方式一:圖書館堆書



做法很簡單。只要你有想要充實並且學習的主題。無論是組織行為,還是憂鬱症;無論是個人領導力,還是專案管理。只要是社會科學,企管相關,科普等目標都蠻適合。

在這裏,假設你想要學習並盡可能瞭解"精實創業"。

首先帶著筆和紙,最好先不要帶手機或電腦,去附近的大學圖書館,或者比較大型的圖書館,例如新北市書館,台北市圖書館。

在圖書館的公用電腦,查詢"精實創業"以及相關字詞"創業"/"精實",記下列出來的書本期刊,當然最好連同英文書也查一下。列出這類型的書籍在哪一樓哪一櫃,直接到書櫃上把所有相關書籍全部搬到座位上堆成一堆。通常相關書籍都會集中在同一櫃,所以搬動起來應該很方便。

接下來,拿起筆和紙,打開第一本書。抄下書名,作者,出版日。簡單瀏覽一下目錄以及推薦簡介,看完目錄之後,把你認為重要章節名稱,手抄在那張紙中。再打開第二本書,重複剛才的動作。如果有20本書,大概只需要花一小時就有完整清單。

然後,仔細看一下清單,排列組合並且思考一下,哪三本書,所可能涵蓋的範圍最廣,時間最新。快速地將這三本書的目錄再度瀏覽一次,選一本先看完。然後休息一下再看另外兩本。這樣大概需要花兩小時,就可以對這"精實創業"有足夠的粗淺了解。

最後,記得先休息一下。休息完之後,在腦中思考這三個小時裡面學到什麼。憑藉這三小時的記憶,在腦中描繪「精實創業」的概念與自己認為重要,或者奇怪,或者有疑惑,或者有爭議,或者和其他領域連接的地方:這些地方稱為轉折點。回到那張有目錄的紙上,找出某些書上有解釋你認為重要的轉折點,閱讀並且理解這些轉折點。如果有20本書,起碼可以找到3本以上有這類型的地方。最後這個階段,能夠建立從別人身上了解的知識批判性,不過也最花時間,可能起碼要3小時以上。

因此,花上六小時,你就可以曾原本不了解精實創業,變得比大部份的人都了解,肯定比只在google搜尋,看看wiki的人瞭解更多。不過,請注意這只是充實知識了解而已,真正的精實創業就像打籃球一樣,是沒辦法光用看的方式是不可能實踐。

這個方式,我本來以為是自創的,但是後來發現有很多人都用類似的方式,只是做法各略不同。果然太陽底下真沒有新鮮事。

關於大量閱讀,可以參考這篇:大量閱讀的三個步驟

(2) 方式二:心智圖表徵


在已經有某些知識的背景上,試圖瞭解新的方向,或者找到自己缺乏的方向上,mindmap (心智圖)還蠻適合。他也很適合探索自己未知的事情,或者強化個人思慮的周密性。

在這裏,假設你想要學習並盡可能瞭解"軟體專案管理"。並且也認為自己想要擴張這方面的相關知識。


首先,拿一張紙(最好比A4大)一支筆,把主題寫在中間。將心裡認為可能的最重要項目連結起來。例如下圖:



把自己沒有經驗的,缺乏的地方做一些記號。通常我會使用問號?。接下來專心的根據自己缺乏的地方,尋找相關資料。重點在於,有組織的擴張知識,比片段搜尋來得有意義。

順帶一提,心智圖用法很多,"充實自己"只是其中一種。心智圖 (mindmap)不是什麼新科技,而且每隔一段時間就會有各式介紹文章,例如這裡,以及這裡。雖然介紹的範例與文章很多,但實務上,心智圖還是完全依賴人的過往經驗和創意連結。 


(3) 方法三:教學相長


這特別適用於資訊科技類型,例如程式語言,系統平台,或者任何技術。基本上,會先用其他方式(上網看書,練習實作等等)累積自認為足夠的知識與能力。接下來,想快速增加深度。或者充實自己想像不到的方向。教學相長是一個好方式。

就近找朋友或者同事,用你認為最精闢的方式,把技術和務實做法分享出去。光是在準備「教材」的過程中,就可以知道自己哪些觀念或者哪些方面不足,從準備教材的過程,就已經開始自我充實。

而最重要的是,取得聽眾的意見和問題。因為,他們可能會問出你想像不到的問題,讓你看到想像不到的視野。

實務上有幾個主動教學方式可以參考:



* 在大組織裡的主動分享

如果你是一個大企業裡面的員工,就自願性的訂一個會議室,訂一個主題,邀請一些相關的人來聽你分享某個技術。這樣的行為很簡單,而主管通常也很鼓勵主動進行。如果信心不足,可以訂一個極簡短的主題,這可以確保想來聽的人不會覺得浪費時間,也可以讓你精深的準備一個項目,提升自己的信心。



* 參加研討會:

參加研討會,並且把自己的知識在研討會上分享比想像中的容易很多。當然如果你要參加的研討會是類似IEEE的學術性質研討會,那你得花時間寫論文,而且不見得會被取用。不過,一開始先找lightning talk就很簡單,雖然只有幾分鐘,但是可以很快地獲取聽眾的真實回饋。



* blog/youtube教學影片:

近年來的分享知識方式。它無法立刻獲得聽眾回饋,但重點在於製作影片,或者撰寫blog文章之後,自己在試著重新閱覽一次,通常就可以找到許多漏掉的細節,或者過於瑣碎無用的地方,或者找到和其他人不同的觀點。

* 找到具體達成的目標:

例如:考取「低成本」證照,以Scrum為例可以參考這篇





其他相關文章:
   * 如何在工作中成長
   * 換工作的面試-軟體工程師如何展現價值
   * 自我學習的三個參考方向
    * Team Leader提升能力的三個方向
  * 如何提高工作效率
* 大量閱讀的三個步驟







11/26/2015

資訊新鮮人:三個關於價值的概念



亞當斯密,在國富論中描述商品的價值只有三種來源:勞力,土地,資本。雖然那是1776年的事情。但至今變化仍然不大。勞力:泛指人的各種智慧以及努力;土地:指的是各種天然資源;資本當然就是投入的錢。


村上春樹,在尋羊冒險記中描述組織的價值有兩個部分:意志,收割。雖然那是小說,而且還是現實與科幻混合的小說。意志是指推進組織的能力,具有統御可能性的能力;收割可能是指將即將得到的利益完成。



Dave Snowden,在他的研究裡面,定義了Cynefin架構,將事件的反應系統分成:簡單(simple),複合(complicated),複雜(complex),混亂(Chaotic)。

簡單:指的是事情的反應有很明確的因果關係定義,根據定義來做事情即可。

複合:指的是事情的反應之間,確實有因果關係,但是這個因果關係可以透過分析,學得而來。

複雜:指的是事情的反應之間,雖然有因果關係,但這因果關係沒辦法事先知道,只能事後知道。

混亂:指的是事情的反應之間,沒有因果關係。



這三個人講的事情看似沒關係,但是對於社會新鮮人對於價值的三個重要概念,卻是重要的參考。



(1) 何謂價值


幾乎任何東西都有價值,只是每個人評估價值的方式不一樣而已。在經濟學上最簡單的方式就是,你的某個東西,願意和別人交換什麼東西。那就是對你來說的價值。當然,交換太過麻煩,因此金錢變成一種簡單的衡量媒介。

在經濟學上常用價格來當作價值的衡量方式。不過價格本身就有很多種定義。

如果將範圍縮小到,投入資訊產業的新鮮人所關心的方向。價值可以縮小到:個人的智慧與努力,去交換某種東西。當然這某種東西很容易就被歸類為薪資,而如果是創業家則是利潤。

交換只有已經交換才有意義。因此,價值只有在交換成立的時候才有意義。例如,當新鮮人在104要求月薪5萬,這並不真的是他的價值,他的價值可能是4萬,也有可能是50萬,只有在成立的當下 - 也就是雙方同意月薪的那一瞬間 - 價值就成立了。所以,更重要的觀念是:價值沒有所謂的高與低,只有當時的事實。換言之,以價值的觀點來看,沒有過高的薪水,或者過低的薪水,只有雙方同意交換的成立價值。

當然,很多人互相同意的交換成立價值,就變成常見的成交價。股票某個時間點的價格,就是那個時間點的某一些股票的成交價,而非所有股票在那個時間點都是同一個價格。

最直接了當的說:如果覺得這薪水,對你來說太少,那就不要答應。但當你答應了某薪水,也不要抱怨 - 起碼在幾個月之內,沒什麼好抱怨的。而當你「自認」應該要提升價值時(就是該加薪了),必須要是有交換的可能,才叫做價值提升。(就是真有人願意以這樣的薪水雇用你)

價值當然可以互相比較,常聽人說性價比高還是低。然而不同事務交換的時候,比較的基準自然會不一樣。就此而言,在資訊科技產業的任何兩個程式設計師,都無法互相完整比較價值,因為兩個人的智慧勞動以及產出一定無法有效比較。

另外,同一件事情,在從不同人,不同時空背景取得,會有極大的價值差異。例如,你坐計程車上班會花錢,然而,如果在你搭車的時候剛好遇到同事,順道搭便車,他可能完全不會收你任何費用。



(2) 組織的價值產生


組織,特別是營利組織,其價值等於是可產出的商品(或服務)。而任何商品的價值來源有三種:勞力,土地,資本。由於資訊科技產業(特別是軟體)並沒有用到很特別的天然資源,因此土地幾乎可以排除。而勞力和資本就變成資訊產業最主要的價值產生來源。

資本的構成與取得也不那麼簡單,不過不在我們的討論範圍之內。當然政府政策的影響也不在這短短的文章討論範圍之內。

勞力當然包含智慧技能等等,而企業內員工對於工作的付出智慧與勞力的方向,大概可以分成Cynefin架構中的那四種。


簡單(simple):任何工作的行為是可以預知因果關係,必且可以透過各種手段最佳化,這些手段可能是由機器取代,可能無法由機器取代。例如銀行櫃台的大部份業務,都可以由ATM取代。某些日式的餐飲店,其服務流程經過妥善的最佳化,任何顧客的情境以及行為都可以編列在他們的制度與管理方式裡。因此,簡單類型的工作,可能產生最大價值在於能否提出最佳化。

複合(complicated):任何工作的因果關係可以透過分析與瞭解而取得。工作本身可能是困難的,但是工作的效率還是可以評量,工作的內容,可能需要少許技能,但也有可能需要很高的技能才能完成。這類型的工作,其價值高與低,取決人的能力,使用的工具,採用的策略技術。這類型的工作可以學習,但學習時間長短不一定。複合類型的工作,可能產生最大價值在於是否能提出好的架構,並且有訓練有素的專家。一般的程式設計師,維修瓦斯爐工程師,一般醫生,護士,理財專員等等都屬於此類。

複雜(complex):事件與工作的因果關係只能事後知道,無法在事前分析瞭解。然而,其因果關係仍然存在。聽起好像很複雜,然而這類型的工作,不見得很困難,只是要產生價值的時候,可能需要不停地進行嘗試與練習,才能事後了解因果關係,透過事後練習了解。例如,開一家新公司當創業家,獵人頭工作,業務類型工作,特殊類別的醫生,各類型的研究單位等等。

混亂(Chaotic):事件與工作沒有因果關係,或者就算有,也是人的智慧無法得知,藝術就是此一類型。這類型的工作可以透過學習,擴張知識,反覆練習獲得經驗,來提昇可能性。但是難以評量。例如,畢卡索的畫作,張大千的書法,可以由他學生們學習模仿,也無法就價值評量。在企業上常見的例子是賈伯斯,他對apple的貢獻無法被學習,也無法被評量。有人認為開拓性質的研發也算此類,例如具有極端價值的演算法工程師,組織微積分的牛頓,構思相對論的愛因斯坦等等。

當然在以上的例子非常粗略,只是拿來參考用。組織的價值產生,就在透過人的智慧與勞力,資本的投入用以執行四種系統架構的事物。這四種系統架構,其產生價值的地方都不盡相同。

但今天幾乎可以確定的是:(a) 簡單的工作會趨向被自動化方式取代,無法自動化(例如餐廳)則會被低勞力成本取代。(b) 複雜的工作,透過科技的進步會簡單化。(c) 混亂類型的工作仍然屬於個別人的天賦範圍,可以培養但無法預測。

因此,真正的組織價值,在於透過意志,驅動複雜工作的架構,屆此拉近因果關係的差距,以及建立相較於其他組織的優勢。


(3) 價值不公平的觀點


誠如"何謂價值"所描述。價值只有交換的時候才會成立,而既然雙方樂於交換,何來不公?

大部份的情況下,所謂樂於交換通常是在資訊互相全然透明的情況。然而資訊全然透明是幾乎不可能,因為人根本無法處理足夠大量的資料,也無法體驗所有可能的情況。例如,一個新鮮人,畢業之後最多也只能面試50家企業,不可能窮其心力面試完所有可能的工作。但反過來說,一個企業的工作(如果不是屬於「複雜」或者「混亂」類型)幾乎都可以找到起碼50個合格候選人。因而,由於資訊的不對等,大部份的情況下,企業比較容易可以找到性價比高的員工,但新鮮人比較難找到性價比高的工作。

換言之,以個人的角度,解決不公平的方式有很多種。從價值的觀點著手有兩個可能:

(a) 投入組織意志的部分。

投入職場的大企業的人,都不太可能一開始就是驅動組織經營策略的人。通常都是某個小部門的小螺絲釘。因而要成為組織意志的一部分是很難的。然而,如果是投入在小公司,假設是只有5個人,那麼投入組織的意志部分是非常輕而易舉的事情。

不在組織的意志部分,並非就沒有價值,而是在組織的意志部分,個人的能力與可產生價值很容易顯現 - 無論高或低,好與壞。

(b) 強化處理複雜或者混亂的問題的能力。

混亂的問題大部份是屬於藝術類型。藝術很多都是「無價」,因為無價,也難以在此討論。不過所有能處理混亂類型的人,幾乎都是在某一個領域知識廣博,經驗豐富。因此,不間斷的學習一定會有幫助。

處理複雜的問題可以透過自我能力的培養,經驗累積,從他人(例如職場導師)學習而來。複雜的問題相當困難,但是一旦累積了架構性解決的能力,這優勢幾乎不會消失。

(c) 將複合的問題簡化。

透過資訊科技,將複合的問題簡化,可能是最近幾年最常看到資訊科技對組織產生價值的地方。大數據(Big Data)對網路書店上推薦購書就數此類。許許多多不同的手機應用程式(app) ,提供人類各種溝通方式(例如line) 也是屬於此類型。


(d) 將簡單的問題加速或自動化,進而最佳化。

將簡單的問題加速或自動化,可能是資訊科技新鮮人常會忽略掉的一點,但這點其實對價值的提升比想像中來的重要許多,特別是在大組織內。加速或自動化處理簡單的問題,可以讓人專注於其他架構問題,縮短內部公文流程,自動記錄某些事件等等,都屬於此類。這做起來相當容易,而且假以時日效果也很好。

當事情或者問題可以自動化之後,進而就可以最佳化。例如,過去政府有複雜的公文簽核流程,在紙本的年代,很難統計看出真正的瓶頸,透過自動化公文傳遞,很快的看出到底哪些公文花多少時間流過哪些不必要重複的地方,進而就可以去掉不必要的地方。以開發手機APP的流程為例,當視覺設計師的mockup,可以自動產生可供UI/UX測試的可供驗證app時,就可以進而快速取得使用者操作的經驗流程,進而讓UI/UX能最佳化手機APP的使用便利。




將複合的問題簡單化,簡單的問題自動化,自動的事情最佳化:是最基本產生價值的概念。




沈思:
   - 資訊新鮮人能在多短的時間內對組織產生價值?

11/05/2015

選擇跨國委外開發商的務實流程:三個要點





不管委外開發什麼東西,東西有多複雜,時間有多長,正確的選擇委外廠商就等於成功了一半。

會使用委外開發的目的一定涵蓋兩點:

(a) 讓組織專注在重要的事情,
(b)成本效益。換言之,選擇委外開發的廠商或個人,也至少要涵蓋這兩點。

而對於新創公司來說,委外還有另一點優勢:就是

(c)迫使你自己更瞭解自己在做的事情

因為你需要完整的把細節用文件簡要說明清楚。如果你自己沒辦法把事情說明清楚,那麼不用說無法委外,你可能根本無法有效率的創業。這樣的創業只會讓你日以繼夜的努力,卻事倍功半,就算成功也是運氣成份居多。

在做任何選擇的時候,都要把握20/80法則,也就是用最省時間方式,確認最多關鍵成功因素。建議使用以下三個實際要點:

(1) 要點一:要確定理解規格


確認理解規格,很多人以為是外包商的責任,其實應該是業主的責任。因為業主不應該雇用一個不理解規格的人!換言之,業主要能在委外活動開始之前,確定外包商能理解規格。

這點聽起來很直覺簡單,簡單到就像大家都知道不能闖紅燈,上班不能遲到,開車不能喝酒,寫程式應該要有Unit Test一樣。可是實務上就是有很多人做不到。

根據經驗,所有外包的失敗,有起碼75%的源頭,可以追溯到對規格的不理解。因此確定外包商理解規格才能外包是第一要務。

那要怎麼在還沒簽約前,確認外包商理解規格?

用電話/email問他:Do you understand the spec?然後他會回答:Yes。....這做法是100%完全沒用。

請他看完規格書之後,問他一下:Do you have any question。然後他會回答:No。...這做法一樣100%沒用。

另外,規格也要對QA稍作定義,倒是不需要洋洋灑灑列出421的test case,只要簡要的把最重要的幾個使用者行為定義清楚即可。

最簡單的作法是用過濾刪選。實務作法如下:

1. 篩選掉不認真看文件的。


首先在發標之前,先把規格簡單的描述一下。然後在文件的中後段,穿插一句話:If you see this, please add the secret code "Bravo" in your proposal。這個目的很簡單,就是要刪掉,連看都不看就想要來投標的人。因為透過網站來投標的成本很低,所以有很大的機會亂槍打鳥。要投標的人,一定會提供proposal,而實務經驗來說10個來投標的,竟然只有5個有真的看文件,並且把Bravo這個字眼放在proposal的第一行。

換言之!用一個簡單的方法,就可以篩選掉一半根本沒認真看文件的人。沒認真看基本說明的人,可能壓根錯估時間跟成本,萬一選到這樣的外包商,最後吃虧的一定是業主。


2. 篩選掉無法回答三個技術問題的。


準備三個簡單但是重要的問題,讓外包商回答。舉例如下:

(a) Did you use dynamodb (aws) if you did, let me know why you use it.

(b) Please simply describe how to let android app use fb login.

(c) what is the most difficult things on our specification?


依照這三個問題的回答,業主很快可以判斷,剩下來個5個之中,哪些對於要做的事情比較有信心,哪些是完全沒信心。


3. 篩選掉估計時間不合理的。


前兩個問題都通過之後,就請剩下來的人估計時間。這時候估計的時間,請他要給完成的時間點,而非要花多少天完成。外包商花多久時間,多少人力完成,其實業主不會需要知道,也不可能知道。然而,業主需要知道,幾月幾號幾點,會取得什麼樣的東西。

如果完成的時間本來就預期很長 - 所謂很長是指超過2週。就應該請外包商分里程碑(milestone)分階段產出,分階段驗收完成。時間估計不合理的長或者不合理的短都會有問題。但是,在這個階段倒是可以多花幾分鐘,了解問題在哪?例如也許是他剛剛好這禮拜要畢業,準備畢業考試之類的?有些時間的延宕是可以接受,但是一定要知道原因。


以上三個篩選步驟都很簡單,任何複雜的專案,都只需要花15-20分鐘就可以完成上面三件事情。但是這三步驟絕對會讓你節省不少寶貴時間。

另外強調一下。規格不在於細節,所以鉅細彌遺地250頁規格書一定也沒用。不如一個兩頁的精要版。


(2) 要點二:要確定目標


讓外包商理解目標,以及確定外包商理解目標,也是業主的責任。

所謂的目標是指,根據規格完成的東西的真正意義。例如,規格書上詳述要完成一個android APP,並且可以用fb login,並且可以記錄帳款...等等內容。但是,所謂真正目標可能是:必須要在某月某日之前,讓具有某些功能的APP上線,並且可供使用者免費下載。這目標的確和規格書一樣,但通常規格書沒辦法表達優先順序,以及真正的完成,以此例子來說真正的完成是要放到google play上線通過。

當選定外包商之後,一定要花20分鐘,以電話或者視訊溝通這次外包的真正目的,而規格書是達到真正目的的最大參考,可是規格書本身不是目的。這點一定要說明清楚。

(3) 要點三:要有plan-B


選擇委外開發,通常不會是把核心項目委外開發。因此,理論上外包失敗應該不會有滅絕性的結果。

所謂的Plan-B就是要有外包失敗的計畫。Plan-B類似危機管理(Risk Management)不過遠比危機管理簡單,它只需要知道:外包失敗的結果,以及如何因應。


1.  定義何謂失敗:


首先一定訂清楚定義何謂失敗,每次外包行為只有失敗跟成功兩種,沒有中間的。模糊不清的選項只會讓事情變得更複雜。以前述APP開發為例,所謂成功指的就是在某月某日之前,具有某功能的APP上線,並且通過所有定義好的當初簡要的QA測試。所謂失敗指的就是不滿足成功的所有條件。換言之,失敗不見得我們就不付給外包商費用,有可能外包商分階段完成,但最後完成的日期比預期晚,那仍然是失敗。


2. 失敗如何因應:


一但確定失敗,就一定要用預設因應方式。以前述例子來說,因應方式可能有很多種。

例如,雖然功能都可完成,QA測試也沒問題,可是已經確定無法準時上線。所以因應方式就是把計畫往後推延N天。然而,這個N天必須要是事先定義好。不能是當失敗發生才定義。原因在於,唯有事先定義好的失敗處理,才不會讓其他事情跟著失敗,如同骨牌一樣,一路倒個沒完,那就等於是把核心關鍵任務外包。因為延宕N天是事先定義好,換言之,其他事項早就已經把N天計算進去,因而這個N天就變成無關緊要。

然而,如果不是時間,而是外包商倒閉,或者壓根就消失,當然就要啟動重新委外行動。一樣會延宕N天。這N天,一樣也是必須事先定義好。

換言之,失敗因應其實都和時間有關係。當然和外包成本也有關係,只是通常這樣的外包最後真正付出金錢損失通常不大,因為現行的外包平台大部份的情況下,都會保障業主不會付出冤枉錢。反倒時間與精神損失才是重點。


這三個要點,無論專案有多麼大,有多複雜,都可以在1.5個小時之內完成。根據我們過去N次規模不同的外包經驗來說,採用簡單的三要點作法,讓我們自己將外包成功率從30%提高到90%。