天天看點

沃爾瑪實驗室 —— 為什麼我們要啟動開源計劃

在未來的幾周,我們計劃釋出一些由todo團隊成員撰寫的文章,解釋每個企業下決心去啟動開源項目、使用并提升開源軟體的原因,以及由此帶來的便利。首先來傾聽沃爾瑪實驗室 dion almaer (@dalmaer) 的聲音。

為什麼公司願意在開源項目上耗費成本, 為什麼确實有必要這樣做?

這是很棒的問題,并且随着時間的推移,我的觀點也可能在某些方面發生改變。從職業生涯的初期,我就一直緻力于開源計劃,也參與了一些優秀的開源項目,比如說apache,之後當我加入chris dibona在google的開源項目團隊,發現了一個特别有意思的現象。那是一次真正的洗禮。不論是chris便簽上"我又要心驚膽顫的為那家夥工作了!"的名言,還是他不可思議的提供一些使工程師受益良多的開源架構,都潛移默化的促進了業務。

過去,開源工具以及廣泛性并不及現在,于是,google code 以及其它的解決方案,從開源組織裡成長起來。

讓我們将視線快速轉移到現在。

您的公司處于尋求偉大開發者的激烈競争中

全世界有很多偉大的開發者,您的公司可能正努力争取盡可能多的設計師。由于供不應求,是以,您需要極盡所能的吸引和教育訓練人才。

大多數偉大的開發者都有github檔案,并緻力于那裡的項目(開源項目或其它)。github已經無處不在,大多數開發者要麼喜歡它,要麼樂于待見它。這裡有一些灰胡子的人(指有一定資曆的年長開發者)針對perforce或者其它事情大喊大叫,但那畢竟是少數:)

一則簡短的轶事:我認識的一位偉大的開發者應聘到一家一流的公司工作。當他被告知,它必須使用舊的java棧工作,同時工作流并非基于git的時候,他基本上就選擇放棄這份工作了。

你使用和建立的開源項目是招募利器。如果你正在使用react,你将會有大量的開發者,他們可能正在尋找使用這種技術工作的項目。如果你建立了react,你将有機會找到工作于這個項目的核心團隊!

在沃爾瑪實驗室,我們有類似的情形。我加入到建立沃爾瑪實驗室的移動端的工作中。我們需要建立流程編排服務層,因為目前的後端不支援移動功能。我們該選擇什麼?

我們決定選擇 node ,不僅僅是因為它是一種适用的技術,同時我們還可以帶來全世界的開發者團隊,他們急切渴望建立大規模的node服務。

對比下面的:

嗨,你希望建構處理沃爾瑪黑色星期五業務流量的node服務,同時向全世界證明node是可行的嗎?

vs.:

嗨,你願意建構另一個java服務用來路由一些東西嗎?

綠色的通道使得團隊可以做一些偉大的工作,并且我為他們建立的端對端的工作流感到非常非常地驕傲。

盡管在很多年前,node岌岌可危。因為我們在node裡面發現了很多bug(有時隻是一個s/compiler/vm/上的bug),并且發現當時node這個架構還未能支撐項目的開發和使用。這正是hapi node架構誕生和衆多基于node子產品群起的原因。

我們當時需要建構對應的團隊,是以我們需要召集團隊成員,不過還好我們有這樣的優勢:

我們可以從hapi社群大量的開發人員中物色拉取成員

已有大量不僅僅是關于開源魔法般的權衡,同時也被用于解決實際問題和傳遞商業價值的工作

從那時起,開源所帶來的好處開始光芒四射。當你需要招募一個天才,你需要一個流程來篩選識别出哪位能夠勝任此工作(同樣對他們而言,他們也在篩選你)。

面談的過程就像是約會。在一兩次約會之後,你很難确定你是否想結婚。我發現,婚姻是否持久以及是否令人滿意的最好的方式是,多一些約會,更好的感覺什麼是婚姻。

當你面試一個以開源為核心的團隊的時候,你可以和他們一起解決問題清單中的問題,真正感覺做事情的狀态。它是一個極好的優勢。

開發者是當代的藝術家

當你想到it商店的時候,我不認可,而将它關聯到“高品質軟體産品開發”。如果你在建立一個偉大産品設計的文化,你需要想辦法讓開發者繁榮起來。對我來說,這意味着有正确指導方針的獨立自主權可以取消束縛。

如果開源程式辦公室的工作有序開展,這個模式很适合。糟糕的是,它們隻由律師來打理,僅僅隻關注許可證和責任。這些是很重要的話題,你不應該忽略它們。但是,你如何才能幫助開發者建立解決方案,而不是浪費時間在那個漩渦裡呢?

偉大的開源處理過程會有各種清單,它可以快速處理完,同時将公司的開發者從a到b的過程中釋放出來。我們正在談論如何使用開源軟體,以及如何建立和維護它。

開源團隊開發的工具有很大的影響力,單獨的産品團隊不應該花費時間在下面的事情上:

如何知道正在使用什麼開源軟體

标記任何問題

回報團隊“那個版本由于x而不被推薦”

幫助市場項目(線上,事件等)

提供給上司者項目的一些狀況

幫助上司者了解圍繞項目的社群

預設情況,以及關于人們如何貢獻和參與的簡單處理流程

github有一些這樣的工具,不過隻是一個子集。

繼續閱讀