開放的力量—破解GitHub的發展密碼

發表於2014-09-03

GitHub :

一個共享虛擬主機服務,用於存放使用 Git 版本控制的軟體程式碼和內容專案。它由 Chris Wanstrath、PJ Hyett 和 Tom Preston-Werne 用 Ruby on Rails 編寫而成。

—維基百科

但是這項服務逐步演變成為了開源軟體開發與管理的社群,其開放一切的夢想實現了軟體開發的虛擬化。這股力量是強大的。成立 1 年之後不久公司就吸引了 10 萬使用者。2012年GitHub獲得了A16Z的1億美元融資,表明了 VC 對該公司的信心。同年,GitHub 入選了福布斯評選的十大技術公司。

GitHub 只用了不到 4 年的時間就讓庫(repository,用於存放共享程式碼的歷史版本)的數量到達 100 萬。到了 2013 年 1 月,GitHub 使用者達到 300 萬,庫數量達到了 490 萬。而且顯然還在以更快的速度增長,截止 2013 年 12 月,GitHub 的庫數量突破了 1000 萬,其中最近新增的 100 萬是在 48 天內實現的。


GitHub 的使用者裡面不乏大牌客戶,包括 Amazon、Twitter、白宮等。Facebook 用 GitHub 來開發自己的漏洞跟蹤工具、LinkedIn 用它來維護其 People You May Know(你可能認識的人)及 Skills & Endorsements(技能與推薦)功能。

那麼 GitHub 是如何從一個自稱的“業餘專案”變成每週新增使用者超過 1 萬的全球最強大的軟體開發工具的呢?

解決問題

說到 GitHub 不得不提 Git。這是 Linux 的創始人 Linus Torvalds 針對 Linux 核心開發而開發的一款版本控制工具。開發者迅速接受了 Git,因為它要比其他類似工具更快更強大。因此,算不上完美的 Git 被視為當時其他的版本控制軟體的升級版。

而 Preston-Werner 注意到,儘管 Git 為令人頭疼的協作問題的解決提供了可能,但是用 Git 來進行協作仍比較困難,這一觀察導致了 GitHub 的誕生—一個通過 Git 解決協作問題的解決方案。

而 Chris Wanstrath 是這樣解釋的:

開始時 GitHub 只是一個業餘專案。在當地舉行的一次開發會議結束之後,我和 Tom Preston-Werner 去了一個體育酒吧,他告訴了我做 Git 託管網站的想法。這個地方應該能夠很方便地共享程式碼和學習 git,也即要成為一個 git 的集散地(git hub)。我們都很熱愛 git,但是卻沒有可接受的方式來分享程式碼。所以我們做這個更多地是出於必要。Tom 認為我會對解決這個問題感興趣的,的確如此。

GitHub 自始至終都是作為問題的解決方案而存在的,網站成功不僅僅是因為它解決了最初的問題,還在於它在 Git 原來的功能基礎之上新增了許多自己的功能。包括 forking(複製)、pull request(修改合併請求)及 merging(合併)等。正如 Code School 的 Gregg Pollack 所述:

在 GitHub 之前,如果你希望為開源專案做貢獻,你得人工下載專案原始碼,在本地做出自己的變更,建立一系列叫做“補丁”的變更清單,然後發電子郵件給專案維護者。維護者然後得對可能完全來自陌生人的補丁進行評估,然後再決定是否合併變更。

相比之下,GitHub 的“forking”功能可讓使用者複製任何一份公共庫的內容到自己的賬號上,然後基於此進行修改。使用者隨後還可以通過“pull request”將這些變更共享給庫的所有人。如果所有人喜歡其做出的變更,就可以把那些變更合併進原來的庫內。

這個新流程把之前進行軟體協作時的一大堆開銷和摩擦通通省掉了,取而代之的是無縫、可管理且可擴充的解決方案,每一個人都可以共享在 GitHub 上公開分享的專案,或為此做出貢獻或進行擴充套件。

擁有私有賬號和庫的 GitHub 客戶也可以在團隊內部利用同樣的功能,從而對自己的專有程式碼進行開發和管理。

網路效應+市場


上述功能特性吸引到最初的一批使用者,然後又為其他開發者參與和加入創造了一個很有力的理由。在網路效應的推動下,這個天才的工程師中心和專案庫每一天都在不斷地吸引著新的使用者。

GitHub 的這個獨特優勢也是他最強大的增長引擎。GitHUb 同時受到了網路效應和市場動態的推動。公司受益於兩個獨特且倍增式的增長驅動要素:網路效應吸引到更多的人和他們的程式碼,而不斷增長的程式碼庫又為那些給自己的專案找程式碼的人扮演了集市的角色。

這一雙增長引擎的結果是兩大資產的確立:

1、 Web上計算機工程師最重要且最具活力的社交網路
2、 為那些替自己的專案尋找程式碼素材人準備的大規模的程式碼庫

這兩大資產為其自身發展提供了持續的動力。新使用者通過多種渠道被源源不斷地吸引進來:如程式碼搜尋、現有 GitHub 使用者的邀請、或者通過開源專案的協作等。

GitHub 被稱為是“程式碼樣例的亞歷山大圖書館”,如 Preston-Werner 所述:

網路效應太出色了。現在有了基於 GitHub 的標準,每個人都可以建新專案,然後馬上知道去哪裡找程式碼,如何給開發做貢獻,如何稽核程式碼,如何提交問題給程式碼庫…做這些事情的人越多,效應就越強大,從這個統一、知名、規範的系統中得到的東西就越多。而且這一切發生得實在是太快了。

這是一種最好的網路效應,上GitHub的人越多,GitHub上的專案就越多,它對每個人的價值也就越大。

隨著 GitHub 成為許多開發者和公司事實上的標準,那裡逐漸匯聚了最偉大的程式設計思想,讓眾人合力開發東西,GitHub 不僅促進了這一切,還把過程記錄下來供他人觀瞻。GitHub 的檔案跟蹤了使用者對網站上的專案作出的貢獻。一旦使用者提交了 pull request,專案經理就會像瞭解簡歷一樣評估該使用者的檔案。如果補丁獲得接受,那麼該使用者的檔案上又會增加一項榮譽。

GitHub 的網路效應是充滿活力的,因為每一個新使用者—無論是個人或者公司,都有可能帶來更多的新使用者。公司一旦決定加入,有可能就會把整個團隊都帶了進來,或者反過來,熱愛 GitHub 的個人也會把整個團隊都吸引到該平臺上來。

網路效應還會吸引那些希望與 GitHub 上的開發者共事的人進來。技術營銷人員和其他的專業人士現在利用 GitHub 作為接觸開發者的手段,這裡的一切都是開源的,資訊開源、書也開源,還有人把平臺當作寫部落格的工具。這些用途都超出了原來 GitHub 的用例範圍,但卻幫助了平臺的推廣並形成一個不斷髮展的網路。

口口相傳

除了網路效應和市場這兩個驅動力以外,GitHub 的增長還部分得益於口口相傳。要想實現口碑營銷並不是增加“轉發”和“喜歡”按鈕那麼簡單。相反,好口碑靠的是內容、體貼、解決問題還有易用—換句話說,產品和服務的體驗才是關鍵

GitHub 的口碑來自它給人帶來的驚喜和愉悅,而這些帶給人的驚喜,不是說出來的,而是做出來的。說得好不如做得好,而帶給人的驚喜會使人自願為 GitHub 代鹽。

口口相傳的另一個關鍵驅動是“超級粉絲”,這些人不僅喜歡產品,而且也是最忠實的公眾支持者或批評者,在臺上臺下幫助你渡過難關。而產品或服務獲得口碑的關鍵,正在於它能帶來驚喜、帶來快樂,能有所幫助。

免費增值

跟 Evernote 一樣,免費增值也是 GitHub 的一個重要的增長因子。雖然 GitHub 協作、民主化的開發哲學需要免費才能讓大家使用,但 GitHub 的創始人從一開始就清醒地意識到,就其本質而言,這項服務是要耗錢的。如 Wanstrath 指出那樣:

Tom(Preston-Werner)在自己的上一家創業公司 Gravatar 學到的一件事情是,免費提供資源密集型服務是虧本生意。Gravatar 的圖片託管很耗流量,而 GitHub 託管 git 需要儲存和傳輸程式碼,這也是非常耗錢的。我們需要收回這些成本。

幸運的是,GitHub 免費的測試版的推出讓它無意間走到了免費增值模式。GitHub 的許多使用者一開始都是出於免費在上面搭建自己的公共或私有庫的,但久而久之,越來越多的人也開始用它來管理自己的商業程式碼。

然後那些人開始發郵件給 GitHub 主動問管理自己的私有庫應該怎麼付錢。創始人們開始意識到,除了收回成本以外也許他們還可以做得更多—把它做成一門生意。於是他們決定,一方面繼續免費提供無限制的公共庫,但是私有庫則要付費。既然人家都想給你錢了,怎麼好意思不要呢?

GitHub 現在的定價模式就是這麼來的—公共專案免費,私有專案收費,個人 7 美元 / 月,組織則是 25 美元 / 月。此外,還有年費達數百萬美元的企業級服務,像洛克希德馬丁、微軟、LivingSocial、VMware 及沃爾瑪等都是其客戶。

一般而言,免費增值模式都會碰到一個問題,即通常給不出具有吸引力的讓使用者從免費升級到付費的理由。而 GitHub 的免費增值模式則避免了這個問題。如果你渴望使用 GitHub 的工具,但又不想別人看到你的東西,那麼切換到付費套餐就成為了那些希望使用 GitHub 的公司的自然之選。

開源冠軍


GitHub 的協作架構不僅令在現有開源專案基礎上開展工作變得更加容易,對於開源新專案來說也是如此。公司和個人現在可以把自己之前不公開的專案開放出來,然後讓社群的人幫助改進。

這一變化的影響是非常大。如果公司希望開源某個專案,就會面臨前面提到過的那些版本控制和補丁問題。在時間和頻寬有限的情況下,大多數公司都不願為了開源帶來的機遇而投入所需的時間和資源。有了 GitHub 以後,這些公司開源自己的專案變得容易多了。補丁管理、版本控制以及程式碼託管等麻煩事通通都交給 GitHub 處理掉了。

這一點導致了一系列頗具知名度的專案開源化,包括 Twitter 的 Bootstrap、Zurb 的 Ink,社群的人可以免費使用這些東西,專案本身也不斷得到改進。GitHub 為這些公司提供了一個此前無法做到的回饋社群的手段,從而以一種有意義的方式推動著開源運動的發展。

相關文章