有了目標以後,會產生很多相關的想法(Ideas),但很難判斷究竟哪個想法一定能幫你達到這些目標,你也不可能把所有的想法都試一遍,往往到最後都需要你有理有據地進行“賭博”,把精力押在某幾個核心的想法上。這就對人的要求比較高了,也是Facebook要招最好的工程師的原因之一。工程師不僅要善於寫程序,也要有選擇想法的能力,你要對這個問題有很深入的思考,進行大量的分析,還要有膽量,才能果斷押注,並且有很高的命中率。
那麼,這些想法從何而來呢?最自然的方式就是之前延續下來的、大家明確知道要做的項目,而那些不明確的想法,才是難點。在發展非常快的公司裏,絕對不會缺少這種不明確的想法。在Facebook,一般是由技術經理、產品經理、工程師貢獻大量的想法。由於和產品相關的想法比較容易產生,而對於基礎架構的需要經常被忽略,在Facebook,很多組都特別強調後台工程師要主動思考未來一段時間內應在後台係統上做哪些開發,以配合我們產品的發展需要。另外,商業運營(Business Operation)那邊的同事也會傳過來一些想法。做下一個月計劃時,我會在當月25日左右開始給相關人員發一個一周後的頭腦風暴(Brainstorming)會議邀請,並希望他們在會議之前把他們認為應做的或者想做的事情發郵件告訴我,我可以事先分類整理,讓會議進行得更加高效。當然,線下的討論、分享等也是產生想法的好機會。
收集了想法之後,就要開始頭腦風暴了。一個做法是:先列出設定的目標,再在這個目標的指引下去思考哪些想法可以為之服務。做頭腦風暴的原則就是要把“提出想法”這個過程和“分析想法”嚴格區分開來。在提出想法這個過程中,針對某個特定目標(比如Goal X),讓大家絞盡腦汁地集思廣益,但對提出的想法要克製住討論其優點與缺點的衝動。之所以這麼做,其中一個很重要的原因是:讓提想法的人沒有任何壓力,可以“肆無忌憚”地提,而不用擔心馬上可能會被批判。
等有了足夠多的、不錯的想法,接下來最為關鍵的一步就是分析想法——如何挑選出最可能產生效果的想法。理論上,如果有無限的資源,我們應該嚐試所有的想法。但在Facebook,任何時候都處於資源短缺的狀態,我們必須把有限的資源放到有可能產生最大價值的想法上麵。這裏,我要特別強調一下“Top X(隻做前X項)”規則:隻做對目標最有影響的前X項。必須要麵對一個非常殘酷的事實——80%的影響是從20%的工作上得來的。“Top X”的原則就是鼓勵大家積極地找出這20%的工作,應該著重在哪些想法上麵,這對工程師的要求非常高,也是發揮大家聰明才智的機會。我們會對所有的想法進行討論,根據每個想法對目標的影響和其所需要的資源(主要是人力與時間——“人周”)進行討論,然後排序(按P0,P1,P2……的方式來),最後挑選排在最前麵的幾項。這些會議通常是技術經理或者產品經理來主導,但要求每個參加的人積極參與,發表意見。這個過程看起來比較機械化,但和Facebook其他所有的流程一樣,這個過程隻有一個大致的指導意義。在討論過程中,工程師或者產品經理的個人激情,以及他們對一個想法的準備程度,會在很大程度上影響大家對一個想法的理解和支持程度。分析完後,對幾個明顯一定要做的想法很容易決定,對幾個要去掉的也很容易決定,關鍵是剩下的那些想法,沒有足夠的精力把它們都嚐試一遍,這就要考驗你的抉擇能力了。流程畢竟是死的,如果沒有很好的人參與其中、去激活這個流程,還是出不了好結果。我個人的一個經驗是,如果你想說服其他人采取你的想法,你需要兩樣東西。一個是故事,或者叫例子,就是為什麼這樣做有效,能不能讓你的說法有感染力,讓你的說法給人留下印象;另外一個是數據,讓你的說法有數據的支持,那麼可信度會高很多。