Linux中國

開源軟體:存在成功的捷徑嗎?

今天,開源已經風靡世界。很多大型企業在快速成功的誘惑下被推向開源。但真實情況是世界上並不存在成功的捷徑。你無法做到通過一次努力就能讓所有的開源項目正常運行。

事實上,上述公司早期遇到的許多挑戰都不是技術上的,而是人員與文化上的。

開發一個能夠在市場上獲得成功的開源項目需要在開源的許多層面上下功夫。而維持這樣的成功是一個持續的過程。所有這一切的關鍵在於找到以下這個非常基本的問題的正確答案:開源究竟是什麼。

開源是代碼

對於很多新用戶而言,他們可能並不完全了解開源的不同層面,答案相當簡單:開源就是軟體!這當然沒有錯,畢竟我們多數人就是這樣使用它的。不過,相比僅僅被視作軟體而言,開源遠不止這些。

任何開源項目的實質仍然是代碼本身。代碼是使一個開源項目有別於其他項目,並使其對用戶有益的根本。當你從事開源工作的時候,代碼和軟體一樣都是產品的一部分。

從零開始開發一個開源項目或者 復刻 fork 一個現有項目,即便是在面對一個龐大而複雜的代碼庫時,也需要編寫成千上萬行代碼。尤其是在創建一個現有項目的復刻的情況下,在移除任何在先的許可證、宣傳材料或者其他任何可能已經失去作用的文件時必須小心翼翼(LCTT 校註:部分開源項目不允許你改變其原有的許可證)。終究是一個項目的功能吸引了它的用戶群並維持項目的持續發展。當最終用戶在考慮是否使用開源軟體的時候,他們會閱讀項目的源代碼,而他們在其中所看到的應當是那些能夠建立他們的信心的內容。

開源是社區

如何參與到社區中也是產品構建的一部分。創建一個社區並維護一個健康的社區關係是開源的核心之一,但對於大部分的領導者而言也往往是最堅難的任務,很少有人能很好地維護它。你可以嘗試建立基金會或者提供贊助,但是最終還是由人們自行決定是否想要加入社區。

重要的是與社區保持一定程度的透明度,並不斷保持。社區成員可以在它想要的任何階段參與進來。除了需要進行的工作之外,諸如安全設置、簽發證書、註冊商標等,儘可能多的將你所做的工作展示給社區是相當重要的,這有助於取得社區信任。歸根到底,你需要對社區負責,你的項目成也社區,敗也社區。這可能會導致你的項目開發更謹慎、更緩慢並且向社區公開,不過項目最終會進展順利。

如此地公開你正在進行的工作似乎有些令人生怯,尤其是當你擔心更新推遲或者是出現漏洞的影響的時候。不過,讓社區成員知悉你的進展,不僅有助幫助你建立與社區之間的信任關係,而且能夠讓社區成員感到被認可。

另一方面,公開你的工作流也可以獲得來自社區成員的監督,他們經常有自己的見解並向你反饋。記錄這些反饋是很重要的,這使得你的開源項目如實地反映社區需求。他們是項目的最終用戶,而他們的反饋則反映了他們如何看待你的項目的長期發展,以及你的項目最終將有多麼成功或者主流。

舉例而言,當我們在考慮一個新功能的時候,我們在 徵求意見文檔 Request for Comments (RFC)中發布一個徵集意見的請求,我們會收到大量的反饋,我們必須認真思考應當如何吸收這些反饋。

因為開源是一個大型的合作項目,社區對支持開源項目的主動支持,使項目成為了最好的項目。並非所有的問題都要解決,但只要你有在傾聽社區的呼聲,社區就會有參與感。

參與到社區中也存在一些隱患。社區內部、項目維護與社區之間均可能存在不同意見,尤其是在涉及治理的問題上。治理對於一個開源項目來說是相當重要的。這也就是為什麼擁有一份清晰的文檔化的治理條例對於項目以及社區均是如此重要。

社區治理是一個關鍵的而又難啃的骨頭。社區授權本身需要相當大的信任。對於一個擁有成千上萬行代碼的項目,在社區中尋找能夠有效領導社區的人物是不容易的。不過開源項目經常是由更小的子項目組成的,這些子項目最好由社區中的某個人進行管理。這有助於社區更緊密地參與到項目中。

建立社區的過程不是一帆風順的。讓我列舉一一些有助於維持社區與我的團隊之間平衡的技巧。

聲明你的原則: 尤其是在開源項目的早期,在項目代碼仍在完善,很多事情還不完美的時候,項目之外的人員很難真正理解你所做的決定。向他們說明你做出決定所依據的原則,有助於你在思考過程上保持坦率,從而讓社區不會錯誤地干擾你的事務。這一經驗非常有效,在你做出決定時堅持遵循其中一項原則並展示出來是非常重要的。

確定如何進行協作: 你可以通過 Discord、Slack 或者郵件等途徑完成這一工作。但是如果你試圖同時使用它們,你將毫不意外的分散項目社區。社區人員將在所有這些途徑上互相交流。選擇一到兩種溝通工具,投身於它們來保證社區的信息同步。

珍惜反饋意見: 傾聽來自社區的反饋並付諸行動。即使需要你作出艱難的決定,你也應當向社區展示你是重視社區話語的。

維護一套行為準則: 如果你與社區打交道,你需要定義什麼行為是可以接受的。一套落地的行為準則有助於在人們越過紅線時警示他們。如果你可以提前制定這些你可以避免很多麻煩。

考慮如何分發你的項目: 存在這樣的情況,因為你還沒有準備好某一個組件,或者是因為存在一些你不希望所有人都能夠訪問的項目功能,所以你可能並不希望將你的項目完全向公眾公開。關鍵是制定符合你的要求而不是向用戶妥協的分發條款,如此,需要某種功能的用戶可以獲取所需項目的同時,不需要該功能的用戶也不需要在開始使用該項目做出妥協。

儘可能地避免投票: 這是因為部分成員經常會贊成與大部分成員的意見相左的選項,這會使這些人產生一定程度的失望,並讓他們覺得被項目所孤立。反之,盡量嘗試詢問他們想要解決什麼問題,並嘗試創造一個不需要付出代價的解決方案。

開源是許可

開源是給予你的用戶如何使用你的軟體的自由,而許可能夠做到這一點。開源項目許可的好處在於,它保證了不論你作為維護者做了什麼,你的所有最終用戶以及利益相關方總是可以維護一系列的項目復刻版本,這些都是重要的項目復刻。

許可提供了人們可選擇性,如果他們認為有必要,他們可以將項目帶到不同的路徑中。他們擁有創建副本的權利,這使得許多優秀的軟體能夠被開發出來。維護者有責任傾聽他們的社區成員的聲音,並以一個對項目的社區成員有利的方式運營項目。

我們推薦使用現有的許多可用的許可證,而不是獨立製作你自己的許可條款,原因很簡單,因為用戶以及利益相關方通常都很熟悉常用的許可證,因此你不需要再花費時間在解釋許可條款上。這將幫助你將你的精力集中在項目的其他部分上。

最後,開源是一項運動

開源包括了很多維度,也包含了很多人員。最重要的是,它是關於理解人們想要什麼,並創建一個鼓勵協作與透明的環境。開源也是關於創建社區,幫助建立走自己想走的開源項目的方式。維護者創造越多的機會讓社區自由發揮,開源產品就越好,也越發成功。

開源是以上所有這些方面,而你的視野越寬闊,你就能越好的利用它。請考慮你如何能夠在開源的每一個維度上出類拔萃,因為時至今日,開源的成功之路並無捷徑。

via: https://www.opensourceforu.com/2022/07/open-source-software-is-there-an-easy-path-to-success/

作者:Jules Graybill 選題:lkxed 譯者:CanYellow 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國