2011年11月29日 星期二

第一個問題之後

上一篇文章有許多人問我:『那第一個問題之後是什麼?』

我想這值得來寫一篇好好回答。

當一間公司找得是開發者(Developer)的時候,那就意味著公司的有效產出建立在發展出新的供給方式來滿足需求上。也就是說,這間公司應該要有尚未實現Business Model正在追尋(可預見的穩定獲利)。

在這樣的情境下,你當然就會問:
0. 貴公司的客戶目前都是什麼樣的人?
1. 貴公司的產品(或服務)對這些人的價值是什麼?
2. 對於產品的價值到價格的轉換過程目前有什麼想法?

再深入一點,你就會開始問:
0. 目標產業發生了什麼現象讓貴公司開始進行這項工作?
1. 有什麼過去基於的假設現在被打破了嗎?怎麼打破的?
2. 造成過去的假設不再成立的外在因素貴公司認為是哪些?怎麼覺得是這些因素造成的?

重點來了,當我們仔細聽他講的時候,不是要聽他講得多偉大,而是要聽:

1. 他是否知道公司的知識疆界目前在哪裡。

簡單的說,我們應該預期要會聽到他說:
『我不知道』『我覺得可能的方向』『但這樣看過去又會...所以我想我還不清楚』

你應該要聽到矛盾、你如果也是在那個領域打滾過有相當知識的,你甚至要跟他辯論起來。
他如果說不出口『他不知道』,那有兩種情況。

第一種,他不懂裝懂,還在革命尚未成功同志仍需努力的時候,團隊的管理就已經開始有人覺得自己是『權威』了,這樣怎麼會有創新啊?
第二種,他平常在做什麼他自己也不曉得,所以他今天也不曉得為啥要找你來面試,要知道今天公司要創新、要找開發者進來,就是想找人去找那些『不知道』背後的答案,當面試你的人連『什麼地方過去目前不清楚』都講不出來,那就表示:『他不曉得他幹麼要找人,他甚至不曉得他的創新是在創新些什麼』


2. 他是否有意願說到你懂。

一間公司所提供的勞務一定不會在他的客戶的核心價值追求範圍(除非它在販售勞務給絕對的競爭對手...這就蠢了)。
那麼一門生意要發展、一個新的供給模式建立在重新定義的需求上,就意味著公司要有能耐讓目標客戶(一群通常不怎麼在乎你在做什麼的人)容易理解其訴求才行。

Business Model不曉得能不能動沒有關係,還沒做成當然沒人知道會動不會動,不是完全認同那也無所謂,畢竟瞭解跟認同是兩回事,但他要是連讓你理解都辦不到,那麼如果你不比它的客戶笨,這間公司的方向就算目前看起來是對的,它的執行會成功、產品能行銷嗎?

那是不可能的,在一個知識經濟產業裡,一個無能傳播知識的管理層就是一個失敗的管理層。探索未知的時候眾人都有清楚的價值共識是最重要的,沒有這個任何的執行都不會聚焦。而執行不聚焦還會成功...不要忘記只要有軟體專案開發的元素在,這就是個最被詛咒的行業



2011年11月28日 星期一

我們公司沒有工程師,只有開發者

工程師跟開發者的差別,簡單的說就是看到的是『規格』還是『需求』。

工程師的工作是翻找補充自己的工具箱與資源庫,想辦法實做出符合設計規格的東西,開發者的工作是界定需求然後找尋並執行可以滿足需求的方案。

他們可能在同一個領域裡工作、有著相同的專業技能背景,但工程師面對的是系統功能與流程、開發者面對的是推導思考滿足需求的必要條件,探討什麼樣的系統介面與功能與人的互動可以導致有效產出(人生是殘酷的,大多數的時候我們要不沒有充要條件、要不充要條件為『不可能』)。

一間公司面對的是一個已經決定的系統、沒得透過檢討需求的本質來進行變更與調整的,那他需要的是工程師。所以高鐵找的是工程師、捷運找的是工程師,因為團隊不可能跟政府還是公司講:『其實要滿足公眾運輸的需求,捷運不合理,我們應該考慮tram,以下是我們的方案...』。

但如果一間公司面對的是一個根本不確定、只知道趨勢是存在著的、需求是存在著的環境就得開始工作的情況呢?那他們需要的是開發者(在硬體相關的領域,這種人會被叫RD)。所以現在很多網路服務的Start-up,他們找的是開發者。

兩者沒有孰優孰劣,只有你是誰、你活在哪裡、你的公司應該根據什麼樣的前提假設來建立、管理團隊才能創造價值。



在台灣,我沒辦法在對外人自我介紹的時候說:『我是軟體開發者』,我只能說我是個『軟體工程師』『程式設計師』或『寫程式的』而我認識的同圈子的人面對外人時也大多如此,我想這很好的說明了台灣的公司普遍屬於那一邊。

於是當我爸問我:『那些大公司也可以像你們那些個Start-up那樣玩出新把戲啊,他們資源那麼多,一旦出來不是會很成功嗎?為什麼你不覺得他們有機會勒?』

我答:『因為我面試的時候都會問一個問題,而到目前為止我從沒遇過那些老闆有拿到及格分數的(也就是讓我開始問第二個問題的)。』

這個問題就是:『請問貴公司有多少工程師?』
他只應該有一個答案,而且他得要能立刻回答:『我們公司(團隊)沒有工程師,只有開發者。』


我會去找的工作,都是我認為他的需求根本還不確定、而他們公司應該要有能耐去建立一個『開發團隊』去探索,而不是『工程團隊』照規格去做事的,但很顯然要不是他們需要創新,卻從不思考這種定義上的馬虎會導致管理行為與目標上的不一致進而造成不效率與失敗,要不就是我搞錯了,其實這間公司根本與創新無關。

每個人的人生都有想追求並實現的東西,而個人的人生目標與志向投射到軟體產業,那就決定了你選擇成為開發者還是工程師哪個比較好。不論如何,別找錯方向了,進錯公司(價值觀不match)有時候比交往錯對象還慘的。