內部開源的未來

隨着計算機、移動電話、物聯網設備和傳感器的數量不斷增長,應用程序的數量也在不斷增長。各行各業、不同規模的公司都在迅速成爲軟件供應商。即使是傳統的硬件公司或製造公司也會轉向軟件,來開發具有競爭力的差異化產品。例如,普通的高端汽車現在的動力來自1億多行代碼。世界上最有價值的公司都有一個共同點:它們的資產大多是無形的,而且無形資產的佔比正在逐年上升。

不只是代碼量在增加,各種編程語言框架和後續版本變化的速度也在不斷加快。根據 Gartner 公司最近的一份報告,軟件維護佔其年度 IT 預算的 80%。軟件工程部門的領導者急需解決代碼庫日益複雜的問題,以及由於公司內部數字化資產不可見,難於創新的問題。

開源正在吞噬軟件世界

克服上述挑戰的一個方法是將維護代碼庫的負擔分擔出去,並聯合公司內外部的人一起進行創新。開源軟件通常被視爲一種競爭槓桿,公司要麼採用第三方軟件,要麼將自己開發的軟件捐贈給獨立基金會。開源模式的成功伴隨着整個世界經濟結構的重大變化。

在最近的一個博客系列中,開源領袖 Joseph Jacks 分享了許多關於商業開源軟件、項目、商業模式以及價值觀的寶貴見解。正如 Joseph 的商業開源軟件公司指數中所展示的,以開源項目爲主要業務的公司數量和估值十分驚人。除了維護開源項目、發佈新版本之外,以開放爲核心的公司還需要制定產品化戰略來實現盈利。這種商業戰略既不是一朝一夕制定的,也不是一成不變的。這是一個緩慢和互相協作的過程,隨着核心開源項目的成熟度和應用程度而發展。從基本的企業支持及服務或輕型企業插件,到具有多樣代碼庫的託管平臺,有許多不同的以開放爲核心的模型。開放核心和許可模式的選擇,極大地影響了商業開源軟件公司與其各自社區之間的協作水平,以及公司內部文化之間的協作水平。

內部開源是現實

作爲開源軟件的主要消費者和生產商,許多財富 500 強公司已經成爲最成功的開源軟件發源地—— Linux 基金會的贊助成員。通過參與外部生態系統並與特定的開發者社區合作,這些 500 強公司將接觸到一套不同的基於協作的軟件工程實踐和文化。使用相同的方法論在公司內部開發專有產品是一個流行的概念,稱爲內部開源。

這個概念並不新鮮,最初是由 Tim O’Reilly 在 2000 年提出的,並被紅帽、貝寶和彭博等創新公司推廣,這些公司多年來一直在進行內部開源。關於內部開源這個主題有很多內容可以探討,包括採用內部開源成功的用戶案例和優秀實踐。但在這篇文章中,我們主要討論內部開源的三大支柱: 文化、開發流程和自動化工具

管理一個大規模的開源項目並維護一個健康的社區面臨着許多挑戰。維護人員應該努力創建一個受歡迎的環境,在這個環境中,每個人都可以進行開發、討論、決策,而且貢獻者都是對新人有幫助的、積極的、友好的。同樣的文化和價值觀也適用於公司內部開源的項目。

內部開源流程的設計,首先要考慮到貢獻者的經驗。貢獻過程應該簡單、清晰,並且有清楚的文檔記錄,儘量減少維護者和貢獻者之間的摩擦。從參與者第一次訪問倉庫到合併 PR ,只需要少量的交互和來回操作。內部開源倉庫,應該爲貢獻者提供有層次的 Readme 文檔、結構化的規劃圖、GitHub 標籤、里程碑和所有權規則等,只有項目中這些要素對於貢獻者完全透明,才能打破孤立,避免挫敗感。

自動化工具是內部開源的最後一根支柱,也同樣重要。在特定的 GitHub 倉庫中,模板可以自動添加到 issue 中。大多數成功的開源項目都廣泛使用持續集成服務進行自動化測試以及質量保證。比如像 Derek 這樣的自動化工具可以做一些簡單任務,比如分配或自動標記新創建的 issue。儘管最近自動化工具方面有了一些進展,但要將自動化提高到一個新的水平,要做的還有很多。

內部開源的未來

對於內部開源來說,未來是光明的。隨着“代碼即數據”等概念的出現,以及大規模代碼檢索和代碼分析工具的開發,可以幫助開發人員實現內部開源的計劃。例如,開發人員能夠通過檢索和分析代碼倉庫的歷史記錄,輕鬆地找出整個組織中的相似、重複代碼。內部開源將進一步幫助軟件工程團隊之間確定合作機會,而且能夠爲代碼審查機器學習模型和應用的測試提供數據。內部開源的代碼倉庫也能爲有利於管理層分析項目、瞭解業務,管理層也能夠通過倉庫看出內部開源實踐成果並評估其成效。換言之,公司現在離將代碼倉庫視爲最有價值的資產,更近了一步。

 

本文由作者 Victor Coise 發表在 thenewstack.io 上:The Future of Inner Source 。由 Gitee 精心翻譯共享,本文在 Creative Commons BY-SA 4.0 許可證下發布。轉載請註明文章來源。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章