Facebook 發布「流程」


時不時就會在面試過程中碰到有候選人問 Facebook 是否采用 Scrum 之類的敏捷方法,偶爾也會有中國的朋友問及 Facebook 上線流程。我通常會簡單說幾句,然后說「如果你真感興趣的話,去搜索 Chuck Rossi 在 Velocity 2012 San Fancisco 演講的視頻」。無論從 Scrum 的角度來看,還是大多數中國公司的上線流程來看,Facebook 的發布流程都顯得很不一樣,但其實又非常合理,看完那個視頻你就明白了。盡管里面提到的內部工具都沒有在 Facebook 的 GitHub 上開源,但那些截圖已經足夠清晰說明其功能和用途了。

工具固然是重要的一方面,但我覺得更重要的是文化。我知道很多中國公司的上線流程都涉及各種簽字,例如我在百度的時候上線就需要 RD、FE、QA、OP 等眾多角色簽字,有時候還需要對應經理甚至總監簽字。相對這種上線流程來說,Facebook 的發布流程簡單得很反流程,這也是我為標題中的「流程」二字加上引號的原因。考慮到我之后會專門寫一篇文章討論文化,所以在這里就不深入展開了。

至於工具,最重要的就是通過引入自動化來解答一些簡單但涉及大量手工操作的問題。例如視頻當中提到的,「一個 PHP 異常是由哪個 commit 引入的?」在沒有工具的情況下,這只能手工 git bisect 來查找。萬一這個異常不是穩定復現的話,那基本上就沒辦法定位到 commit 了。Facebook 的工具能自動把異常堆棧跟蹤里面每一幀和 git blame 關聯起來,再用異常發生頻率的歷史圖譜跟 commit 合並時間做對比,很容易就能得到答案。

最后,如果你看完這個視頻覺得還不滿足的話,可以去看看 Jay Parikh 在 Velocity 2012 Santa ClaraGirish Patangay 在 Velocity 2012 London 的視頻。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM