第27章 工程師驅動文化(1 / 1)

Facebook的工程師不見得將所有時間都花在寫代碼上麵,有很多時間要用於思考、設計和跟產品經理的合作這些事情上。在整個產品開發過程中,工程師和產品經理所起的主導作用是60∶40,而對於後台係統則幾乎是100∶0。

既然對工程師的素質要求這麼高,那麼他們的工作職責也會與一般的理解有所不同。在Facebook,工程師被當作公司發展的驅動力,在產品開發過程中扮演著引導性的角色。我們在很多公司裏可以看到,工程師在很大程度上隻是被當作一個執行者,由技術經理(EM)和產品經理(PM)來決定他要做什麼。這一點,我在雅虎的時候就見識過了。雅虎的產品經理需要工程師在同意一個項目計劃表之後在上麵簽字,工程師更多的是被外界壓力驅使著,並非自我驅動去打造產品。Facebook則希望,從剛對某一產品進行方向性討論、選擇的時候,工程師就要盡可能地參與其中,提出自己的想法,工程師會參與從產品的構思、設計到打造的整個過程。在Facebook,很常見的情形是,工程師會花很多時間去思考產品為什麼要這樣做,既有20%~30%產品經理的心血,又有工程師的能力,可以用代碼將想法實現,這種人最適合做產品工程師。

我在做“禮品商店”(Gift Shop)時,這個產品開發小組裏,我是工程師,還有一個產品經理,一個設計師,我們三個人就經常在一起討論究竟做什麼功能、做成什麼樣、可行性有多大、做成這樣要多長時間等問題。我們經常吵架,經常在一個小房間內待到晚上八九點。我們最後都會互相妥協,互相認同彼此的專業和強項,達成一個讓人興奮但也有點忐忑不安的方案。Facebook絕大多數產品都讓人帶有這種矛盾的心情,很少有“這樣子一定能成功”的感覺。所有定稿的方案,都是當時我們盡力能想到的最好方案,“我們來試試吧”,然後通過數據的反饋繼續改進。進行產品討論時,每個人關注的側重點可能不一樣:要做成什麼樣,主導權在設計師,但其他人完全可以自由提意見。我要是不喜歡做出來的樣子,我就會提出想改進的地方,讓設計師重新修改一個版本;產品經理大多時候在想我們做出來的這些功能有哪些用戶可能會用,這個功能究竟有沒有意義,對於產品來說是不是最重要的,等等。比如對某個產品,我們可能先設想了十幾項功能,但希望能在兩周之內先推出最重要的前五個功能,那究竟怎麼選優先度,這就需要工程師和產品經理、設計師進行討論。對於工程師而言,這些討論的結果會決定他們接下來幾周忙活的內容,當然要積極參與並推動。

所以,Facebook的工程師不見得將所有時間都花在寫代碼上麵,有很多時間要用於思考、設計、跟產品經理的合作這些事情上。據我了解,很多中國公司裏,在整個產品開發的過程裏,產品經理的影響力可能達到80%~90%,剩下部分才是工程師。而在Facebook,產品工程師跟產品經理影響力的比重可能是60∶40,而後台係統方麵,由於產品經理絕大多數情況下不需要參與,除非是直接關係到前台係統,兩者影響力的比重幾乎到達100∶0。要知道,在Facebook很晚才單獨設立產品經理這個崗位,大概是在2008年。最初的幾位正式的產品經理,大多是從工程師角色轉換過去的。公司確實想讓工程師來主導產品開發,這樣才能真正激起他們的責任感,圍繞產品進行全方位思考,才能真正對自己開發的產品負責。

對於工程師主導產品開發的文化還體現在:每月的跨部門 會議上,由工程師來彙報工作進度,產品經理、市場部代表和營運部代表等會出席會議,也鼓勵他們做簡短的發言,但一般不會說得太多。開發某一產品時,如果想法起源於產品經理,那麼產品經理需要去遊說工程師,讓他們對自己的想法產生興趣,認同理念以致投入精力。對於產品功能優先度的選擇,鼓勵由工程師們做出決定,而技術經理和產品經理在了解、理解的前提下一般都會予以尊重。