平衡的藝術:調整維護策略

工程 | Rod Johnson | 2008 年 10 月 7 日 | ...

經營一家公司至少有一點像寫程式碼:你不會總是第一次就做對,即使你知道想要達到什麼目標——但是如果你準備好在必要時重做一些事情,最終你確實會得到更好的結果。在 SpringSource,我們對最近宣佈的維護策略有一個清晰的願景:平衡開源社群、企業使用者和 Spring 創作者的需求,使所有人受益。然而,我們第一次做得不夠平衡,現在是時候進行一些重構了。

在過去的幾周裡,我再次意識到 Spring 社群的規模及其眾多成員的熱情。

我們一直在認真聽取社群的反饋——不僅是公共論壇上最活躍的聲音,還透過許多渠道,包括私人對話和電子郵件。

在聽取社群意見時,兩個問題突出出來:Spring 當前版本定期穩定釋出的社群可用性(如果未提供二進位制檔案,透過在 Spring 開源倉庫中對原始碼打標籤的請求表達出來);以及面向小型企業和小型系統整合商的定價。我們知道人們對 Spring 軟體以及我們改進企業級 Java 的承諾感到滿意;我們知道他們希望 SpringSource 取得成功並持續創新。但我們聽到了真正的擔憂,並將其認真對待。

今天,我想向任何可能心存疑慮的人重申我們對社群的承諾,並解釋我們如何根據收到的反饋對維護策略做出重大調整。

我們的開源承諾

有些人表達了對 Spring 將不再開源的擔憂。“許可證變更”這個詞被不斷提及——儘管事實上我們並未更改任何 Spring 程式碼的許可證。雖然這種猜測毫無根據,但它仍然令人擔憂。
讓我再次藉此機會保證,Spring 將在當前(Apache)許可下保持開源,供社群使用。就此為止。
如果你得到了任何不同的印象,那肯定是我的同事和我未能很好地傳達我們的維護策略——或者,也許你聽到了不準確的二手資訊。SpringSource 所做的一切都基於 Spring 的開源性質以及與社群的積極互動。首先,我們不會讓 Spring 閉源,因為這樣做是錯誤的。其次,我們理解,鑑於 Spring 在許多(如果不是大多數)企業級 Java 專案以及許多其他開源專案中的核心作用,以及作為事實上的標準程式設計模型,這樣做會對企業級 Java 造成重大損害。第三,這將是一個愚蠢的商業決策。

我們對開源的承諾一如既往地堅定,並持續增長。我們期待在未來的幾個月和幾年裡與社群一起構建更多優秀的軟體。我們對 Spring Framework 3.0 和其他即將推出的開源版本感到興奮,併為我們能夠對開源進行越來越大的投入感到自豪。

穩定的社群釋出版本

我們最初的維護策略規定,在釋出 3 個月後,Spring 每個主要版本的二進位制釋出版本將僅供 SpringSource 企業版客戶使用,儘管原始碼將始終可用(但不帶版本標籤)。

因此,我們只改變了主要版本釋出後 3 個月之外的分發模式。我們仍然根據現有許可證保留了所有原始碼。沒有許可證變更。

然而,社群中的一些人對 3 個月後倉庫中將不再提供標籤的事實表示擔憂。他們擔心社群可用的二進位制釋出版本之間的時間視窗過長,因為沒有標籤可能難以獲取錯誤修復。一些人還擔心不同 Spring 發行版之間可能造成的混淆,從而使 Spring 社群之間的溝通變得困難。

我們非常認真地對待這些擔憂,我們反思的結果是,我們希望超越使用者的要求,以證明我們對我們社群——可能是企業級 Java 中最重要的社群——的承諾,並確保它繼續快速發展。

我們正在根據社群反饋修改我們的維護策略。我們將定期向社群提供來自 Spring 主幹的二進位制釋出版本,沒有 3 個月的視窗期。對於每個 Spring 版本,社群釋出版本將在其仍然是主幹或直到下一個版本穩定之前可用。
一旦我們釋出了專案新版本的候選釋出版本,我們通常將不再向開源社群釋出該專案早期版本的進一步標籤或二進位制構建。此類釋出版本將為 SpringSource 企業版客戶提供三年支援。

我們維護策略的一個關鍵目標是集中資源大力推動 Spring 功能的發展,並在企業級 Java 開源領域持續領先和創新。隨著我們開發資源的增加,我們的目標是以前所未有的速度前進,透過頻繁的主要版本釋出為社群帶來新的特性和功能。

例如,Spring 2.5.x 仍然是主幹,因此根據此策略修訂,我們將很快向社群釋出 Spring 2.5.6。Spring 3.0M1 將隨後釋出,主幹將用於 3.0 開發。一旦我們釋出 Spring 3.0 RC1,我們將不再為 2.5.x 分支提供標籤或釋出版本。我們將專注於 3.0 開發,以便在第一個里程碑之後儘快釋出 3.0。

我們的三年支援策略(以及 SpringSource 企業版)為無法或不願頻繁升級的企業客戶提供了安心保障。將更多社群開發精力集中在最新功能上,有利於開源使用者。

小型企業定價

由於我們的商業產品主要面向大型企業,一些小型公司產生了 SpringSource 不關心他們或不想與他們做生意的印象。情況並非如此——我們只是優先考慮企業規模的訂閱。但我能理解人們為何會得出這個結論,對於我們的定價結構造成這種印象,我深表歉意。

我們理解小型企業在採用開源方面非常活躍,並且他們對整個技術進步做出了重要貢獻。因此,我們將推出一項新產品,該產品專門針對小型企業和小型 SI 進行設計和定價。這篇部落格不適合描述具體的商業產品,但我們將在不久的將來發布有關新產品的資訊。

公平的平衡

顯然,我們在與社群溝通、解釋我們在做什麼以及為什麼有必要這樣做方面可以做得更好。

然而,重要的是要理解我們制定維護策略的意圖。首先,我們以前從未有過維護策略,不可能永遠不明確我們對社群和客戶的承諾。作為一家公司,我們正努力對社群保持開放,而不是秘密行事。有時這涉及溝通一些不受歡迎的事實,其他公司可能會試圖迴避。其次,此策略旨在幫助我們從那些不會與社群緊密互動、不能或不願定期升級到最新版本以幫助提升 Spring 質量,而是在舊版本上透過接收維護版本找到價值的組織那裡產生收入。這類組織需要堅如磐石的穩定性、世界一流的支援以及我們企業產品套件提供的額外軟體

我們希望建立一家偉大的公司,能夠支付優秀開發人員的薪水,獲得合理的利潤,並繼續增加我們對優秀開源軟體的貢獻。我們越成功,就能為 Spring 社群貢獻越多的優秀程式碼。在過去兩年中,我們的開原始碼生成能力增長得更快,成果斐然,過去 12 個月內的 Spring 下載量以及需要 Spring 專業知識的工作崗位數量都創下歷史新高。

許多組織將在我們的企業產品、技術支援和三年的定期維護版本中找到價值。我們也知道,許多使用者會決定不購買這些產品和服務。這沒關係。商業開源就是這樣運作的。如果我們能夠繼續增加對優秀軟體的投入,所有人都能獲益。

這是我希望我們能夠實施的政策

如果您是一家在大型生產環境中使用 Spring 並從中獲得巨大價值的組織,請向 SpringSource 寄送一張相當於您使用 Spring 所獲得價值的 1% 的支票。我們將用這筆錢支付薪水,增加對開源的投入,並獲得利潤。
如果這樣的政策能夠實際可行就好了。但它不可行,因此我們制定了維護策略,以便從那些在生產環境中使用 Spring 並需要企業級軟體堆疊保障的組織那裡產生收入。同時,透過保持原始碼開放,我們繼續為社群提供優秀的軟體。政策本身並非完美,但我們相信我們所採取的路線是 Spring 開源社群需求與 Spring 背後的開源業務需求之間的最佳平衡。而且,我們很高興您的反饋幫助我們使其更好地服務於社群。

不再玩傳話遊戲?

對於那些在論壇或透過電子郵件向我提出建設性意見的人,我衷心感謝你們。感謝你們足夠關心 Spring,願意思考這些問題;感謝你們抽出時間表達想法並與我分享。請繼續保持!

從中我想汲取的另一個教訓是,努力實現 SpringSource 和 Spring 團隊與 Spring 社群之間更直接的溝通。你可能玩過一種叫做傳話遊戲的聚會遊戲,並聽說過那個著名的故事:英國軍隊前線發出的資訊“派增援,我們要進攻了”經過多次傳遞後到達總部變成了“派三和四便士,我們要去跳舞”。訊息板和部落格圈的溝通很重要,但並不總是可靠。

我很樂意聽取關於更好溝通方式的建議。我接受各種建議,比如 IRC 聊天會話、定期的開放電話會議……這也是你的社群,我知道你有很多好主意……

訂閱 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲取支援

Tanzu Spring 透過一個簡單的訂閱提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案。

瞭解更多

近期活動

檢視 Spring 社群的所有近期活動。

檢視全部