8 days ago

我今年下半年重開了去年評價很好的 Rails 商務網站 x 即戰力班。開這個班的目的,是為了讓市場上多一點即戰力能戰鬥的 Rails Developer。

目前今年暑期班已經上完第二堂。但因為口碑蠻不錯的。

skitch (9).png

原本打算晚點要公告出來的秋季班,也神秘的瞬間秒殺了。所以目前只剩下

課程內容以及設計理念

雖然網頁上我已經有公布上課大綱是什麼。不過有朋友還是希望我解釋一下這是在上什麼。所以我就大致上寫一下:

第一週

第一週我會教新手,「軟體規劃」,以及「規劃完怎麼樣慢慢實作完內容」

這是過去我訓練過幾十個 Rails Developer 發現大家的共同罩門。很多人學完坊間的 Rails 基本教材,會操作基本的 API 了。但是對於「要重新寫一個自己屬於自己的 App」有困難。

其實不要說自學了,就連許多公司裡面新雇用的 Rails Developer,很多人頭三個月都還只能實做「單項」簡單的功能,沒辦法說「規劃一個整塊功能」,在限時內寫完。

這就是我第一週想要傳授的能力。這個能力會在後面的課程中一直反覆的用到。

第一週其餘的內容,都會圍繞著

  • 「軟體規劃」
  • 「如何圍繞著軟體規劃,慢慢把軟體疊出來」
  • 「利用 gem 實作功能」。
  • 「如何問出不會被鄙視的問題」

同時鼓勵大家下課後去參加社群,寫作業,問問題。

第二週

第二週,份量會變得非常的重。

主要是「規劃一個整塊功能」並實作。
從 Helper -> View -> Controller -> Model 逐層的深入設計。同時透過這些一個一個功能,把 Rails 常見的功能觀念一個一個帶進去。

這一週的主題是

  • 實作購物車
  • 結帳
  • 生成訂單
  • 切換訂單狀態

同學會學到

  • Helper 常見設計方法
  • Model 常見設計方法
  • Controller 常見設計方法
  • 怎麼樣拆架構,「跳開還沒有頭緒」的架構

第三週

第三週呢,我們實際介紹如何介接「第三方服務」,以及處理第三方服務需要處理的問題。再來,因為前兩週我們把程式寫得很亂了,怎麼樣整理程式碼。

這一週的實戰主題是「寄信」以及「實際付款」以及「部署」。

  • 寄信是教 Mailgun
  • 付款是教 歐付寶
  • 部署是教 Heroku

部署這些第三方服務還會有一些「開發環境」與「正式環境」的差異。我們教如何處理相關的疑難雜症與 debug。

整理程式碼部分我們會教

  • View
  • Controller
  • Model

的相關 Best Practices 收納術,以及整理心法。

第四週

第四週呢,我們教實際從業 production 環境會遇到的各種挑戰。去年我們教了

  • 簡單的 SEO 與 Facebook Opengraph 資訊
  • Frontend 怎麼樣提升效能,
  • Backend 怎樣提升效能,簡單的資料庫設計以及索引原則,怎麼要找效能瓶頸點。
  • 開發時需要注意的簡單安全性問題
  • 求職履歷要怎麼整理

今年這些全部都會教。

另外我還會多教一些簡單的 MVP 與 Growth Hack 實戰。讓你知道一開始哪些產品功能可以先做,哪些不用做。還有簡單的推廣產品技巧。

為什麼這樣設計?

這套課程,內容都是一個 Rails Developer 從業 2-3 年(還未必會全)學到的課題。目前是沒有一本書以及線上教材所可以提供的。全是從我 Rails 從業八年來帶過非常多 Rails Developer 的 Training Cycle 所萃取出來的。

所以如果要說這個班跟其他人有什麼不同。

1) 首先,雖然我們上課只有四周,每次只有 3 小時。但是這 3 小時不是講一些 「網路上就找得到的基礎教材」灌大量時數。我們是教書本上沒有的東西,鐵錚錚的實戰累積經驗。

2) 我們上課是高度互動。學生一定要留時間寫作業(下課要至少寫3-6小時的作業,有解答),下課還來 meetup 問助教問題。每一上上課就能帶很多高度半成品的東西回家。

如果你有點子想自己實作,按照類似的架構就可以搭出有模有樣的東西。

而不是只教你單一個功能,你根本不知道為什麼會這樣設計。(如果要學這種東西,Railscast 很多)

3) 我們教的整理術是 rails 圈內已經演化到有最佳解的東西。所以學生不用浪費時間重新再進行這個 cycle 一遍,還不一定有方向。

這個班從設計的宗旨開始就是要教出:錄取後馬上可以打仗的人。不管是你想要換工作,或者是做自己產品,都可以自己有方向快速上手。

我們不會唬爛你說出來可以變即戰力,事實上每週都在教你網路上的 101。

講了這麼多,其實這篇文章也不是在重新推銷自己的課程,純粹只是分享一些課程設計的理念。因為秋季班已經完全爆滿了(一天內瞬間秒殺...,所以我秋季也沒東西可以賣了)。

如果你看完覺得有興趣的話,現在只剩下冬季班可以 book。我勸各位及早 prebook。這兩班沒有 book 到。今年就真的沒有位子了。

http://rocodev.kktix.cc/events/rails-e-commerce-2015-11-tp-prebook (台北)
http://rocodev.kktix.cc/events/rails-e-commerce-2015-11-ks-prebook(高雄)

現在先 book 起來,九月開放報名時就不用跟人再搶了。(會提早至少一週通知繳剩下的學費)

 
13 days ago

昨天剛傳出 HomeJoy shutdown 的消息。雖然行內認為這篇資訊已經夠多,但是我認為還是可以寫出更深一點的評論。

(P.S. 筆者曾在矽谷 O2O A 輪公司任職,擔任 Engineering Lead 且設計主導重寫擴展過整套 O2O 複雜的商業系統架構)。

這篇文章太長,所以我先寫結論。

  1. 如果你只能賭一家 O2O 公司,賭 Uber。如果你能賭第二家,賭 Airbnb。
  2. 初次創業者,不要來碰 O2O。必死。這行不是寫個 "Google Map" + "Billing" 就可以開始賺錢的行業。
  3. 在台灣搞 O2O,嗯...。(我不想直接寫會引發地圖砲的字句)
Read on →
 
15 days ago

幾年以來,我在執行專案時,一直是使用「使用者故事」的方式,與團隊一起進行敏捷專案開發。

開發專案時,捨棄寫 Spec,而改由撰寫「使用者故事」。可以讓團隊釐清,整個專案有多少角色,在什麼場景,執行什麼功能。我們再針對爬梳出來的 User Story,進行資源以及執行期限的限制篩選。擬定可以執行的方案。

但是,後來這一套方案在特定的狀況下遇到嚴重瓶頸。我們公司的架構當時是分隔台美兩地。Product Owner 在美國協助整理使用者需求,台灣團隊收到後執行。但是,以往管用的招式在此狀況下卻不管用。

原因是以前如果開發團隊都在同一個辦公室,使用者故事上「沒寫到」的細節或原始情境,透過快速的口頭補述交流,就可以補完。專案不至於執行偏差。但是在團隊分隔兩地的情況下,因為時差與團隊成員功力差異,許多「需求」的「原始情境」會消失。

「使用者故事」變成 Product Owner 的一面之詞,他憑著「自己的判斷」以及「喜好」,寫成了「無原始背景」的技術性用戶故事,加上公司又是 Operation-Oriented,有些細節必須要是在現場才會知道。這些「重要的細節」隨著 Remote 與溝通不良被蒸發,於是「使用者故事」又變成只是「簡單版的 Spec」而已。這讓團隊之間,摩擦又開始變得很大。

於是我掙扎著又設計協調出另外一份問題解決結構,搭配 User Story 執行。方式是這樣的:

  1. 我們遇到了什麼問題?
  2. 為什麼這件事會發生?
  3. 我們目前的限制是什麼
  4. PM 建議的解決方案
  5. (召集相關的開發成員)大家建議的解決方案是什麼
  6. (召集相關的開發成員)簡單的 vote

這份敘事的結構,目的有幾個:

  1. 讓「原始目的」與「原始情境」儘可能的被重現
  2. 讓團隊了解這個問題的資源限制,以作出最好的建議(一天之內要解決?一週之內要解決?或放著想根本沒差)
  3. 讓相關的成員有參與感,以及可以激盪出最好最適切的解決方案。(透過 Hackpad 討論,所以來回不會很冗長,通常一個工作天內會結論與表決同時出爐)。而不再是 PM 的一面之詞。

我們成功用這個架構 deliver 了很多大大小小 tricky 的專案。

本來我們也以為這套方案是獨家發明,後來跟一個朋友聊天分享過後。才發現這其實已經是麥肯錫內的架構解決 Best Practices 了。我在麥肯錫新人培訓七堂課 這本書內有找到更多這套方法的敘述與強化。

以下整理出方法重點:

1. 解決真正的問題

比如說老闆抱怨「最近生意不好」,所以我們要搞個「促銷」。此時重要的不是真的去寫「促銷」的 User Story。而是去找出「生意不好」是指「來客量不高」,還是「單個客人貢獻營業額不高」。

2. 定義問題、假設與分析、解決策略

執行這個步驟的重點在於「分離現象和原因」。利用邏輯樹找出問題結構後

  • 生意不好
    • 來客量不高
      • 每個客戶平均成交率低
      • 沒有花新力在開發新客戶
    • 單個客人貢獻營業額不高
      • 單品平均銷售額沒有增加
      • 顧客平均購買量沒有增加

然後再找出什麼是最重要的議題。(因為沒有美國時間一個一個去做)

3. 根據團隊目前限制針對最重要問題設計出有意義的解決方案

因為產品開發不可能無限制發散討論。一定要有得收斂,且要在「一定時間內」完成,否則超過時間限制,原始的討論也會變得一點意義都沒有,而淪為純清談。

解決問題時必須注意到的重點

  1. 不要受眼前的狀況和條件所限
  2. 經常意識到邏輯思考
  3. 不斷問為什麼?
  4. 為什麼?做什麼?怎麼做?

「為什麼?做什麼?怎麼做?」

在商場上,這三個問題就是把「哪些產品與服務,透過什麼方法,提供給哪種類型的顧客?」只要這三個問題沒弄清楚,就會搞錯方向,浪費資源。

這也是當初我們單純只讓 PO 使用「User Story」單純敘事的缺陷。

PO 少告訴了大家「為什麼?」,而 PO 單方面的決定「做什麼?」「怎麼做?」。

這個方法是一個把產品所有權回歸到整個團隊的好方法。

推薦給大家使用。

 
17 days ago

fight.jpeg

在這個話題上,很多團隊對於「Growth Hack」戰術以及 「Project Management」是否能同時並存且執行是存疑的。因為在傳統的分工架構與流程下,Project Management 強調的是職能分權以及排定優先順序。而 Growth Hack 「印象中」執行的場景是有不分組且跨領域的的 Growth Hacker 獨立的進行產品改造工程。

這兩件看似衝突的事如何一起執行?

產品是誰的?

在繼續講述這個公認為最難的主題之前,我想來先聊一個其他主題。我覺得很多 project management skill 與 framework 在很多團隊裡面沒有效果,其實是一個最重要的前提假設錯了。

這個最重要的前提假設是「產品是誰的?」通常,官方政治正確答案是「產品是大家的」。

但是在許多組織運作現有運作情況下,卻是「產品是 PM 的」。

以至於很多敏捷方法、架構、以及操作方法,在這樣的操作現況下,變得超級畸形以及沒有效率。

Read on →
 
21 days ago

2012 年我曾經寫過這幾篇文章:

每個人的困境(藉口)都一樣:「我不開心,但是我不想不孝順」

這幾篇文章常常讓我的臉書被密爆。起手式是這樣的:

Anonymous: Hey, Xdite 你好. 是這樣的, 我最近看到你的文章, 感觸良多. 我最近 "進了大公司", "醫學院念完", "考上公務員", "替代役當了一年", "剛考上公務員". 家人都為我很開心, 可是我很不開心. 他們都覺得我找到了很好的工作, 但我覺得上班很無聊, 看到你的文章, 我覺得你說的很棒很貼切. 「可以跟你交流一下嗎?」

Xdite: 你是想離職嗎?

Anonymous: .......有這個打算. 不知道你當初是怎麼跟父母講呢? 當初會做這個工作是因為 "家人逼我", "家人期待", "社會觀感", "岳父喜歡", 薪水也不錯也很穩定. 我不討厭, 但以後想到將來的 "值班", "開不完的會", "老屁股", "專業上沒什麼熱情", 就讓我很苦惱.

Xdite: 不喜歡的工作就不要做啊.

Anonymous: 很困難啦. 你不知道啦. 我每次透露出這個想法, 我爸媽就會覺得 "我是白癡", "你會餓死", "以後賺不到錢", "不穩定", "不會把女兒嫁給我". 我曾經想過 "先撐過三年", "先撐過專科訓練", "先拿到執照", "先升上主管", "先把手上這份工作上手" 在 "有空的時間", "下班的時間", "上班無聊的時間", 研究我喜歡的題目, 之後再換工作, 你覺得呢?

Xdite: 為什麼你有這樣的想法? 這樣不是很浪費時間嗎?

Anonymous: 沒辦法. 我不這樣做. 離開現在的位子, 父母, 女友, 岳父母 就會跟我鬧革命.

Xdite: 為什麼?

Anonymous: 因為他們會覺得 "我會餓死", "以後賺不到錢".

Xdite: 你會嗎?

Anonymous: 我也不知道. 現在的工作我也不討厭. 所以我很猶豫

Xdite: 不討厭 = 不喜歡

Anonymous: ......XD 對...

Xdite: 你喜歡的話怎會說不討厭呢?

Anonymous: 那你覺得應該怎麼做比較好呢?

Xdite: 辭職,去做你想要做的事。

==== 通常到這裏我會視對方鬼牆程度決定要不要再回應,或直接就放著把視窗丟著不理 ===

這一篇文章不是昨天某一個陌生人或熟人跟我的對話。我的 FB 訊息夾 / Email 大概有兩三百個類似的鬼打牆對話 XDDDD

已經 loop 到我可以直接用背的了。(Siri 到底可不可以內建本功能?)

如何快速打破父母這道迴圈?

其實我不是很想寫這個驚世文(每次寫完這種文章,兩年內我都會因為該文被公幹,兩年後才還我清白 XD),實在是我覺得這個解答邏輯已經可以 Programmable 了,而我沒有一直將來想要進行這種機械式對話。

翻譯:「你會餓死」= 「我不希望以後養你」

要打破這個迴圈,首先需要的是「獨立思考」。

說真的,我期待讀到這篇的讀者,既然你已經有逃離了念頭了,不妨再多花一些腦力。

這些看似打不破的迴圈不是打不破,而是你的大腦無法破題,無法破題的原因可能是因為害怕而抗拒進行解題,或者是一直以來都懶得思考(如果是懶得思考,這樣這篇文章可以直接 end,不適合你)。

父母的話「你會餓死」其實相等於 「我不希望以後養你」。

所以第一件事情要思考的是:「你以後做喜歡的事,就算餓到,你會跟父母伸手要錢」嗎?

翻譯:「你以後賺不到錢」= 「我怕你是廢人,達不到應有的成就」

父母的標準很簡單,只是表達形式糟。在台灣父母眼中「錢」= 「成就」。你可以很賭爛這個思維:「錢」= 「成就」,但這就是現實。

我相信有這些困擾的朋友們,都很會「考試」,所以一不小心被考試的高分沖到了一個自己好像不喜歡的地方。但「你會餓死」,「你以後賺不到錢」,好像沒有標準答案,而且是一種情感式的勒索。所以不知道怎樣答題。

其實標準答案,經過翻譯完就是:父母希望你的月薪至少 "XXX 萬",結束。

我家境沒有很好,所以當初我爸的標準大約是月薪 5 萬。認真幹程式設計師一兩年就有這個數目了,所以我很有把握的硬幹下去。超過 5 萬我就自由了。(如果按照他當初設定的路線,我大概要幹 robot 至少十年才有這個月薪)

所以你也可以設定一下,你想要的那個職業,要投入多少努力和多久才有這個同等收入。

  1. 三年內達得到。恭喜你,現在可以立刻就烙跑!(而且我保證,因為你非常有興趣做你想要做的這行,其實只要花一半的時間就辦得到了)
  2. 5-7 年才達得到。可以研究如何賺其他業外收入或加值收入(賺錢),湊在一起達得到。不要藉口說不可能,你不是很喜歡怎麼不可能?

可是做自己想做的事,好像違背父母的話,好像不孝順?我不想不孝順。

Hey, 仔細看看你父母在表達什麼?

「我希望你經濟獨立,並且變成社會上有成就的人」。

只是他們考試及格的標準,在現在已經 expire 了。就像你聽到「我國首都是南京一樣」會覺得非常荒謬一樣。

所以成為「經濟獨立,並且變成社會上有成就的人」,是很孝順的行為,沒有不孝順。

如何快速打破自己這道迴圈?

「可是,我當醫生、在竹科上班、在政府上班,也蠻有面子的,我不討厭,只是也沒有很喜歡,特別是 XXXXXX 情況很爛」。

Hey, 想想看, 為什麼你有面子? 為什麼人家給你面子? 是因為你是名醫? 你是工程師? 你是高官?

人家是給你的機構面子,不是給你面子

No. 人家是因為你後面的機構 = 有錢 / 有權。但是你本人 有錢 / 有權 嗎?你又真的覺得你的職位「有錢 / 有權」嗎?

你只是想要自己「有錢」「有權」,還可以「做自己開心的領域」

為什麼「你自己」不「做自己很開心的事又做得好」然後因為「專業權威」變得「有錢 / 有權」?

而要躲在一個「不開心的地方」「每天假裝開心上班」再「假裝自己有錢有權?」

鬼島標準:「年薪」= 「人生分數」,想逃跑至少要及格

寫完這篇,也許你會覺得我這個人完全變了個樣。以往在部落格老是大談「有熱情」多重要,賺多少不是很重要,對社會有多少貢獻才重要。結果這篇「錢錢錢」。

Hey, 面對現實吧,爸媽的緊箍咒,其實說穿了就是一張考卷,而 95% 的爸媽,及格標準跟錢有關。你對自己的緊箍咒,100% 跟錢有關。

更實際一點,「你現在的月薪五萬,而你想做的工作起薪三萬五,你想做的工作兩年後才會升到五萬。就算到兩年後才會一口氣升好了,兩年也才差 36 萬。36 萬可以賣掉你的快樂?36 萬等於一天 500 元。」

每天多 500 元跟每天上班都很快樂你要選哪個?何況兩年後都是領一樣的錢。更何況你每天上班都很快樂,兩年後你的月薪可能不是五萬,是七萬。

so, 為什麼你不現在就開始研究怎樣讓自己的興趣開始可以賺錢?

反正,最差的狀況,不管你會不會「變得更快樂」,最差的狀況也只是你會變得「更有錢」,而不是「更窮」。我想你的父母也很難因為「你更有錢」去討厭你。

只是記得告訴我,未來當你因為「玩自己的興趣」賺了更多一點錢的時候,你對「有熱情」跟「賺錢」跟「對社會有貢獻」是否會衝突的看法是什麼?:p

快去研究怎麼賺大錢吧!

延伸閱讀

==== 後續追加

網友路直讀後發問:「有個loop困境是就算自己跟另一半都已經超越及格了,但父母還是不滿意,請問如何處理?有些人跟無底洞一樣,永遠不會滿足。」

我的回答「我認識一種人更奧,就是我自己,我還是很不滿意我自己。我比我父母還要奧一百倍,所以我忙著處理我這種奧客,沒空管那些次奧的。」

 
29 days ago

38639937_s.jpg

網路公司的工程師或視覺設計師,在公司最怕公司高層宣布一件事:「這個月我們要來大改版」。

如果公司宣布這件事,往往就是預告著公司三個月後的「第二版」上線後,大離職潮的開始。

為什麼要大改版?

需要大改版的原因,往往是以下幾個原因:

  1. 原先網站太醜
  2. 原先網站動線不良,有太多結構性問題
  3. 交易成功率很低,而老闆覺得是「視覺設計」上的問題。

為什麼工程團隊最恨聽到大改版,以及大改版後會有離職潮。通常是因為在改版過程中每個團隊不可避免的照順序會發生這幾件事:

  1. 因為美、醜、動線的主觀性,所有同事大內戰,戰成一團。
  2. 內戰過後,最後只產生一個結論:由 PM 主持公道(a.k.a 都他來規劃,大家不要吵)。但是把最後決定權交給他,通常也等於把 deadline 交給他。於是這個大改版就會出現一個完全不切實際的上線日。
  3. 大家因為這個上線日瘋狂的加班,爆肝撐到終於上線。結果,原先舊的客戶用得非常不順手,信箱內客訴一大堆。但是,原先期待上漲的交易量也跌的更誇張,老闆震怒。但大家實在不想改版第三次。
  4. 因為大改版,所以網站內有些好用的舊功能,或者是 workflow,消失或爛掉了(當初沒辦法寫 Integration Test 或根本沒時間寫 Test,或寫 Test 也阻擋不了因為 UX 的改變造成的動線問題)。工程團隊忙著修理或 Revert 成原來的動線。
  5. 最後工程團隊又累又沒成就感又被眾人指責,憤而離職。

所以大家非常痛恨「改版」。

今天這篇文章就是要從 GrowthHack 的角度與手段分享,如何「無痛」的改版。

第一件事:找出關心的產品指標

為什麼要改版?改版說穿了就是希望產品能夠「更好」。

既然是「想更好」,那麼第一件事就是要精確的定義什麼叫做「好」。

產品的服務交易成交量低,那需要改善的地方到底是什麼?

  1. 你的產品多半是服務一次性客戶,所以想改善的是 Signup Rate 嗎?
  2. 產品 Signup Rate 很好,但是再買第二項產品的機率很低,所以你想改善的是 Retention Rate?
  3. 產品回購率可能還不錯,但是回購間隔非常的長,所以想改善的是購買頻率?
  4. 客戶看到商品往往都加到購物車了,但是購物車 abandon 率高達九成?

如果你想要改版產品,首先必須知道你想要「改善」改什麼。改版絕不不是「請美術新出幾張圖」,就叫改版。

想要改善產品,必須先知道究竟想改進什麼「過低的指標」。

第二件事:建立該指標的行為量測,建立 Funnel

很多做網商的人,很喜歡大談 Conversion Rate Optimization。

每次改版就嚷嚷我們要改善「Conversion Rate」,然後根據網路上搜到的一些懶人包,提出一些天馬行空的改進建議,這些 tips 有時候有效,有時候一點都沒效,還會造成工程團隊的困擾。

「交易成功率」不等於「轉換率」

傳統大家喜歡談的 Conversion Rate 其實講的是「交易成功率」,而不是「轉換率」。

轉換率的定義:在 Funnel 的想法中, A -> B ,B -> C,C -> D,每一個狀態的改變,都算「轉換率」。

比如說註冊量低,我們要改善註冊步驟。

註冊步驟分為

  1. 從 FB 進到首頁
  2. 從首頁進到註冊頁
  3. 註冊頁填完資料進到帳戶 Dashboard

比如說商品成交量低,我們要改善購物流程

購物步驟分為

  1. 從 Line 進到商品頁
  2. 從商品頁挑選商品進購物車
  3. 從購物車頁進到結帳頁
  4. 從結帳頁填寫地址到付款頁
  5. 從付款頁到見到交易訊息

很多人會誤認為轉換率就是「註冊數量」以及「購買商品量」。

事實上 Conversion Rate Optimization 談的是,從 1->2,2->3,3->4,4->5 的每一個步驟的優化。

客戶沒有辦法完成交易的原因很多。有可能是

  • 加入購物車的按鈕設計的很不好
  • 填寫地址的動線很爛,填一填就火大了不想填
  • 結帳頁沒有 HTTPS
  • 結帳頁看起來就像詐騙集團的頁面
  • 看到總金額,突然覺得這個月太花錢了臨時冷靜

如果想要「修」好壞掉的數據,應該確實找出壞掉的部分修好它,比如說 2->3 是好的,3->4 是壞的。

但傳統的「大改版下」,往往是在不明就底的情況下把 2,3,4,5 全改了。

3->4 沒修好不打緊,結果連當初沒壞的 2->3 都壞了,交易量反而下跌是很正常的事。

前端工程師不應該寫 Integration test 而是應該改關心 Funnel 漲跌數據

前端工程師對於改版最頭痛的地方是,Integration test 不好寫,而且改版通常還會牽扯到 CSS 與動線,這個部分幾乎大家不知道測試的尺度要拿捏到哪裡。

Well,我建議前端工程師應該關心的是 Funnel 轉換率的漲跌數據。

因為,「改版」的目的是希望「交易成功率」上升,而不是程式表面上的正確與否。「程式」就算沒有 bug,那也只表示程式設計「正確」,並不代表「程式設計正確的達成或改善目的」。

所以,改版應該關心的是 Funnel 的漲跌數據,Funnel 跌再去處理,比花大把時間寫 Integration test 有意義的多。(通常 Funnel 跌也可以順帶的知道程式爆炸了)

第三件事:一次只改一個部分,並 run A/B testing

前面提及的改版重點:

  1. 不要大改版
  2. 建立量測數據,找到哪個指標嚴重偏低
  3. 掛上量測工具,抓出整個流程步驟間所有的轉換率,抓懷疑病因

所以產品改版必須是小規模的針對性的修,而不是 big bang 式的改版。

接下來這段想談的是實務上「如何實作改版」:

改版通常牽扯到主觀的辯論(除非團隊內有壓倒性的強者),否則最後結論通常最後會有兩三份,再根據誰說話比較大聲,或鹽吃比較多,最後採納他的方案。

但是很多時候,UX 動線是很多天時地利人和的一個巧妙組合,未必這個技巧在 A 網站 work,就會在 B 網站 work。

也未必 C 醜 D 美,D 的轉換率就會比 C 高,可能 C 雖然醜,轉換率卻比 D 整整高了 20%。

所以務必 run A/B Testing。分配實驗比例,確保工程團隊沒有真的因為改版,一瞬間把交易量全滅了。

說得很好聽,如何實行?

有朋友跟我說,xdite,我覺得你現在產品 Tunning 理論最近講的都超漂亮,但是好像不是在矽谷根本做不到,要建這些工具與耗用人力,我們團隊根本負擔不起。

Well,這些技巧其實都不是外星科技,市面上已經都有第三方工具可以快速且容易的實作。

  1. Chartio 強大的 Query 工具,可以透過簡單的介面或手刻 SQL,拉出團隊關心的指標與數據。
  2. Mixpanel Funnel 量測工具,透過 event-based 觀測 funnel 轉換率的超強工具,也內建 messaging 與 profile history。
  3. Optimizely,強大的 A/B Testing 工具,只要有簡單的 jQuery 技巧就可以在網站上改得亂七八糟。可以隨機分配流量追蹤指標。未來還會推出個人化,鎖定具特定消費行為的使用者做 A/B deal testing。
  4. Geckoboard 之前我在做產品時,一次要盯幾十樣數據,確保今天的 deploy 不會無意中把某 funnel 炸得亂七八糟,還要確保不會發生爆炸了,五天後我才知道的事。我沒有辦法一次在 mixpanl 追蹤這麼多指標,所以我透過 geckboard 拉 mixpanel 去顯示我關心的數據,並且可以更細的針對前一天,每一週的數據去對比決策是否錯誤。

所以做這件事並沒有那麼難,只是需要多加一點功。

Summary : After having growth mind

要說我覺得從學會 growth hack 技巧後,心態上最大的轉變與感想是:

我覺得以「產品交易成功率」的產品改進策略,把軟體開發中的僵持難局,最後一哩路上的缺口都拼起來了。

軟體開發中最常出現的幾個膠著難題:

  • 專案管理中的角色切分權責大戰
  • UI 與 UX 的最終定案權
  • Testing 的顆粒度

都在這樣的模型中,有了很好很實際的解答。

我推薦各位也以這樣的角度,去重新審視產品開發的每一環,我相信你可以突然之間就發現一大塊新的天地。

 
29 days ago

「公司要投注多少人力去做 Growth?」這是在我的兩場 Intro to Growth 中都有人提到的疑問。

根據 Inside 上面這篇文章的 流量成長駭客(Growth Hacker)應該具備的條件

普遍大家對 Growth Hacker 的想像是

  1. 新一代的 VP of Marketing
  2. Growth Hacker 負責統籌跨部門的改版計畫,負責改善轉換率。擬定 Growth Plan 並調動跨部門支援執行。
  3. 此人必須同時懂 Marketing 與 Engineering,並且叫得動 Engineering Team。
  4. Growth Hack 是耗能極大的技術(需同時跨 Marketing,Engineering,Design)。

所以才會衍伸出這個疑惑:「公司要投注多少人力去做 Growth?」

(其實按照這個定義,通常只有 Engineering Lead 自己跑去學 Marketing 才有可能成立...,或者是公司大到能有專職的人轉職成 Growth Hacker 專注只做 Growth Hack)

Well,我會明確的回答,現在是 2015 年,標準答案是:公司要「投注所有人力去做 Growth」。

其一:公司的存在就是為了「Growth」

以前做產品,我們都被部門分權職掌迷惑了,以為 RD 只要負責開發功能就好,PM 只要負責安排資源就好,Art 只要負責設計就好,Marketing 只要負責行銷就好。結果通力合作下,產出一個巨大的畸形怪物。為什麼?因為所有人只 care 他們自己的業務。

大家各自做各自的,遇到業務重疊之下,互相吵架然後妥協一下,最後做出了完全沒道理的功能。以前 Startup 時期窮,大家關心公司成長,資源也少,程式碼醜但起碼都做在點上。公司募到錢請了一大堆人進來做產品,開發速度變快了,但是產品變得亂七八糟。

為什麼?因為員工不知道他們被雇用進來的意義在哪裡。所以他完全不關心公司產品與用戶死活,只關心他能不能玩到自己想玩的技術。這就是為什麼公司雇用了越來越多員工,但產品卻越來越退步。

所有人都忘了被雇用的目的以及雇用新人的目的,就是為了「Growth」。如果大家做產品沒有抱持著這種想法,公司不可能會成長,只會陷入部門執掌的內戰。內耗而不是成長然後擴大規模。

所以這是為什麼要投注所有人力去做 Growth 的其一原因。

其二:Growth Hacker 本身不可能叫得動所有的人同心 Growth Hack

Growth Hack 的技巧與心法可以很簡單也可以很複雜,其中大量牽扯到了前端 UX、Copywriting、AB Testing、數據判讀。主要的 GH 流程是先上工具對產品重要的指標數據進行監測,檢測到某些指標異常的低,進行改善。

「改善」講起來簡單,其實做到卻很難。

比如說,怎麼改進產品的 signup rate 或者是 referral rate?

在不理解 GH 的情況下工程團隊的「正常」反應

  • 當 Growth Hacker 跟工程團隊通報時的時候,工程師第一個直覺反應就會是「幹....又要改版了喔,是有完沒完啊」
  • 跑去請前端工程師埋個 funnel 做個兩種不同的設計 A/B Testing,他們的心裡就會幹「阿幹,是錢太多還有時間太多喔,一個設計都做不完了,還做兩個。」
  • 當檢測到整個 referral program 根本是爛的,需要更換成這個設計那個設計,搞不好設計師背後偷罵「阿那你主觀美感改了更醜好嗎」。

不要以為工程團隊就是懶惰,事實上產品一個「小」改版,其實遠非想像的簡單,更何況有時候 UI 與 UX 很主觀,光舌戰就要吵很久。

就算是 Engineering Lead 都不可能叫得動所有人「馬上」改善。更何況手上沒有兵權的 Growth Hacker。不馬上陷入內亂才有鬼。

其三:工程團隊必須要先理解,接著看到成果,才會有成就感,才會主動,才會覺得自己對公司進行了正向貢獻。

我印象最深刻的是,幾個月前當我只有跟另外一個部門在單獨研究 Growth Hack 時,改一點小東西都很難叫得動人。好吧,叫不動人,或者是同事忙到爆炸,只能自己下去自己改 code。但產品不小心變得醜了一點,大家就抓狂起來了。因為「不知道改了可以欉三小,而且感覺都很主觀」

後來當我發現內亂以及排斥的原因是不知道 growth 的原理, how it works 時(我一直開票要修這個那個,同事覺得我沒事找事幹起乩)。我決定寫了一份完整的投影片,跟整個 team 講解 growth hacks, how it works。然後雖然最近我把某個功能改的好像比以前更醜,但是 order 數瘋狂成長,原因是這個那個時。

有些同事眼睛聽完瞬間就亮起來。立馬可以舉一反三去找資料提出我們可以把某些功能跟流程改成 best practices,別人是怎樣做怎樣做的,我們可以試試看。而且 designer 在做設計時,也會自己多做一兩版,我們無法決定時,fnd 就直接開 A/B Testing 上去測轉換率。

產品設計突然間就有很大的突破,團隊也更自動自發去把細節做得很好。

差別只在於全 team 大多數懂了 growth hack how it works。大家改了的這個設計,可以立刻就從埋的 funnel 數據跳動,直接看到這個改版對整個產品以及轉換率以及利潤的改變。

這是一種很奇妙的成就感。

Summary

所以結論是:公司要投注多少人力去做 Growth?

答案是「全部」。

公司的員工必須懂 Growth 以及關心 Growth,並瞭解公司當季最關注的成長指標。否則你必須關心這個員工的存在正當性。

反過來,員工也必須問公司主管或老闆,究竟公司 Growth 注重的指標是什麼,否則很有可能最後結局也只是跟著大家瞎忙一場。

生命有限,別彼此浪費時間。

 
about 1 month ago

2012 年我曾經寫過幾篇對當時社會很震撼的文章:

不可諱言的,這些文章讓我在 2012 當時被戰慘了。在當時我簡直是邪魔歪道的代言者。但這些文章在 2014, 2015,這些篇的思路卻變得「政治正確」無比。

雖然寫這三篇文章「代價」真的很大。但這幾年很多人寫信或留言給我,感謝我在他最迷惘的路上大大的拉了他一把,改變了他的人生,正往自己喜歡喜歡且擅長的方向光明前進。

我開始覺得寫這些東西或多或少帶來給社會一些價值。

今天,在這裏我要分享一個更驚世駭俗的主題:「為什麼你應該輟學?」

為什麼你應該輟學去?

我必須坦承,這篇文章的內容不是我獨創的,而是從最近一個我很欣賞的 Youtuber 的影片所摘錄的心得。題目也叫「Why You Should Drop Out Of School」,這個 Youtuber 是一個新加坡人。

作者會拍攝這個影片的初衷:是在讀完高中後,他決定不再升學(雖然他的成績好到可以上南洋 JC ),而希望全心當一個職業的 Youtuber。他的同學和父母都勸他別這樣做,這樣是不智的。但他認為學校教育根本上是一個錯誤,於是他打算拍這個影片來解釋他做這件事的思路,以及反駁常人對於學校教育錯誤的慣性認知與論點。

鼓吹學校教育者會說:School is interesting and relevant

作者希望現在的你,回頭想想:

  • 當年你花了十幾年時間這麼大量精力讀的國語成語物理化學,現在對你的幫助是什麼?
  • 當你學習且得到這些知識的時候,最感動最喜悅的時刻是?

.....XDDDD

鼓吹學校教育者會說:Teachers are great educators

作者說,現在在主流社會看教師,當然都會覺得他們是在混日子的人 XDD

但是你要想想,當這些人知道自己要教的東西是如此乾燥無味,而且學生完全對內容也不感興趣時,你是要他們怎樣熱血起來?

然後學生要跟這些已經不想教書的老師的困在一起,然後還要希望這些老師會是 great educators?

鼓吹學校教育者會說:A Degree is very important. Nobody will employ you if you don't have good qualification.

作者想問:對於「Good Employee」的定義是什麼?「Good Employee」的定義是「一個擁有良好的工作能力的員工」。所以與其花了16年在學校學一大堆不相關的東西。那為什麼他不選擇在學校外,從網路上,從書上,從社會人群中,花時間學一堆更相關的技能呢?

如果這兩種學習方式,都投注十六年在上面,你覺得哪一個方向會得到的更多的工作技能?哪一種人你會覺得他有更大的機會成為「Good Employee」。

作者覺得他只是更實際一點,如果他是雇主,他會更想雇用哪一種人?一種只是擁有一張紙,可能好像可以來應徵看看的人。另外一種是真的有作品,而且擁有一堆相關技能。

鼓吹學校教育者會說:Everyone wants to be a top student and attain good results

作者說:如果你強迫自己學一門你根本不喜歡而且根本沒有好理由去學的知識,那一定是周遭的一些社會制約,比如說父母或同儕壓力。所以你等於是被他人控制,違背自己的自由意願,去學一些你根本不喜歡的東西。而當學習表現良好,則會被獎賞。

所以邏輯上來說,最好的學生,就是一隻機器人。為什麼他要努力成為一隻機器人?

(編按:我覺得比較像一隻寵物狗)

鼓吹學校教育者會說:Most people need guidance to attain knowledge, most people can't learn independently outside of school

作者說:這完全是謬論。而且有這樣的言論實在是太自大了。

除非你有精神疾病,智能障礙,肢體殘障到無法使用 Google Search。否則這樣的論點,根本不能成立。而且如果有這樣的狀況,你也可能不適用參加公立教育系統。

而且想想,現在的學生學習知識的方式與形式,不是因為自己想學,而是因為其他人逼你要「學習」,而且要用「特定的方式」。難道這不會造成這些學生長大以後以後聽到「學習新東西」就反感逃避嗎?

鼓吹學校教育者會說:You should go to school to learn social skills

作者說:如果你認為學校裡的社交互動就是社會互動的縮影,那你根本是腦殘。

每天跟一群你根本不怎麼需要喜歡的人困在一起,而且還一困困一年。而且還要強迫跟一群沒什麼能力的人「合作」做一件你根本可以「獨立做完」的小事。然後你不爽這樣幹。老師還會認為你「缺乏團隊合作精神」。

作者說在社會上,一般成人怎麼可能會忍受這種爛工作環境以及爛限制。

我們現在有 Facebook 以及有各種社交媒體,你可以自由選擇你想要一起工作與交流的人群。你根本就知道如何在真實社會中,怎樣「建立關係」。

為什麼要到學校上課才能學到這些技能?

社會大眾會說:My parents won't allow me to drop off school

作者說:Fuck your parents。真的嗎?你真的要讓別人決定你的人生嗎?

當然大家或覺得父母是關心最照顧自己的人。但是你要想想如果有人把你放在一個生活無聊,超痛苦,超傷害的環境,長達16年,然後說這是為你好。那說真的,他們這樣做,才叫真的不那麼關心你死活。如果他們真的那麼傲慢的宣稱自以為他們比你更知道你自己的需求,那這只是顯示了他們只關心他們自己「在當父母上的形象議題」。

把自己的自私建立在「宣稱對你的關心」上。他們根本就是大爛人。你難道要把你的人生交給爛人獨裁決定嗎?

「留在學校會讓父母感到開心嗎?」「不會,因為學校根本不會讓你開心。如果你根本不開心,你怎麼也會讓別人也開心。」

社會大眾會說:School is a happy and joyous enviornment to learn

事實上,根本已經沒有人這樣說了。根本沒有人會認為去上課會開心。怎麼可能有人一邊要被強迫學他不感興趣的東西,還要跟他不想相處的人每天泡在一起,追求他們根本不一定需要的學歷。還可以熱血的宣稱「我每天都迫不及待想要上學。我每天都不及待想跟那些人泡在一起了,我每天都很開心」

根,本,不,可,能。

知道為什麼嗎?這不可能會發生,而且說這種屁話根本沒人會相信。

但是你知道嗎?所有的家長還是這樣繼續跟他們的孩子這樣說。而且還繼續唬爛這些無聊痛苦的過程,是「學習必須要付出的代價」。

鼓吹學校教育者會說:There are things taught in school that can't be learnt anywhere else

這種情況大概只會出現在醫生或律師身上,他們真的要上專門學校才能學到這些技能。不過問題在於,即使他們學到了這些技能,他們也要拿到了學歷證書才能真的取得工作。這種狀況實在太慘了。

還好不是每個人都想當律師或醫生。不過對於這兩個領域,作者想說這兩個領域實在需要改變了,不然那些本來可以變成「更傑出的醫生與律師」的人,只是因為無法忍受要花十六年去忍受這爛教育系統,而失去了從業的機會。

不過仔細想想,這兩個職業也不值得投資這麼大的代價去取得。

鼓吹學校教育者會說:You're not going to be successful without good qualification

作者舉了幾個人,包括 Bill Gate, Mark Zuckberg...。這些人有什麼共通點?

他們都極度成功,而且...他們都是輟學者。

恩。你也可能覺得這是少數例子。對於那些念完書,也真的取得成就的人。他們也都會說,他們大部份的技能也是在學校以外取得。

說到這裡,有一個很有趣的例子,你有聽過有人這樣說「如果當年沒有上學,我不可能取得現在的這個成就,學校的教育的確為我現在的成就建立了扎實的基礎,而且對我的成功來說是無價之寶。」嗎?

成功根本不是跟學歷綁在一起的,而是跟你技能與熟練度有關。所以當你媽罵你:「如果你不去拿個學歷的話,你這一輩子不可能成功的。」叫他閉嘴。

鼓吹學校教育者會說:You need something to fall back on

作者還問:所以你會認為「每天花十六個小時學習,每週花五天,一年內花九個月,連續花十六年在學校學習」。會比得上你在學校之外,用同樣的努力程度自由學習你喜歡的主題?且取得更大的成就。

如果你真的這樣認為的話,你腦子大概真的壞了。

鼓吹學校教育者會說:People in schools are professinonals they know the best way to educate you.

心理學家說最好的學習時間長度是一小時又三十分鐘,超過了以後,你應該休息三十分鐘到四十五分鐘。當然每個人的狀況不一樣。像作者個人就是一次學兩個小時,休息一個小時。但是重要的是,你不應該太逼自己,否則容易筋疲力盡。且學習知識最好的狀態是當你心智輕鬆的時候。

但是學校說,學習必需要有 schedule,而且每個人都要統一套用同一套標準。一次要學三個小時,然後休息半個小時。

作者說他從來沒看過哪一個人,在經過這麼長殘酷無道的學習時程後,還能保持專注,並且每天都能保持。

所以當你不能專注,你覺得超級無聊,你很想休息,所以你開始想找朋友聊天。然後老師抓到你這種行為,警告你不准上課講話。但是你根本無法做到,因為你根本累爆了,然後老師又對你做出更嚴厲的懲罰。

這就是學校每一天的生活。

所以你還會相信這種屁話嗎?

結論

上面講了那麼多,你不會覺得學校教育就是一個地獄嗎?每天花了那麼多時間學了那麼多你根本不喜歡且完全用不到的東西,強迫與你跟本沒興趣的人一起相處,最後拿了一個在長遠看來之下並沒有多大用處的學歷。最後學習對你來說就變成一個充滿挫折痛苦的代言詞。

最後作者想給一段結語,現代的學校就是一個失敗的教育性質機構以及一套失敗的現實社會入門系統。現在的社會與科學那麼進步,已經完全改變了我們攝取知識的方式。學校現在看起來已經變成完全沒有效率且過時的。

作者很高興他決定不再上學,而可以去選擇了一個他真正想要的人生。他也希望你也可以這麼做(找到想要的人生)。你值得更好的。

作者:新加坡的:Amos Yee

以上的內容,夠震撼人心吧。你知道這個作者現在幾歲嗎?他 16 歲。

這麼超齡的觀察,思考,以及論述。完全不是這個年齡的人可以講得出口的東西。如果我完全不說,光看文字,你會覺得這是一個四五十歲反抗學校的教育家才寫得出來的東西。

不過,他現在的狀態是:被新加坡政府抓起來丟到精神病院了。

原因是他也拍了這個 Video。他慶祝了李光耀的死,且拍了影片有理有據的批判李光耀的作為其實陷新加坡人民於水深火熱。

是的,他就是那個傳言侮辱李光耀被抓起來丟進黑牢,被人批評只想紅的屁孩 Amos Yee。這兩人是同一個人。

(請花一點時間也看完內容,有理有據。這樣的內容在台灣尺度根本沒什麼,但他被新加坡送進黑牢了。)

本來我看到新聞,只覺得國際上一直在吵這個新聞,幹嘛沒事國際組織要一直吵,保一個屁孩。(新加坡新聞上也一直把 Amos Yee 塑造成一個精神有問題的屁孩)。

直到我今天覺得太煩了,還是認真去找了一下這個屁孩到底是多誇張。才發現誇張的是「新加坡政府」。這孩子是個深沈的不世出天才。新加坡政府是真的怕了他才要毀掉他。

看完了他更多影片(這是他十四歲時拍的影片 How to Speak Singlish):

我更相信他不是想紅的屁孩。而新加坡正想要把這個未來有無限可能且超有才華的年輕人毀掉。(新聞:辱李光耀少年 被囚精神病房 手腳被綁想自殺 http://news.memehk.com/posts/7594)

我看了很難過,也不知道能為他做什麼,於是我把這件事寫在這裡希望引起更大的關注。他只是在錯誤的時間點發出了值得深思的言論。他不應該罪至被毀。

加註:他也曾經拍過梁智強的小孩不壞,在這個採訪影片中,梁智強坦承當初是在一個短片中挖掘到他,擄獲他的原因是這一個14歲的小孩有20-30歲人的才華智慧,根本是在裝小。

 
about 2 months ago

新課公告:這個班是為了想快速進階 Rails 實戰,想大幅提升戰鬥力或想學習做商務 Rails 產品的開發者/創業者所開。

上課時間/ 報名網址:

報名網址:http://rocodev.kktix.cc/events/rails-e-commerce-2015-07

共四次 12 小時,大量實作。有紙本與電子講義

  • 7/13 (一)19:00 - 22:00
  • 7/20 (一)19:00 - 22:00
  • 7/27 (一)19:00 - 22:00
  • 8/03 (一)19:00 - 22:00
Read on →
 
about 2 months ago

這個問題也是 Frequently Asked Question。大概會發生在學 Rails 半年或一年後的 Developer 身上。我會推薦兩個解法:

1. 找一個願意「罵你」的導師給你方向

注意,我這裡講的是「罵你」不是教你。出社會大家都是成人了,沒有人有義務「教你」,公司是上班賺錢的地方不是學校。有前輩願意「提醒」你的成果需要修正其實已經要心存感謝了(如果你工作年資只有一年,可能無法體會。工作到第二三年就知道這是什麼意思了)。

不要抱怨前輩都「不教」,人家願意「罵你」已經是願意花時間提醒你做不好的部分修正。如果人家默默的都不講話放你去跳坑,你可能已經被同事打報告建議上司開除了。

找到一個願意「罵你」的前輩,可以讓你學習的速度加快不少。畢竟學習最困難的天險是「你不知道自己不知道哪裡不行」。

Read on →
 

宣傳連結

  1. Rails 實戰指南

    Buy Rails 101
  2. Rails 應徵寶典

    Land Dream Rails Job