Apache Member姜寧:Apache的社群發展(圖靈訪談)

盼盼姐發表於2012-07-19

圖靈訪談之三十(1):——專訪Apache Member姜寧

2012年7月14日,圖靈社群對來參加“我們的開源專案”的幾位朋友進行了一系列訪談。他們中有十年前就涉足國內開源領域的開拓者,有作為Apache Member的技術精英,有在國內開源社群玩的不亦樂乎的極客,也有因為畢業設計而和開源結緣的畢業生。他們有著不同的夢想,不同的問題,卻都有著相同的特點:對未來充滿希望。從他們的身上,我們可以體會到這些朋友的苦楚和快樂。也通過這些截然不同的聲音,讓我們嘗試著閱讀中國開源社群的現狀。

姜寧 微博:@姜寧willem 部落格:http://jnn.javaeye.com

Apache Member, RedHat首席工程師,專職參與Apache旗下多個開源專案 Camel, CXF, ServiceMix, ActiveMQ 開發的攻城師一枚。

enter image description here

圖靈社群:你的自由軟體職業生涯是如何開始的?

我並沒有刻意做這些事,開始的時候可以說機遇比較好,只是去公司上班而已,但是剛好有那麼一個開源專案,我一看大家都去了,我也就搭順風車一樣的去了。我曾經有一篇文章就是說我如何拿到提交程式碼許可權的,一開始的那個專案在初始化的過程中需要一些提交的人,門檻也很低,於是就簽了協議上了專案。但是在之後做Apache camel的時候還是有一些困難,那個專案(準備過程)大概有半年的時間,前前後後提交了十幾個patch,當時恰又趕上北京公司要關門,所以感覺很茫然。於是我寫信給專案的創始人,詢問有沒有什麼辦法可以讓我一直做下去。他說你已經達到要求了,我們可以開始投票了,我們會把你選成提交者的。

圖靈社群:也可以說是在這樣的機會下,你對開源軟體產生了感情?

是的,我實際上是通過一個偶然的機會,和之後的不斷學習,在接觸更多的專案的過程中,逐步的才真正瞭解了開源專案。前段時間我也是剛被選成Apache Member。

Apache的專案絕大多數都是公司出資來僱人做。這和國內絕大多數人的情況有所不同,他們大多是自發的來做一個專案。我本人在Apache做了很多年,加之國內的開源環境還是不太理想,做國內的專案會很不習慣。就我現在的工作來說,起點和平時公司的專案差不多,但是同時還有做開源專案的機會。最重要的是,可以和世界級大師學到很多東西。這樣得機會在國內還是比較少的,但是令人欣喜的是這樣的機會也在增加,比如說象openstack這樣的社群,以及很多大公司其實已經在這個領域有所動作。

圖靈社群:到目前為止對軟體行業最大的成就和貢獻是什麼?或者說你希望未來能做的貢獻是什麼?

要是拼寫程式碼我是拼不過很多大牛的。我只是想在社群裡繼續混跡下去,其實成為Apache Member也是這其中的一部分。這其中沒有什麼大而虛的理念。去年在Apache meetup的時候我也和大家說過,其實現在很多人對這方面還不是很瞭解。oreilly做過很多這方面的書,圖靈應該也比較瞭解。我就是想告訴更多人怎麼玩。

一直以來我都沒有刻意去做什麼但是長時間下來這已經變成了一項事業,而不僅僅是一項工作。很多人自嘲為碼農,就是好像被甩著鞭子來幹活一樣,很痛苦。我們在做的時候都是想怎麼把程式碼做得更好更漂亮,因為那是要馬上接受檢驗的。而如果是被催促著寫程式碼的話,沒有人會把一個功能寫個三四遍,(程式設計師的)活只要對得起拿的錢就可以了。更有甚者,有人會故意寫幾個bug,反正我要走了(離職),等著別人來踩我的雷吧。沒有人在這種情況下回想方設法再去提高自己的能力。而對於我們來說這(寫程式碼)是一個自激勵的過程,相當於一個自己養的孩子,你要從始至終對它負責。

圖靈社群:跨文化協作也是你面臨的一個問題吧?

首先是時差問題,這是必然的,專案大多數人員都在歐美,比如說開會時間可能在凌晨三點左右。Apache member一年會開兩次會,雖然會考慮所有人的時間,但是到了我們們這也只能是三點了,就像看足球一樣。然後就是文化方面了,比如說最近有一個很好的專案但是死掉了,很多人都曾為這個專案貢獻程式碼,包括很多國內的團隊。(死掉)的原因首先是衝突的許可證,但是還有另一個問題,就是因為國內沒有專人來協調這個專案。Apache已經存在了十幾年的時間了,他現存的邏輯和哲學還是很成熟的,Apache每年會開一次大會,其中有一個track完全是關於社群建設方面。但是國內沒有人對這方面有足夠的瞭解。國內的文化環境讓很多人一直以來習慣於被動著做事,技術創新需要打破固有的一些東西,我們就很難產生傑出的領路人。但是現在的環境比起幾年前已經在好轉了,很多大網際網路公司已經在投入人手專職來做這些事。現在很多人已經加入到社群裡來了,這和以前有很大分別,原來我們還只限於使用者級別,現在還是在朝好的方向發展的。

國內環境的另一個問題就是很多很優秀的coder,寫了幾年程式碼就不再寫程式碼了,他們會變成管理層。而開源社群是需要你長時間的投入,並以此為樂的,這樣才是一個好的環境。我在現在的專案上已經六七年了,還沒有做管理層的訴求。

圖靈社群:這和你背後的公司對你的支援是分不開的

是的,他們是一家很不錯的公司,找到了一條很好的道路,現在年收入已經融資超過十億美元。我每天不需要上班,老闆也很信任我們,管理很寬鬆。

圖靈社群:你認為這有可能稱為中國老碼農的一條出路嗎?

這是有可能的,比如說Nginx。其實只要你持續地做,最終的東西肯定會被大家所認可。只要你肯鑽研,願意堅持就可以做下來。其實語言並不是決定性的阻礙,只要你敢於參與和交流,在社群裡積極地回答問題。

這是一條明擺著的路,但是需要個人投入時間和精力,只要投入,就一定會有回報。這個回報是多方面的,首先你的工作能力肯定會提高,另外還有一點,就是你不用再被逼迫著去做什麼事,而是在工作中找到了樂趣。所以希望大家都可以知道有這麼一個圈子,都來混吧(笑)。就像混江湖一樣,在這過程中你的meritocracy(類似於聲望)就會不斷提高,你的等級就會越來越高。這和現在一些回答問題的網站的模式很類似。這樣就可以鼓勵大家為社群作貢獻。象你們圖靈社群不是有銀子什麼的嗎(笑)。同樣都是一種獎勵機制,對會員起到正向引導作用。

圖靈社群:你認為中國開源環境的最大問題是什麼?

我覺得最大的問題是大家還沒有找到門兒,不知道怎麼進來“玩”,從這點上來說,其實開源是不分國界的。但話說回來,語言障礙還是有一些,有一個分析報告說我們們在這點上和日本的情況有點象。

但更重要的問題是我們仍然大多數停留在“用”的狀態,而且是悄悄的用,這樣一來社群的氛圍就不是很濃。國外在開源方面做得比較好,和社群的健康發展是分不開的,其實我們(國內的工程師)人數很多,拿到專案是很容易的,一般來說有三分之一時候可以拿下來,但是真正能持續做的人很少。

真正在Apache上做開源的人不多,圈子很小,其實有感興趣的人,比如學生,如果可以持續做下來,收益是很大的。比如說比較容易找工作,然後你就可以全身心的投入到專案中來了,沒有了後顧之憂。這是一個成長的歷程,從一開始類似於黑客這樣以興趣為導向的,然後到後來有一個商業環境來幫助你,這樣才是一個成熟的鏈條。我認為這有可能是國內最缺乏的。這再一次說明國內的環境不太好,如果大家只是使用,而不去反哺社群。有些人甚至自己做出了patch也不願意分享出來,這樣就無法完成一個迴圈的全過程,這樣社群就無法成長起來。

與之相對比的是很多牛人他們並不吝嗇於自己好的點子,他們樂於分享和討論。而且大多數這樣的人是不愛說空話的,大家要是覺得好,他就會寫出來,大家來用,他收到的反饋也會很迅速及時。這和(在)商業公司(裡工作)是完全不同的,很多程式碼提交之後,可能要等半年才有人反饋,這在開源界是無法想象的。在開源領域快速反饋和迭代可以使專案迅速的成長。而這都是社群這樣的環境所能給予專案的,可能只需要3、4個人領著頭向前走,經費的投入也會較少,因為(我們)利用了社會化的網路來完成一個專案。

圖靈社群:這也正是社群存在的意義吧?

Apache更看重的並不是你能寫出多棒的程式碼,而是你能為社群所作的貢獻。現在來說,比如說github上面會有很多各種各樣的專案,你總能在上面發現很有趣的專案。

開源的許可證在這其中是個有意思的東西,它放開了許多口,但是如果你不抓住社群的話,(專案)最終有可能會不為你所控,比如說我可以很容易作出一個山寨版。但是隻要你抓住社群,你就可以繼續做你的專案。比如說Hudson開發者社群的那個例子,這緣起它與Oracle硬體套件之間在java.net上的各種摩擦,開源的持續構建專案Hudson計劃另開分支並更換名稱,而社群上的人都會跟隨社群離開Oracle。這就是這樣的一個例子,社群是十分重要的,而國內(包括淘寶)的社群建設還不是很成熟,不夠透明和開放,需要克服這些障礙(社群)才會吸引更多的人進來一起“玩”。

圖靈社群:你個人傾向的開源許可證是什麼?其背後的原因呢?

許可證是這樣一種東西,它允許你修改程式碼和改進,並用各種各樣的協議來保證它。其實什麼樣的許可證就會決定社群朝什麼方向發展。商業公司之所以願意僱人在Apache上作共享,其實就是因為他們的許可證是商業友好的。如果他們投入一些人力,就可以確保專案朝著期望的方向發展,同時還可以用專案進行商業化的運作,這樣就可以給這些人開工資,達到商業上的平衡。為什麼大家願意用(Apache許可證),就是因為(商業上)使用起來很方便,這樣用的人多了,社群自然就壯大了。

我做過的camel專案有些不同,因為它需要用到各個方面的庫,所以會涉及到第三方。比如說會涉及到GPL協議,這樣就迫使我們必須使用GPL協議。所以我們只能另起了一個專案,用GPL協議,其實對於終端使用者來說,這沒什麼區別,但是對於我們來說則不同,因為我們需要釋出這個軟體。許可證這東西細說起來規矩很多,但是在國內大多得不到尊重。大家都是隨意拿來用,這時我就會說:出來混遲早是要還的。這是原則性問題,很多網際網路公司存在這樣的問題,用開源軟體肯定可以降低成本。

國內對於盜版的使用變成了一種氛圍,這其實是踐踏了許可證。通常人們不會閱讀使用者協議,比如說很多人做了qq外掛然後被抓,這其實都是在協議裡面寫著的。但是對於開源來說,對於終端使用者的限定是非常小的,幾乎沒有什麼限制。這也是開源軟體的初衷。越是面向於極客型別的使用者,就越合適,因為他們就是想要改變一些東西。這個時候其實無論給不給他們原始碼他們都想去改。

圖靈社群:對開源軟體有興趣的人,你有什麼建議?

找到你感興趣的點來入手,然後就來社群上混就可以了,否則只是看文件什麼的其實是很無聊的。但是有一點要注意,在問問題的時候一定要經過思考,而不是一有問題就馬上發問。我也經常會看見這樣的問題,但是如果你有更好的建議,或者你能說出功能上哪些地方有問題,你就可以把想法寫出來,甚至是把程式碼寫出來,這樣就會收到有效的反饋。甚至你的英文不太好,都不是什麼問題。只要你肯持之以恆、足夠勤奮就可以了。還有一點就是要積極地回答問題。只要掌握這三點,其實一個普通程度的人就可以啟動了。知識改變命運,想通過開源專案獲取知識,只要你願意,地球上沒有人能阻擋你。 在這裡不拼爹,不拼公司背景,拼的是對技術追求的那顆心。


更多精彩,加入圖靈訪談微信!

相關文章