顯示具有 資訊科技學生 標籤的文章。 顯示所有文章
顯示具有 資訊科技學生 標籤的文章。 顯示所有文章

9/04/2017

面試的前晚準備 - 極簡計畫書



無論你是社會新鮮人,還是職場打滾了十幾年的老鳥。當你準備要去工作面試的前一天晚上,有計畫性的準備面試,絕對比沒有任何準備來的好。

職場新鮮人自然會從網路或其他地方,獲得許多面試準備的要領,試圖做到面面俱到。然而,已經到了前一天晚上的話,要抱佛腳也應該要有正確的方向。例如,努力準備英文自我介紹,大概就不是一個前一天晚上能做的好方向 (註1)。

職場老鳥,即使已經是工作N年以上,應徵的是資深技術相關職位,在前一天晚上「提升技術能力」當然是不可能的。不過,卻可以準備好自己的強項,來增加面試成功的可能性。

某些資深職場老鳥,通常有「知我者伯樂,不知我是你的問題」,「良禽擇木而棲,這塊木頭反正也不好」的想法。這些想法不見得是錯的,然而,這不應該是「不做面試準備」的藉口。因為無論該公司好或者不好,既然要前往面試,你的唯一目的應該就是「被錄取」,而錄取之後,再來考慮要不要答應還不遲。

而面試前一天的準備,對資深技術人員來說,其實更簡單,並且也很容易讓面試方看得出你的資深價值。舉例來說,準備「要問」的問題,對資深老鳥就非常重要,這些問題的重點不在於獲得「解答」,而是在於讓面試者知道你的資深程度和專業性。

「面試前一天的準備 - 極簡計畫書」


與其說是計畫書,不如說是一個檢核清單,任何人應該可以在一個半小時之內,完成清單上的項目。按此索取極簡計畫書

計畫書的目的是在面試前的晚上,約1.5小時之內,用合理的技術方式,盡可能提高自己既有能力的展現,藉此提高面試成功的可能性。 

使用步驟說明


(1):找到組織背景資料。  [15分鐘]


在組織相關資料區塊中,填入公司組織名稱,代表人,營業額,毛利率等等可以找到的資料。

如果是營利組織,幾乎一定能透過名字或者統編,找到基本資料。非營利組織或者剛起步的新創事業,可能缺乏某些資料,但是可以將難以取得的資料當作「要問的問題」。因為,專業人士,通常會問出真正關鍵性問題。


(2). 要問的問題:   [35分鐘]


要準備問對方的問題。現在的面試,幾乎都會讓被面試者發問,而這段時間難能可貴。因為,這些問題是100%可以由自己控制,也就是說自己可以決定要問什麼,也可以決定不問。因此,面試前一天,反而應該花多一點點時間在準備「要問的問題」。

要問的問題的「真正目的」是要讓面試者認定你的能力和潛力,而不是你真的想要知道問題的答案。因此,最最最愚蠢的問題,莫過於詢問公司福利,社團活動,上下班時間,哪邊可以蒸便當,之類的無聊問題,這些問題,應該是透過人資或上網搜尋取得答案,而非浪費在寶貴面試時間上。

要問的問題至少要準備7-10題,而可以視面試情況決定要不要問。

基本問題像是:
  • 如果我被錄取了,我在到職前3個月,要完成哪些具體工作內容?
  • 目前這個職位,是因為有人離職而要找取代者,還是一個新職缺?此職位已經懸缺多久?
  • 請問您如何評估一個人適不適合這個職位 
  • 面試到目前為止,你覺得我是否適合此職位

至少必需要準備2-3個進階的技術性問題,技術問題並非指「特定的技術」,而是指「讓你側面了解更多」的問題。例如:

  • 請問您會在這裡工作最主要的原因是什麼?
  • 目前這個團隊,曾經遇到最大的障礙或困難是什麼?
  • 請問您擔任這個團隊的主管已經多久了?

當然,進階技術問題通常比較敏感,在開口之前應該要客客氣氣的說「如果不方便講也沒關係」。

請在表格中,挑選要問的問題,並且在備用欄位,填入你自己想到的問題。





(3). 被問的問題:   [30分鐘]


面試者在面試的時候,手上一定會有你的履歷表。無論你之前對你的履歷表有多熟悉,在前一天晚上,應該再次看一下當初你寄出去給該公司HR的履歷表。

因為,要從中找到「以面試者的角度,認為需要在確認」的問題。並針對這些可能被問的問題,簡單準備一下解答。

技術專業性的問題,對於職場新鮮人,需要再次確認「真實性」,以免被人認為誇大能力。因為,職場新鮮人通常的確會「誇大」自己已經有的能力,例如其實只是在學校學過c語言,寫過幾個作業,通常就會把c語言當做「自己會的程式語言」,但是這和職場上的「會」可能有些差距。

而對於職場老鳥,只需要注意一下「曾經做過的事情」和「曾經有的貢獻」即可。

例如參與的研發團隊人數,自己扮演的角色等等。履歷表上的明顯缺陷,才是一定會被詢問的地方,例如某個工作僅做了6個月,或者在前一份工作到今天有3個月個空閒時間。

請根據表格,檢視履歷表,並且填入自己的模擬問題和可能的回答。


(4). 面試的時間地點交通方式與服裝。  [5分鐘]

聽起來很不可思議,不過確實有一定比例的人會過於緊張,太早或者太晚抵達。
也甚至有人壓根就忘記面試時間或地點。

前一天晚上應該確認一下面試時間或地點。

某些職位(業務單位等)可能對服裝有一定的考量,當然也得花一點點時間準備。


(5). 面試之後?


無論面試的好與壞,其結果一定要誠實的記錄在計畫書中,因為它可以作為自己下一次面試的參考。

結果只有分成兩種:錄取或者不錄取 - 無論原因為何。有些組織會考慮資深人員的面子問題,可能會用「目前組織人事凍結」等等軟性理由,不過對面試者來說,就只有錄取和不錄取兩種結果。

難以回答的問題:在這欄中,盡可能就自己的記憶,記下自己覺得難以回答的問題。如果是技術性問題,表示自己有技術需要加強。如果是其他問題,也應該記錄起來作為參考。

這個計劃書,應該自行根據面試的公司不同,做不同的調整。極簡計劃書僅是在你沒有更好的主意時,提供參考而已。


按此索取極簡計畫書


註一:英文能力確實是許多工作的加分條件,但前一天晚上,臨時抱佛腳準備英文自我介紹,對英文本來就不好的人其實一點用都沒有,而對本來英文能力就已經很好的人,也幫助不大。




11/14/2016

台灣博士生與大數據分析:如何評估對大數據分析的本職學能?



最近有個真實故事:



(為保護當事人,內容與細節均有所改變) 

台灣人F,目前就讀於某知名國立大學,已經是博士候選人。

最近為要爭取某一私立學校E的教職。在其履歷表上是以雲端計算大數據專家自稱。而E校的某系評會要求他面試15分鐘,用以評估他的能力。試教主題不限。

然而,F其實對大數據除了看過一些商管叢書之外,其實根本一竅不通。因此,他找了以前大學時候已經在業界工作的好友J,問了一些「技術問題」如下:

F:我聽說過spark,是不是大數據分析都用它啊?spark是不是個作業系統?

J:如果這是你的問題,那你壓根離spark太遠。後面就不要再談了。

F:哎喔,我覺得教學只是個演出啦,看表面而已。以你在業界打滾多年,就幫我個忙。couchbase是什麼?有什麼如果講出來會讓大家知道我很厲害的地方?

J:如果這真的是你的問題,你真的什麼都不懂啊,就算你去E校當教授,也是害了別人。

F:....



這個真實故事乍看之下太過駭人!但或許反映了學術與實務之間的鴻溝。

其實,台灣有許多學術界的人才,不但學術淵博,技術根底也厚。從數十年前的硬體產業蓬勃發展就可見一般。近幾年的軟體也是,許多教授幫業界「產出」能產生價值的知識性員工,並且也讓業界的知識持續推進。

然而,M型社會反映的層面,不指是一般在職場工作的人,在學術界中也越趨嚴重。

也有不少學術蟑螂。他們靠著極致的生存能力和夠厚的臉皮,穿梭在三流研討會,大企業策略部門,顧問性質演講,以及不在乎學生品質的大學院校中。

這些學術蟑螂做的事情,大概也不會真正傷害到誰,只是,也不會對任何人有好處。只要不是在「自己家裡」,一般人在路上看到蟑螂只會視而不見,也不太會去追打。

但是,如果是在自己家裡呢?

評估對大數據的本職學能,才能判斷來者是學術淵博的長者,還是費力在夾縫生存的蟑螂。如果是像E校一樣,原本的教授群並沒有這方面的背景,要如何在沒有足夠的知識情況下,判斷對方有沒有知識?這雖然有點難,但是,透過一些方式還是可以把誤判機會降低。



(1) 實際經歷探詢(情境實例面試法)


情境實例面試法很基本,但是事先有所準備。做法很簡單,只詢問「過去實際上」發生的事情,用以判斷被面試者現在的情況。而且絕對不詢問開放性問題!!

對於couchbase而言,就不會問「你對couchbase瞭解程度如何」或者「分散式資料庫你有哪方面研究」。因為這類型開放性問題,會浪費大家的時間。也會讓學術蟑螂有機會以混淆視聽的長篇大論,大打模糊仗來損耗面試者的判斷精力。


簡單問題像是:


* 請用1分鐘定義何謂nosql

* nosql的實作有很多,請舉一個你最熟悉的nosql平台工具,一個你實際最常用,最熟悉的就好(在此假設他回答couchbase)。

* 請問你實際接觸couchbase多久了?  (用判斷他最熟悉的工具有可能有多熟,如果少於6個月大概也等於是不太熟)

* 你利用couchbase為平台,撰寫並發表過哪篇論文?(學術界而言,沒有發表相關論文等於是沒有相關方面的研究)


稍微麻煩的問題像是:


* 你有沒有加入couchbase的任何相關的mail-list? (沒有加入mail list也沒關係,但表示其實只是單純的使用者,不會有太多深入的了解)

你利用couchbase為平台,撰寫並發表過哪篇論文中,所使用的研究資料量有多大?100G?10T?(資料量極小的nosql,並不代表不正確,只是代表不是大數據而已)

* 你用過哪些版本的couchbase(起碼要記得大版本編號吧)

* 你最近讀了哪一篇論文是以couchbase實作其研究?是大概什麼時候讀的,內容是什麼?


總之,事先準備好不能模稜兩可的問題,並且也定義好不能模稜兩可的期望回答。事先準備的問題也不需要太多,只要7-10提及可。這樣,比較不容易被蟑螂溜進來。並且,在準備的過程中,其實也會讓團隊(無論是學術還是技術團隊)對這方面的知識有基本的增長。


(2) 真實展示


簡單的說,就是請他拿一台電腦,展示一下他對大數據分析中最會「做」的事情。無論是撰寫程式碼,還是建立模型都可以。

真實展示其實很容易騙得過沒有相關知識的人。但是,如果事先已經提醒會有真實展示,可以簡單篩選掉連打開電腦都不敢的小蟑螂。

E校要求試教15分鐘,其實是真實展示的好方法。然而,盡可能展示「動手」而不僅只是「動口」。雖然君子動口不動手,但是蟑螂恐怕也是。


(3) 自我反省

當在一個地方看到蟑螂的時候,通常表示附近還有另外10隻蟑螂(也有人說是數百隻),只是沒看到而已。會有蟑螂來面試 - 無論是工作還是教職 - 是不是這組織已經有很多蟑螂。更重要的是,自己是不是其中一部分。

自我反省是極端困難的工作,對生活優越的自己,在心理上也不見得好過。但是,在陰暗狹小的地方求生存,總是比不上光明正大的貢獻自己的能力。

請謹記,「自信心」和「自我感覺良好」只有一線之隔。或許,透過實際經驗探詢,先自我檢查自己,才是去評估別人之前,真正自己應該做的事。












6/03/2016

剛畢業準備加入開發團隊 - 三個必要的Scrum突圍方式



真實故事 1:

某個陰暗的冬天早上,悠晃進辦公室的當下,看到二十多個人圍成一個大圓圈。既不可能是營火晚會團康,也不會是祈福默禱活動。好奇的在旁邊觀察一下,在圈圈邊上的某個中年男子開始要求大家在這個stand-up會議報告進度,並祈許新採用的Scrum方法可以讓軟體開發有良好的發展。

真實故事 2:

某一次專案研討會中,演講者詢問與會人士,Scrum估計工時的時候,每個人每個工作天應該是多少小時才合理?新鮮人多半回答6-8小時。某些資管企管碩士生,大概讀了許多書,回答:「4小時」。而一個在軟體外包廠商工作的專案經理回答:「10小時」。






Scrum是最近幾年很流行的Agile(敏捷)開發方法之一。它的概念照理說簡單易懂,很容易在現有的團隊中採用運作,或許是因為趕流行?許多資訊產業開始以採用Scrum方法為榮。而各類型顧問也都開始教授Scrum,也開始頒發各種結業證書甚至Scrum Master的執照。就在短短數年之內,在台灣業界Scrum似乎無所不在,成功案例一個比一個容易找到。

但是就像其他簡單易懂的事情一樣。Scrum說起來比做起來簡單。實際實施的時候需要克服慣性與人性,克服與目標之間的各種障礙。但也因此,把握住Scrum的精神,最能夠讓畢業的學生以正確的方式加入軟體開發團隊 - 即便這個團隊此時並未實施Scrum。

追本朔源後,總是可以看出:太陽底下始終沒有新鮮事。Scrum最早正式出現在1986年的一篇文章中(Scrum最早的文獻):透過個案的深入觀察,兩位日本學者對於有彈性,有效率的產品開發過程中發現一些相似的點:內建的不穩定性,自我組織的團段,互相重疊的開發流程,多面向學習,精微的控制,組織裡習得經驗的轉移..等等。文獻中的產品大部份都是硬體,例如汽車或者影印機。

乍看之下,和現在的軟體開發方法論似乎沒直接關係,但是,而後在經過其他學者的後續觀察歸納。這種以事實為基礎的彈性結構,遠比傳統官僚結構,更能在短時間達成高效率,甚且更容易產生創造性思考的價值。


理論歸理論,如何實踐理論在工作上才是重點。


近年來畢業的資訊科技背景的學生,的確在學校多少聽過Scrum,許多資管的學生甚至上了不少相關的課程。但就實務的角度,除非教授像這位荷蘭的老師(eduScrum)一樣,真心誠意的採用Scrum在課程的本身上,否則對剛畢業的碩士生或大學生而言,Scrum就只是個似乎看的到,卻無法做得到的事情。學界與業界間的藩籬,仍然巨大看似難以突破。

因此,提供以下有三個務實的方式,可以作為剛畢業的學生突破藩籬的參考。


1.理解事實



對於剛畢業的學生來說,理解事實,是基礎中的基礎,但也確是整個職業生涯需要不斷強化的地方。

以Scrum而言,每一個要做的事情 - 也許稱之為一項backlog - 在正在執行人的手上只有三種狀態:「還沒開始」,「進行中」,「已經完成」。

在每日stand-up,最常發生的是產生另一個狀態「快要完成」,也有可能混淆「已經完成」和「進行中」,更糟的是混淆「還沒開始」與「進行中」。

舉例來說,小馮在每日stand-up會議說:「訂單查詢功能已經差不多了,因為訂單查詢結果的排序雖然弄好了,可是分頁還有點問題,但是快要好了」。也許在學校裡和指導教授報告論文進度這種描述是可接受的。但是在Scrum的精神裡,這種描述不但沒有必要,而且會引發更多問題,因為,接下來大家就需要探究所謂快要好了,是還要多久?最簡單正確的描述應該是「訂單查詢功能正在進行中,原本預計2天完成,已經花了1天,接下來1天會繼續完成,目前估計和預估所需時間一樣是兩天」

重點並不在於咬文嚼字,而是在於對事情的清楚認知。當意識到一件事情沒有完成,在產品開發裡,終究是沒有完成。

每個人多少都有報喜不報憂的心態,也多少都希望別人對自己有好印象。因此,常會有自己也欺騙自己的時候。Scrum的每日Stand-up站立會議,僅說明三件事情:1. 從上次會議到現在完成了什麼 2. 在下次會議之前打算完成什麼 3.有遇到什麼困難。僅只三件事情而已,不多不少。

剛加入任何形式的開發團隊的人,能先確切的掌握和自己相關的事實,是看似簡單卻需要時間實現的基礎。

2.控制時間


既然Scrum是屬於Agile的方法論之一,當然符合最早的Agile 12項基本精神(參見這裡)。其中幾個精神和時間有莫大關係,例如,可用的軟體大重於詳細的文件,回應變化重於遵循計畫。而Scrum是最能達到的方式。

以團隊的角度,burndown chart(燃盡圖)是最能表達團隊目前能力,與專案時間預估的方式。他的做法極端簡單,請自行參考wiki。burndown chart展示了血淋淋的事實,可以透過過去一段時間的完成速度,有效預估專案可能的完成時間。由於這種做法去除了人類心態上的偏誤(例如:大家再努力一下,接下來某東西可能比較簡單...諸如此類),因此在沒有能力,沒有創意,沒有實務開發經驗的產品或專案經理的眼中,burndown chart只是拿來參考用,不能給長官看到。

以剛畢業的學生而言,最難的事情在於預估時間,特別是在比較長期複雜的任務。


解決方式為兩步驟:
  (I) 決定第一件要做的事情並且去做 
  (II) 額外增加研究項目(也額外增加時間)


(I) 決定第一件要做的事情並且去做  


對於很長的項目(backlog),表示他可能隱含數個子項目,而每個子項目可能也不小。例如,讓系統可以支援facebook帳號登入。這可能就要分成數個項目。當然對於新鮮人,分拆項目可能會遺漏,但是,有分拆比沒分拆好,有估計比沒估計好。有分拆之後,如果有漏列項目,也可以清楚知道有漏列。有估計之後,估計的錯誤以後還可以作為其他項目的參考。
而分拆之後,就直接進行第一件要做的事情!確實的腳踏實地去做!不用等,也不用試著把項目分拆的很精細,估計得很詳盡。因為萬事起頭難,當已經開始進行,就很容易知道之前想法是不是正確,還有沒有遺漏。關於項目的分拆(breakdown)可以參考這篇


(II) 額外增加研究項目


如果分拆之後,很明顯的仍然難以著手,就額外列出一個有限定時間的研究項目在最前面。換言之,花個固定的4到12小時進行學習與研究,將這件事情也列入整個開發流程中。時間必定要是有限的,畢竟絕大部份的產品開發,無論多困難,都還是在有限時間一定可以找到解決方案。

從另外一個角度而言,如果在有限時間無法找到合理的解決方式,對新鮮人而言或許你也並不適合做這個行業,可預見的未來裡,或許你會勤能補拙,試圖用更長的工作期間達到成效。但是這並沒有太大的意義。因為你並不拙,只是專長不在此,在有限的時間投入內,了解自己的專長不在此,或許更能幫助新鮮人找到最能讓自己發揮專長的地方。


3.確保產出


每個backlog表示一項「產出」。只要前兩個精神:理解事實跟控制時間,已經有效掌握,那麼這一項應該不會有太大意外。然而,對於剛畢業的學生來說,無論程式能力有多強,對於產出的完整性,常常會有誤解。不過這樣的誤解其實也很容易釐清。

一般軟體開發團隊,某人的某功能程式碼寫完之後,會經過以下階段:

1. 程式碼完成
2. Unit Test完成並通過
3. 簽入版本控制系統(commit)
4. 通過code review會議
5. 合併到產品主線
6. 通過自動化編譯建構
7. 通過自動化整合測試
8. 通過QA測試
9. 經過產品經理(Product Manager)確認

在Scrum一開始,便應該定義何謂backlog完成?
- 會是 1.程式碼完成就算完成?
- 還是 6. 通過自動化編譯建構 才算?
- 甚且是要等 9. 經過產品經理確認 才算?

有許多開發團隊,產出的本身是透過「默契」來達成。然而就新鮮人而言,一開始一定比較難取得「默契」。開口詢問,並且在三確定產出的「要件」是剛畢業的學生常忽略的要點。

參考閱讀-> 如何快速充實自己








12/30/2015

大學或研究所玩太久.(三個解決方式)






























有幾次面試新鮮人,發現有些學生自覺得在大學研究所時代"玩得太久",而對於即將投入就業市場有些自覺能力不足。

首先,如果照著學校教育做好該做的事情,就算沒有「玩很多」,老實說能力一樣是不足。想要在還未就業之前,就達到一個好企業的標準是有點難。當然在學時期,有很多事情,對就業有極大的幫助(至少就軟體以及網路產業而言),但是大概都不是台灣學校教授能教的。

這些事情像是:加入open source的開發工作,找暑期工讀,到外包市場接專案等等,都對自己有幫助。

但如果你已經來不及這麼做,就面臨畢業了。那麼除了延畢,隨遇而安看命運安排,拒絕面對事實...之外,其實有三個實質的作法可供參考。

對了,要記得,任何時候都為時不晚 只有覺得太晚的時候才太晚。



三個解決方式:



(1) 解決方法一:快速學習技術能力

想要投入資訊產業,不管擔任什麼角色,擁有技術能力永遠是對的。

找一個喜歡的目標,全面性的學習相關能力。不見得一定要花大錢上課,網路上現有的免費資源一定可以讓你在2-4週之內(最遲不超過4週)學會某種東西到一定程度。不管是Java programming還是HTML5,不管是Big data analysis還是photoshop應用。

如果對於快速學習技術能力有進入障礙,要記得這一定只是進入障礙而已。只要有興趣,願意專注,到目前為止還沒看過學不會的。真正問題在於有沒有專注的付出時間,如果確定資訊科技對你來說是完全沒興趣的,那也好,就此打住,改換跑道為時不晚。


(2) 解決方法二:尋找互蒙其利的機會,藉此重建履歷


很多時候,你需要的只是找到一個可讓你有學習機會的環境,這個環境可以促使你成長。如果不花錢,有什麼機會有這種環境呢?可以去看看upwork.com, guru.com, fiverr.com到上面以賠本的價格接專案來做,就會知道目前市場環境中缺乏什麼。


(3) 解決方法三: 打工與學習


這和解決方法二有什麼不同?打工是泛指先去做你不是很想做的事情,例如contractor。這除了可以讓你舒緩生活費用的問題,增加獨立性,也能獲取一些時間,讓你想一下自己有什麼選擇。

打工與學習,泛指各種範圍。在網路時代,只要知道怎麼找,資訊幾乎很容易取得。例如,如果你是26歲以下的女性,喜歡小孩想要學德文,au pair是一個看似誇張,但是合理的選項,參考這裡




創意沒有極限。不要只接受片面的資訊,即便是這裡也一樣:)




沈思:

1. 經濟學鼻祖書:國富論一開始就是在說明分工的重要。這也是就業市場上,各種職業產生的真正原因。能不能找到自己相對於別人的比較利益優勢?

2. 以長期而論,自己想要什麼很重要。但是短期來說,自己有什麼選擇才是關鍵。

3. 這三個解決方法,看起來都沒什麼創意,但是跟隨波逐流比起來,還有其他方法可選嗎?



12/28/2015

新鮮人如何提昇在組織中的價值:三個方法



請務必先看關於價值的這篇


稍微提醒,價值與績效的不同。

績效著重的是將評量標的量化,所以通常都會有明確的時間點、目標以及數字;而價值則看重在一個連續時間的累積。

比如說餐廳擦桌子 ,績效可能會訂成:在客人離開以後的五分鐘內要把桌子擦好,桌面必須全部擦過,不能有菜屑湯汁;而價值可能是:在客人離開後迅速把桌子擦乾淨,展現本餐廳專業乾淨的形象,並提供下一位客人舒適的用餐體驗。

所以你會發現,這兩個本質上其實是同一件事,只是觀看切入的角度不同;績效跟個人日常工作內容習習相關,而價值則是較與公司的整體特質相關。


(1) 了解組織需要的價值

身為一個新鮮人,通常前輩不會大費周章的跟你解釋組織需要的價值是什麼;而另一個悲傷的現實是:有些前輩自己也搞不懂組織要的價值是什麼?

所以這一部分通常必須要自己有意識的去了解。至於要怎麼能夠了解組織需要的價值?若完全沒有概念,可以參考以下方式

1. 參考資料:有些公司會寫出他們的價值,比如:IBMGoogleMicrosoft,或者公司內部訓練裡會提到,但大部份很可能只是打打高空,只能給一個很粗淺的概念。

2. 角色扮演:想像自己是老闆或是主管,想想要怎麼提升組織整體的價值?比如是處理財務的事務,精準的重要性一定會高於迅速;而若是救火隊或急診室,快速解決問題一定會比完美來得重要。想想客戶為什麼要買公司的產品,它對使用者最大的幫助是什麼?

3. 工作觀察:倘若組織不大,可以從日常工作中觀察下列事項:什麼樣的工作有比較高的優先權?什麼樣的錯事大家會很嚴厲的對待?什麼樣的錯事大家可以一笑置之?想想為什麼?

組織需要的價值是會隨著時間變動的,了解組織需要的價值可以幫助自己更快的進入狀況,甚至做得好的話可以提前走下一步路,而不是每天被績效的項目追著跑。



(2) 發揮長處避開缺點


了解組織所需要的價值,同時你也要了解自己(相關文章)長處與缺點。把自己的長處放在組織要的價值上,就可以達到相輔相成的效果。比如說你是一個很細心有耐心的人,那就可以主動接下財務、編輯、校稿之類的工作;你若擅長收集統整資訊,那麼研究、匯整、之類的工作就比較適合你;若你可以在資訊不夠充足的時候,在短的時間內做出決定,那麼也許可以嘗試第一線的工作。

然而如果反過來,急性子選到財務對帳的工作;要收集完資料整體評估才能下決定的人被要求馬上要下決定,這樣就算工作做完沒出事,工作起來也是很累的。

事先了解自己與工作的屬性,當有適合的工作出現時,主動接下來,還可以塑造出工作積極的加分效果。另外有時身為新鮮人不一定有辦法選擇工作,但知道手上的工作跟自己屬性不合時,就要特別小心,才不會不小心出包。




(3) 專注於產生價值

如上一點所說,你找到一個極能夠發揮自己長處的工作,你也很認真地做好了它,但結果沒有人在意這件事?!

知道組織要的價值所在,才不會走冤枉路。專注在幫組織產生價值的事情上,對組織以及自己才有意義。

回到一開始餐廳擦桌子的例子:假設你是那位服務生,在尖峰時刻忙到都要「搓草」了,眼看有一張桌子前一組客人已經離開過了四分鐘還沒清理,而下一組客人已經站在桌子旁,甚至有人已經等不及入座了,此時你會怎麼做?

1. 直接衝過去在一分鐘內把桌子清理完畢,好符合擦桌子的績效要求。

2. 過去客氣地跟客人道歉,不影響到客人的情況下,儘速把桌子清理完畢以後再請客人入座,可以的話清理的時候還跟客人寒喧兩句。

或是你覺得有更好的作法呢?歡迎跟我們分享





沈思:
了解組織所需要的價值,想辦法提升組織的價值,就等於提升自己在組織中的價值。如此一來,等同讓自己跟組織站在同一陣線上,而不是讓自己在組織中陷入一個你做工、我監督的對立狀態。


12/14/2015

資訊系所學生就業 (三件值得注意的小事)


除了少部分往學術界持續邁進的人之外,畢業生遲早要就業。

但就過去數年面試新鮮人的情況來說,大部分的學生並沒有對就業有所準備。這似乎是理所當然,本來就不可能有充分準備,不然就不叫新鮮人。

而業界常常把問題放在學校並沒有充分"教育"學生該有的知識與技能,使得學界與軟體業界脫節。

這似乎也不是台灣單獨的問題,早在數年前有人在美國抱怨此事。而且類似的抱怨一直都沒停過,例如這裡。新鮮人面臨的困難,很多也都是像這些文章中一樣,是認知上的問題,例如:絕大部份的人,可能一開始只是會被要求做個小螺絲釘的工作。這和他幻想中,技術高超的程式設計師經過不眠不休的努力,就可以達成驚人的成就,然後改變這個世界有很大的不同。這裡有相關的認知現實描述。

因此一開始得先適應周圍環境,而大部份的學生畢業的時候(不管是哪個學校畢業)都須要先認知自己知識(或者常識)不足以適應環境。越有這種認知,適應的可能越快。

所以,以下是快要畢業,打算就業前,或者選擇公司的時候,建議學生先做好準備。

(1) 暫時不要看BBS,新聞,facebook一段時間。


PTT大概是台灣獨有的特殊環境,它很有趣,有時候資訊很快速。可是很遺憾的是隨著資訊量越來越多,他的正確性越來越差。如果你不是極端理性,意志堅定,很容易受到不良資訊的影響。如果可以的話,至少為期一個月。至於台製新聞跟facebook就更不用說了。


(2) 確實知道自己在搜尋什麼(當你打算google一下?)。


剛加入的新鮮人,特別是畢業於2008年之後的,在遇到困難的時候,一定習慣google。而google也很少讓人失望,通常都能找到某種答案。

但要注意的是,答案也許正確,但是資訊過於片面。日子一久,就很難獲得全面的視野。例如,查詢"android AsyncTask",如果你想要看中文資料,前幾個結果都會是某些人的blog,當然不是說這些人寫的一定不對,而是blog(特別是中文)常常是片面資訊,就算他好心貼上正確參考資料,可能也不會有人耐心查詢。對於中文閱讀者來說,最好是google之後自己找看看哪一個才是官方正確資訊。歹事,目前沒有中文的官方資料,api最好的參考是-> http://developer.android.com/intl/zh-tw/reference/android/os/AsyncTask.html

(3) 謹慎選擇工作 但更要謹慎選擇主管。


在台灣能夠選擇的工作實在太多,台灣優良的企業也很多。第一份工作,當你有難以決定的情況時,請謹慎擇一個好主管。

面試的時候,不只是面試者選擇你,而且你也必須要選擇面試者。當然如果面試你的人,不是你的主管,那這個公司等於是跟公家機關沒啥兩樣,不如乾脆去考公務員。


如何在面試的時候知道是不是好主管?

一個好主管能夠清楚地知道自己負責組織的真實情況,而夠培育員工,能夠掌握現實,並且能夠處理困難
。因此由詢問以下問題來判斷這個主管是不是個好主管:

  (a) 請主管描述自己未來1-3個月工作內容。


     如果講的比較含糊,可以單刀直入的問清楚。如果發現永遠都問不清楚,很有可能你進來這個公司的時候,發現這個主管無法控制組織前進的方向,做的工作和面試談的完全不同。要注意的是,工作的確一定要有彈性,以及隨時應變市場變化,但是市場的變化,不會讓一個新鮮人無法確定未來1-3個月的工作。而如果要靠一個到職不滿新鮮人來"負責"各類型的變化,那這個公司風險也太大了。

  (b) 請主管說明,上一次有新鮮人進來的時候,他是如何培育新人。

     同樣也是要清楚了解,是單純指派資深員工指導,還是有培育時程規劃,如果有規劃,可否讓你看一下,參考一下。當然也有可能上一次有新鮮人來的時候是10年前的往事,那就要考慮這個組織的老化性。

  (c) 請主管說明,當你來加入團隊的時候,他最有可能擔心哪件事情你做不好。


     這是要清楚了解,主管經過面試,對你有沒有清楚的認知,如果認知差距過大,那可能大有問題。舉例來說,如果你非常精熟java,但是並不熟悉Linux上的開發環境,在一個完全Linux的開發環境的團隊裡,如果主管認為你學習linux一定沒有困難,可以三天搞定,要不就是他不認清現實,要不就是你在面試中已經證明自己是天才。




沉思:


* 網路上的資訊很多,事實上無用的瑣碎的資訊,遠比切實的資訊來的多太多!短時間切斷資訊聯繫,對整理思緒有幫助嗎?






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/16/2015

創新公司軟體專案時程管理 (三個基本概念)




絕大部份創新公司,其實在衡量任何事情的時候,其所消耗的標準,並不是真正的金錢,而是創業夥伴們的時間。

每個人一天只有24小時,雖然今年是2015了,但是你還是不可能有時光車讓你爭取更多的時間。因此,專案的時程管理變得很重要。

時間管理的技巧方法很多,如果沒有概念可以先參考這裡。但最好先建立一些基本的觀念:

(1) 觀念一:每個人的時間效率有天壤之別


特別是技術類型公司,單指寫程式的效率來說,最好的程式設計師,和最差的有很大的差距。有些研究說是10倍,有些說是上百倍。

不只是程式設計,其他工作類型也一樣。更有甚者,品質的產出也被證實和速度沒有很大的關係。換言之,又快又好是絕對有可能的。

(2) 觀念二:每個人時間的比較利益不同,因此可以分工


那麼,這樣來說我們雇用三個強人不就搞定一切事情了?首先你不可能有機會在一開始找到三個強人,因為強人早就已經有非常好的工作。就算你運氣好到不行,真的雇用了三個強人,有趣的工作可能只有一個,也不可能三個人做同一件事情。

所以分工變得很重要。比較利益法則(參見wiki)解釋了為什麼多人合作有可能1+1>2。只要大家負責的部份,是相對其他人比較專長的部份。

不過分工是否得當,會有相當大的差距。在超大型組織裡面,以現代科技發展的程度而言,分工會自然發現,即便沒有效率也會發生,例如,任何開發中國家,經濟發展的時候,投入初級產業(農林漁牧)的人自然就會慢慢變少,換言之,只要少數人的努力就可以提供食物給其他人,而其他人就可以去做更多讓生活更愉快的事情。

但是在小型組織,例如只有5個人的startup,就必須要時常檢視這樣的分工是否合理,能否達到綜效。


(3) 觀念三:中短期的專案,其完成時間早就已經固定

一個為期1-5個月的專案,當目標和資源已經定義出來的時候,其實完成的時間早就已經被上帝決定好了。問題在於,創業夥伴們,能不能事先看出來。如果一開始對時間的估計有誤,接下來新的專案就要把失誤考慮進去。

對,沒錯這就是Agile/Scrum的基本要素,無論什麼理由,當你打算完成的事情決定好產出的目標之後,時間早就已經被決定,你能夠做的就只是盡自己的能力,縮短預測的失誤,而經過幾次中短期專案,理論上,創業夥伴們的能力和資源調配方式,已經讓大家可以準確預測完成的時間。



越是能了解時間的控制,就越不被時間控制。



沉思:


考慮以下說明:時間基本觀念很重要,因為創新公司,事情完成度是以時間來衡量,而不是以事情的進展來衡量。為什麼呢?


11/04/2015

email服務的市場:三個其他選項。




對很多台灣學生而言,email似乎不再是有趣的地方。因為email成為生活中一個簡單的存在。一旦考慮需要有自己的email而不用學校的email,幾乎就直接使用gmail。在組織過去三年的面試投遞履歷表中,幾乎沒看過用其他email服務的。

這點其實很可惜,因為這個世界上曾經存在很多有趣的email服務。直到今天還是。

email是Internet最早的應用之一。但其實在還沒有Internet(TCP/IP)的時候,email早就以各種不同的hosting形式,運行在各種早期商業電腦上。當然,主要是以商務應用為主。

在還沒有gmail之前,email通常是由某組織提供,免費的email服務雖然存在(例如yahoo, hotmail)但是限制很多,更有甚者,大部分的人似乎仍然傾向pops/smtp的收信方式,把email留在自己的硬碟裡面。

email服務在gmail推出之後成為一個轉淚點,在剛推出的時候提供1G的免費空間,現在一直在增大中,後來也導致yahoo乾脆推出1T免費空間的email。

現在,如同各種所謂cloud服務一樣,越來越多人不再將email存在自己的硬碟。而也讓email市場突然之間開闊了起來,企業組織(特別是中小型)再也不需要自己管理email server。

如果資訊產業的學生,在畢業前如果只知道自己學校的email和gmail,是非常可惜的。再此簡單的介紹三個其他較為不常見的選項(yahoo, hotmail在台灣比較常見就不多說了):

(1) yandex.com


最近似乎也有幾篇文章在介紹yandex。它等同是俄羅斯的百度。yandex是斯拉夫語系最大的搜尋引擎,也提供了雲端儲存以及email服務。它的免費email空間有10G而且似乎在增大中。從台灣連線竟然沒有想像中的慢,所以拿來作為自動備份是不錯的選項。

yandex似乎也很在意介面的顏色跟背景,所以三不五時會幫你換一個背景照片,大部分的照片是來自俄羅斯的都市。

如果使用它的email服務,大概就會順便看一下它的雲端儲存(disk yandex)。其實和googledoc很像,只是沒辦法線上編輯文件。不過,某些不知名的原因,yandex竟然強調可以線上修圖!
yandex線上修圖


順道一提,單用javascript就做到線上,並且還能支援相當不錯的離線編輯的,截至今天(Nov/2015)為止只有googledoc。


(2) mail.com

這公司存在市場很久了,不過在台灣也鮮少聽到人在用。光是mail.com這個網址應該就值很多錢,所以可以想見它對email的專注程度。

mail.com有很多創意,例如它應該是最早推出無限制的免費email空間。然而,只有收費版本,才會讓你由pop3/smtp收信,並且才會拿掉廣告。它的收費版本一年600元台幣。

同樣的mail.com也提供雲端儲存服務,免費版本只有2G的空間,不過可以預見會逐漸擴大。

其實,個人最喜歡mail.com的是可以選擇很多不同的domain name。而且是免費的。

舉例來說,如果你的名字是edward,但早就被人註冊走了,所以你不得不用edward212@mail.com註冊。可是,在你註冊成功之後,mail.com有上百個不同的網址(domain name)可以讓你額外附加,例如asia.com, usa.com, consultant.com等等,並且在附加的過程,你可以嘗試看看edward是不是還沒有人用。由於domain選項超級多,所以讓你選到喜歡的名字的機會極大。

個人最喜歡的是post.com,專門用來撰寫文章以及投稿。

如果是技術宅,不妨試試null.net?自開診所的醫生也可以嘗試看看dr.com?總之,拜託不要再用ms93.hinet.net來當自己的email了。

(3) zoho.com

從名字大概可以猜得出來是給soho族使用。

沒錯,他專注於提供中小企業服務。申請好帳號之後,基本上不只有email可以使用,另外還有類似googledoc的整套服務。他的線上編輯功能,是大概googledoc以外最完整的。另外還有一整套CRM服務,以及雲端檔案儲存空間。

他的免費版本的email空間是5G,另加5G雲端檔案儲存。相較於其他免費的服務是很小。不過大部分的人會用zoho通常是為了購買網址之後,將網址的mail由zoho來管理。舉例來說,如果你註冊了shop.com,就可以透過dns設定,把mail轉交給zoho的帳號,所以你就可以在zoho使用ceo@shop.com來收你的email。免費的版本只能處理10個email帳號。收費版本就無此限制。

個人最喜歡的就是zoho.com對於domain name的支援。因為通常這樣的dns設定在其他地方都是要收費的(例如googleapp)。如果你考慮自己創業,zoho可能是市面上最好的選擇之一。目前最大的競爭對手應該是bitrix24(yandex的分支),不過zoho還是佔具比較大的市場。


網路免費服務有很多,對於一般使用者來說,快速找到一個簡單好用,對自己有利的大概就夠了。但是對於資訊產業的學生而言,多嘗試一些新事物,才不會侷限自己的思考。




沉思:


* 這感覺上好像單純在批評,但是考慮到交通部仍然是中華電信最大的股東(參考這裡) 也就是說,中華電信資產等於是全民的資產,所以還是得來批評一下:

   (1) 作為一個ISP,感覺上提供email是某種為民服務,但現在到底還有多少人還在用中華電信的ms14.hinet.net的email?hinet.net前面的msXX這個數字,在今天作為負載平衡根本沒有任何意義。只是浪費大家打字時間。

   (2) 作為商用email服務,現行的價格實在很荒謬,大概只有不上網搜尋資訊的人,才會使用每個月至少1500台幣的有限email服務。這個服務不但貴的嚇人,可儲存量也驚人的少,竟然少到和bitrix24.com免費版本差不多。



10/26/2015

務實專案管理(FLA)的三個重點...(從team leader的角度)

軟體工程與專案管理的方法論以及參考書籍非常多,無論是最傳統的PMP,到近幾年強調的Agile, Extreme programming,以及創新公司最常用的Scrum,這些方法都不外乎希望能盡可能圓滿達成專案目標。

而越後面產生的方法論,似乎都盡量想要化繁為簡,貼近事實,以便彈性的因應改變。例如Scrum就是將需求變更控制在sprint開始或結束,並且讓每個短暫的sprint(3-5週)可以專心於現在的計劃,改變於是乎就受到控制。

專案經理的角色和技術領導相輔相成,只是目的截然不同。專案經理最終的目的其實是”管理利害關係人的期望” (Manage stakeholder expectations)。實務上,這個目的甚至比專案在時間成本內達成來的重要。

技術領導雖然不是專案經理,但實務上,技術領導的小團隊是專案執行的最適切單位,因而技術團隊領導者也是反映真實狀況的適切人選。

技術領導當然不見得一定需要知道專案管理的細節,然而在軟體專案的執行中,技術領導者瞭解得越多,越能讓專案有機會成功。瞭解得越少,越容易受困於專案管理的本身。

(參考案例一)

專案經理(PM)在專案一開始就召集所有分析師(兼為小組長)進行傳統的WBS製作,完成了一份洋洋灑灑專案管理文件。在缺乏專案管理的知識下,三個月後在專案中期,某小組長發現有很多事情其實未列在WBS中,他就很掙扎要照常繼續回報列出來的項目?還是要重新修改WBS?

(1) 萬事起頭難:起初,專案計劃


作計劃這件事很重要,相關的名言也很多:
  • 廟算者勝,得算多也;未戰而廟算不勝者,得算少也;多算勝,少算不勝,而況於無算乎。
  • A goal without a plan is just a wish
  • Fail to plan, plan to fail
  • Plans are of little importance, but planning is essential.
  • You can't predict the future, but you can plan for it
  • The general who loses a battle makes but few calculations beforehand
  • Planning is everything. Plans are nothing!


任何專案管理方法論都會涵蓋”做計畫”(planning)這件事情,原因也很簡單因為這實在太重要。可是也太容易被忽略誤解或輕視

無論任務範圍大小,多寡,範圍,一個適切的”文字化計劃”對於軟體專案絕對重要!特別是有任務是整個團隊曾經執行過類似的,”原則上”只要根據以前的經驗”照著作”就可以達成,這種特別容易被資深員工忽略的任務特別容易出錯,更何況”照著作”等於是打算重覆過去的經驗,而不是打一開始就意圖要精進。

忽略:"現在時間很急迫,不趕快做來不急,就不先搞計劃了"

越是急迫的事情越不能出錯,減少出錯的最基本方式就是先行計劃。更重要的是簡單的思考整件事情,並且寫下來,適事情大小,不但不花太多時間,而且最能降低的風險以及未來避免浪費時間來修正錯誤。

誤解:"作計劃要花很多時間"

一個複雜的任務絕對需要花時間計劃。但是一個簡單的任務,可能只需要花15分鐘把心裡想做的事情簡單地寫下來。這個過程就可能會讓團隊避免發生前述案例中無聊的錯誤和不必要的問題。

輕視:"作計劃是給老闆看的,反正事情都不是照計劃進行,計劃對我們沒有用"

這種想法跟不打算作計劃完全一樣。等同於靠運氣跟個人當時心情來決定最後任務的好壞。

做計畫並非僵化,計劃的本身形式也不拘,一個簡單的心智圖(mindmap)就可以整理思緒 揭露許多未來的可能性。

下圖是本文撰寫的第一個計畫,可以和最後的結果比較看看,雖然粗糙,而且之後順序以及結構也有很大的改變,但是計劃的本身卻是很簡單可以引領思考。


 

(參考案例二):

有個售前支援團隊,與各國業務長久一起合作習慣了,常常四處進行軟體產品展示任務。有一天得到通知要去東南亞某國家進行安裝測試,大家都以為當地業務會大致把前置作業搞定,因此就迅速訂機票出發。到現場才發現,客戶負責的技術人員當天根本就沒來上班!整個作業只好延宕一天。



任務分配

團隊合作必然涵蓋工作分配。在資訊科技領域中,分配的方式也有很多種。而對於一個團隊的技術領導者而言。當已經對自己以及團隊的能力有基礎認知之後,有效的工作分配是一開始就要先計劃的事情之一。

技術領導者必然是已經瞭解自己也大致瞭解團隊能力,同時也瞭解任務內容之後,才能進行計畫任務分配。任務分配可以是團隊所有人一起討論,也可以技術領導者自行決定,但無論如何一定要先考慮團隊成員能力彼此之間的比較利益。

比較利益法則最早出現在經濟學鼻祖大作國富論的第一章(亞當斯密,1776)。衍生的,基本概念很簡單,只要有效分配,任何情況下都可以達到1+1>2的效果,即便專案成員某些人明顯地比其他人能力還差。

(2) 專案專案執行中面臨的問題

專案執行面臨的問題 - 人的偏誤


人類判斷事情會先採用快速直覺,這乃是上百萬年來的演化,無論是視覺上還是意識上皆是如此。以下簡單列出常見的人類認知偏誤:


歸因謬誤(Attribution Biases): 

解釋別人的事情時,會傾向別人的內在因素,解釋自己的事情時,會傾向外在因素。例如:會議有別人遲到,心裡會想這是這個人紀律問題,沒志力起床。自己遲到,會解釋是因為交通問題,昨天事情太多太晚睡。


錨定效應(Anchoring):

有參考點或第一次接受的訊息時,會過度偏重參考點。例如某地區最近賣出的房價是一坪100萬,則臨近的房子無論好壞,預售價格為一坪50萬時就會被認為"很便宜",即便一坪50萬對絕大部分的受薪階級來說還是貴得要命。


沈沒成本(Sunk Cost):

過去已經付出去的,不管未來的選項如何,其成本都不會變。也就是說不同的選項無關過去的成本,只關係未來。例如當已經花錢買了張電影票,但是臨時聽說同一時間有某明星簽名活動。這時候有兩個選項,一個是繼續看電影,另一個是去參加喜歡的明星的簽名活動。無論是哪個選項,其該電影院票價成本都是存在,因為錢已經花下去。換言之,要考慮的只是,現在看這個電影是不是比得到喜歡明星的簽名重要,而不是考慮如果去參加簽名活動會損失電影票的錢。


過度自信(Over confidence):

人類對於評估自己的能力時都會過度自信。例如,在一個50個人班級裡面,所有人自我評估考試成績的"名次平均"在技術上說應該是25,但是通常自評估的平均值都會遠小於25。也就是大部分的人都會高估自己的能力。


羊群效應(Herding Effect):

在團體中,個別成員會不自覺跟著團體中心行動。例如,股票市場中,市場最常發生一直買或者一直賣的情況。而如果是在競爭市場,有特別突出的公司時,其他公司會學習特別突出的公司的行動。




專案執行面臨的問題 - 進度(時間進程 vs 距離進程)

在專案或者任務執行之中,技術領導者多少需要有效評估跟瞭解現況。而目前進度是最重要的"現況"。在比較嚴謹的專案管理領域裡面,有許多評量進展的指標,例如已投入成本和預計完成所需的成本比例(一般PMP常用方式)然而,在資訊科技領域中,比較適當的衡量應該還是以時間進度能準確反應事實。

所謂時間進度指的是,還有多少時間可以達到目的。舉例來說假設某人要去日本玩,從家裡到機場需要一小時,而飛行時間為兩小時,抵達機場之後到旅館需要一小時。因此當我們詢問他的進度時,當他的飛機抵達日本的當下,他會回報進度完成75%,尚有25%未完成。

然而,如果是距離進程,也就是以還有多少距離可抵達就有很大的不同。舉例來說,家裡到機場僅有50km,飛機實際飛行距離為1000km,機場到旅館假設有50km,所以當他的飛機抵達日本的當下,他會回報進度完成96%!只有2%未完成。





單以事實來看,這兩者都是事實,可是呈現於資訊科技控制進度與瞭解現況來說,恐怕是以時間進度比較能夠掌握。畢竟,當一個團隊成員說有件事情只剩5%完成,而且你知道他在這事情上做了3小時的時候,在沒特別問清楚的情況下,你大概直覺上認為只需要幾分鐘完成,而非剩下的5%距離,需要在1小時完成。


不過專案進程的事實搜集,有太多太多慘痛的例子是在混用時間進程和距離進程的估計。事實上,由於人類天生的偏誤,在距離很短的時候,會不自覺採用距離進程來回報狀態。這時候技術領導有意識的取得"時間事實"才最重要。

專案執行面臨的問題 - 技術問題

技術問題層出不窮,不過大部份專案的技術問題,通常可以解決。然而,技術問題通常也很難概化討論之,他和專案的特性以及屬性有關。

不過就軟體專案而言,有個兩個看似有些衝突的基本概念一定要知道:


(1) 每個人的技術能力與技術方面的產出差距可以達到10倍以上。而每個組織的能力與技術產出,也有近十倍以上的差距 


(2) Scrum的方法論裡面,假定短時間每個人的績效不會成長,也不會改變

我們以後會再來討論這兩點。不過建議先對agile, scrum有初步研究。


(3) 專案的結束:好的結尾比好的開始更難

第三個重點,專案的結束。很多大公司,無疾而終的專案很多,軟體專案通常無論如何都還是會結束,只是結束的方式好不好而已。

礙於篇幅,我們在日後的文章再來討論專案的結束


沈思:

* 為什麼這次有些項目會在日後再討論,沒辦法先提示一些重點嗎?

* 對於務實的專案管理方式的諮詢服務,請與我們聯繫


10/23/2015

職業生涯的突破(基於務實的三步驟)



大部分技術人員,除了運氣很好之外,工作了幾年之後,幾乎都一定會遇到某個的瓶頸。


瓶頸可能是:無聊,無法升遷,無法勝任,人際關係,受外界誘惑,想要創業,太忙碌沒有自己的生活。

人總是有太多可以不滿的地方。但是光是在嘴巴抱怨,在心理咬牙,其實一點也沒用。

若真覺得有瓶頸,總是要有方式來突破。而我可以保證,任何技術專長的人,一定可以靠以下三個作法找出突破點。

(1) 了解事實


第一步驟,先取得自己的事實。這裡的事實是關於你的背景,你現在的工作的所有事實。不多不少的事實。Nothing more。

你要先了解事實,而不是你的想法。因為事實短時間不會改變,而想法常常變來變去。

例如:你是研究所畢業,現在約有800K存款,你現在月薪70K是事實,每天9am上班7pm下班是事實,你在公司目前做的事情是事實,這個公司目前年均毛利約15%,你過去6個月不曾去其他公司面試是事實,你有4個工作經驗是事實,你最後待的公司已經做了2年是事實,你沒有管理經驗是事實,你最後一次英文toeic成績是550分是事實,你老闆最後一次給你考績為B是事實,你的團隊有8個人是事實,你是其中第3資深也是事實,創業失敗率很高是事實。...諸如此類請列出重要的事實。

你想要東西和你的想法,不是不重要,而是你「暫且」不考慮。這點很難,但是很重要。記住,你的想法很重要,但是現在暫時先不要理會你自己的想法


你的想法,例如:外面有更多好機會,每天上班很累,這公司很爛,薪水太少,履歷表足夠讓你找更好的工作,你在團隊里很重要但是老闆不重視,其實英文也變好了阿但是沒出差機會,對公司忠誠度很高,創業好像很不錯。...諸如此類是你的想法,有可能是事實,但也不見得是事實。


(2) 取得選擇權利


當你真正了解事實,才能執行第二步驟。

第二步驟是根據這些事實,取得選擇權,在這過程中還可以蒐集更多事實。例如,你可以去一些幾個公司面試,有些會給你offer,有些會拒絕你。這時候你的事實清單就可以多了一些可以的選項。

例如:
1. A公司你要求75K薪資,但是他拒絕給你offer。而對B公司,你提出71K的薪資,並取得offer。
2. 你跟天使基金談好可以取得500K初期投資。但是這個初期投資需要辭職才行。
3. 你撰寫了新的計畫,打算跟老闆提出來。
4. 如果不工作,你會去歐洲玩一個月把存款花光。

總之,以這個階段你有五個選擇,第五個選擇就是現在的狀態,什麼都不做。


(3) 選擇並且行動

第三步驟,就可以加入你個人的想法了,這五個選擇,是根據事實以及背景列出來的。而不根據你的幻想或者心情。無論如何,每一段時間(例如6個月)一定要做出現在有的選擇項目裡面的行動。

對!一定非動不可,即便是選項五,現在狀態什麼都不做也是一個你選擇的行為。做這樣的選擇,讓你在事實上有充分認知,如此心態上的結果就會截然不同,至少你一定會減少無謂的抱怨,而在未來的一段時間,將心思投住在你的選擇上。







參考



10/22/2015

技術領導者team leader 提升能力的三個方向



作為技術領導者,當然在技術力以及領導力上都能必須足以帶領團隊。實際上,能力只有下限沒有上限。因此有意識的提升自我能力必然是作為技術領導者的重要條件。

技術領導者(基本定義請參考這裡)自我訓練,提升能力的三個主要方向參考如下:

(1) 提升領導力


領導能力,乃是帶領組織的能力,與管理不同的是領導力主要產生於個人的能力以及影響力而非自己的組織地位。簡單地說,領導是讓團體一起朝著正確的方向,作出正確的事情,達到預定的成效。領導能力是抽象而廣泛的,但是產生的結果卻是清楚可見的事實。例如:溝通能力是領導者須具備的能力的一環,在某次開會之後,當詢問5個與會人員,開會的結論如果有5種不同的說法,那顯而易見的這次會議的領導者有很大的問題。

對於技術領導者而言,這樣的領導力是可以透過自我訓練以及培養不斷地提升。然而,更重要的是技術能力以及領導能力需要同時,有意識的自我提升,偏頗與缺一不可。

外商常用的360度回餽(http://en.wikipedia.org/wiki/360-degree_feedback) 其中一項常見問題就是”利用自己的影響力,而非職位來協調同仁完成任務“,誠實的根據過去自己的經驗,來回答這些衍生問題可以簡單探知自己的領導力。

誠實瞭解自己是提升的第一步。接下來根據自己缺乏的事情,自我提出學習計劃。以上看起來簡單,但是做起來極其困難。過分自信(參見偏誤)是人的主要認知偏誤之一,且人類傾向繼續做自己專長的事情,要移出舒適圈難上加難。


有幾個簡單的方式可以參考:

  • 閱讀
不僅只是閱讀企管類書籍,而是廣泛而長期的閱讀各類書籍。廣泛而有系統的閱讀,會讓思考全面,而養成長期閱讀習慣大部份好領導者的少數共同特質。

如果對閱讀沒有長期習慣的,建議先讀"How to read a book"。

關於資訊科技的市場以及分工,不免得先對經濟學有所瞭解,可以先看鼻祖書The Wealth of Nations(國富論)然後市面上有很多科普叢書,都能引人入勝。例如蘋果橘子經濟學。

小說類型可以考慮作者已經死很久的,而且篇幅不太大的開始,例如聊齋誌異,雙城記,基督山恩仇錄。近期可能還是稍有名氣作家,例如金庸武俠,村上春樹的小說系列,作為開始比較容易。

至於混合歷史知識和想像的書籍,像是丈量世界,哥倫布行動,萬曆十五年都是開拓視野的好開始。

當然在此沒有列出資訊科技書(例如Design Pattern)倒不是因為不重要,而是因為在此假設技術領導者已經有這方面的學習習慣。自然無需贅述。

閱讀清單(非技術類型):
- 雙城記
- 基督山恩仇錄
- 拷貝一瞬間
- 蘋果橘子經濟學
- 黑天鵝效應
- How To Read a Book
- 國富論 (The Wealth of Nations)
- 丈量世界
- 哥倫布行動
- 萬曆十五年
- 水滸傳
- 不花錢讀名校MBA
- 企業巫醫
- 孫子兵法
- 科技奴隸

(這個清單跟技術領導力沒有直接關係,但是從旁的間接關係不少,重點是要有自己的閱讀清單)


  • 記錄:

        記錄或者筆記,對於工作的執行以及回顧來說很有價值。記錄工作以及重要事項不見得會花很多時間。但是對於追溯自己的思緒有諸多好處。許多管理叢書強調筆記的各類祕技,但總歸一句話,有用的筆記自然有用,沒用的筆記就不會有用。對於強調隨時存取且無限量的"外部記憶體需求"的技術狂熱者而言,雲端服務似乎是某種終極筆記方式。

但請注意:首先,書寫的手感是無法用打字取代;其二,對長期保存而言,目前資訊科技尚未有可確保穿越時間的做法  (例如,1995年如果你有一張3.5吋軟碟片,和一本手寫的日記,在2015年的現在,哪一個可以正確無誤看到其內容?)

  • 練習:
領導能力跟很多可以學習的東西一樣,需要勤加練習。參加領導訓練課程就跟打籃球一樣,看一萬場NBA球賽,不如下場打一次。但是,要練習領導能力並沒有練習寫程式這麼容易。以下做法提供技術領導者參考:

首先,只要在團隊中,就有機會主動帶領"事情的發生",事情無論大小,只要還沒發生就值得主動組織人力執行。

其次,回顧過去的成功與失敗經驗,也是練習的好方式。要注意的是因為自己是自己的練習對象。


(2) 提升技術力

資訊科技的技術能力指的是對程式網路演算法作業系統協定軟體工具等等的瞭解以及應用能力。對於資訊科技瞭解以及能運用的範圍越深越廣,大致表示技術能力越好。

軟體工程師要評估自己最簡單的方式是先由程式語言能力開始。如果你自認為熟悉java那就從上網找SCJP相關測驗,在線上誠實的瞭解自己到底對java了。非程式設計師類型的資訊科技工作,例如DBA,一定也有相關的事實評估方式。自我評估重點在于自我誠實的瞭解。

只要能認清事實,技術能力培養並不困難。有簡短目標的實際練習,就是個簡單易懂的式。例如,雖然很熟悉c與java,但是從來沒接觸過python。想要學習python就應該簡單地定出一些目標。最後一點,如果技術能力的提升目前是個困難,那必須認真思考自己目前是不是能夠擔任技術領導者。


(3) 其他能力:英文能力.專案管理

由於大部分資訊科技資訊,以英文形式為最大量。因此英文能力絕對是團隊能力評估的一環。同樣的英文能力評估也不能靠猜測跟想像,現在有太多遊學留學生,在美國一整年但英文能力卻沒有如同想像中的好。以企業而言,目前最簡單的方式仍然是以TOEIC的實際分數為準。就資訊科技商用領域,TOEIC 785分應該是所謂”無英文溝通專業問題”的最低標。

技術領導team leader在很多時候,必然要了解軟體專案進行的各種細節。實務上Scrum也假設Scrum Master就是技術領導者。

不過在這邊因篇幅關係,先省略專案管理部分,待日後的文章討論。(軟體專案管理相關文章請看此




沈思:

1. 這樣看來當技術領導好像很困難?

2. 專案管理的技術領導要怎麼做?(參考資料




10/07/2015

資訊系所學生的國際觀- 三個觀察




過去幾年來交換學生越來越盛行,基本上跟大學一樣,沒有交換不了的,只有想不想交換這回事。然而,資訊系所學生的國際觀,整體來說似乎沒有跟著地球扁平化,世界縮小話而改變太多,相反地類似美國種族融而不合的情況似乎更多。

(1):想要國際化


隨便問幾個學生,認不認為國際化很重要,想不想加入跨國公司取得國際化工作經驗。幾乎沒有一個學生說不。

然而,除了少數加入open source計畫的學生之外,很少有參與國際軟體開發活動,除了交換學生之外,也很少有學生能想到"長期"培育自己國際觀的方式。


(2):片面資訊


最最常見的片面資訊在於:

外國人=美國人 ......(外國人說話都很直接,老實說恐怕只有美國說話很直接)

國際觀 = 美國觀 ......(International View = American View)

進入大公司 = 有很多"國際化"機會..... (這部份是事實,但某些小公司更多)

學生要有國際觀 = 要留學 要交換學生 要遊學 ......(部分是事實,但也看過太多留學交換的時候都跟華人混在一起,那老實說也沒特別意義)

google = 搜尋全世界....(起碼要扣掉中國和斯拉夫語系國家,這樣就少17億人耶)


(3):等著別人來幫忙


在面試的時候,常常會被問"公司是否能提供訓練"。組織根據需要當然會提供訓練,一個好企業也絕對不會吝嗇於訓練費用。

但更重要的問題在於,你除了上學之外,花了多少時間在訓練自己。

同樣的問題在國際化視野上也是,除了讓學校老師幫忙,你自己曾經為了想要"國際化的視野"為自己做了什麼事情?





沉思項目:

在不使用google/yahoo的情況下,你上網查詢資料會是要怎麼開始?
你是不是能找到在東歐常用的web mail (除了gmail, yahoo之外)?
你是不能推測這個世界人口的各大洲比率大概為何?
你是不是能直覺猜測斯里藍卡人均收入?
除了BBC/CNN 的強烈報導之外,你覺得最近幾個月(2015年秋天)為什麼梅克爾會歡迎難民。

9/04/2015

速成的片段知識的三大危害




連本文同在內,網路上太多可獲取知識,這些知識有時候很片面,零碎而且片段。它在很多時候可以快速解決問題,有時候快速幫助你的生活(例如要找附近餐廳)。但是對於想要獲得完整的知識與歷練,片段的知識有很多危害。特別是快速地用google搜尋某個東西。

相關的研究早在2011年就有了->參考這裡

(1) 喪失組織能力

某些剛畢業的學生(特別是近五六年)明顯地不太能計畫以及組織事務。年輕的人一定有很多創意,但是創意要能夠實踐才有意義。組織事務,計畫事情的發展,了解問題的本質,這些都是優秀人才的必要價值。有了這些價值,才更能在創意上發揮。

當僅僅使用search engine來獲得快速解答的時候,常會喪失推理性,因果關係,組織事情等等必要推演狀態的能力。

因為,現在search engine解答方式是:

1. 有問題 -
2. 搜尋關鍵字
3. 點選前幾個結果看看

由於現在search engine的能力,讓前幾個結果能有"看似滿意的解答"的機率實在太高。

然而,以前在沒有search engine時的問題的解答方式是:

1. 有問題
2. 想一下什麼方案最有可能找到答案(問誰?,看什麼書?,自己嘗試什麼事情)
3. 選擇並執行方案

由於個人判斷力都有限,所以執行方案常有很大的機會找不到結果,然後就會再重新嘗試。這些失敗的過程並不單純浪費時間,每次的經驗會讓知識在腦中"內化"。這是search engine無法幫助的地方。

(2) 喪失記憶力

單純依賴google來獲得任何些許記憶的情況越來越嚴重,可想而知過於依賴會產生副作用。很多文章都已經闡明了這點->參考這裏

在這裡強調一下,並不是反對search engine,它的確是幫助人們進化的好工具,但是人們要能夠駕馭工具,而非被工具綑綁。

(3) 減低創意的靈光一閃

在腦袋裡要有靈光一閃,並不是這麼簡單,通常表示腦中有足夠的經驗,記憶,感受,知識,而在某種情況下匯流。換言之,如果完全依賴外部記憶體(google),單靠到處搜尋是絕對很難獲取創意的靈感。更有甚者,即便偶有靈感,也會缺乏實踐的能力。




沈思


(a) 至少請先看這本書 Technopoly: The Surrender of Culture to Technology by Neil Postman 
Link: http://amzn.com/0679745408

他的立論完整,說明清楚,絕對不是片面知識:)

(b) 但是搜尋引擎(search engine, google)還是有很多好處,思考一下怎麼樣利用才是正確。

(c) 參考研究