愛伊米

如何定義開源軟體供應鏈中的產品

如何定義開源軟體供應鏈中的產品

編譯/盧敏

在本系列的第一篇文章“開源是一種開發模式、商業模式還是其他什麼?”中,我介紹了開源是軟體產品供應鏈一部分的概念。但是要真正將開源理解為供應鏈,您必須對產品是什麼有一個很好的理解。一個產品可以被認為是一項業務,正如傳奇商業大師彼得德魯克所說,“業務的目的是創造和留住客戶。” 德魯克的宣告意味著一個企業或產品必須足夠有用才能支付,否則就會失敗。產品差異化是創造和留住客戶的關鍵。

即使在1999年計算機的石器時代,當我開始職業生涯時,軟體產品的概念還是存在的——你可以去商店購買Red Hat Linux的光碟(當時軟盤仍在使用中)。軟體產品存在的想法在當時可能聽起來像一個笑話,也確實如此,在1940年代和1950年代(當我們知道計算機誕生時),軟體並不是買賣的價值組成部分。那時沒有軟體市場,我們無法購買、出售或線上訪問它。

與其購買軟體,不如選擇構建或購買一臺物理計算機;無論選擇哪種方式,您都可以自己為該特定計算機編寫軟體。

那個……具體的……電腦……

絕對不是開玩笑。在計算機的早期,除了編寫它的計算機之外,軟體無法在任何地方執行。事實上,在早期,我們甚至無法在兩臺不同的計算機上使用相同的程式語言。但是,隨著計算機的發展,建立了系統軟體,例如作業系統、彙編器和編譯器。隨著該系統軟體的出現,應用程式程式碼變得可重用和可移植。

在1960年代,跨平臺編譯器和作業系統導致了可重用程式碼的概念,例如宏和最終的庫。在每個專案開始時,我們都構建了自己的可重用函式和庫(計算機科學課程仍然強迫你這樣做,以便你瞭解幕後發生的事情)同時,處理器和作業系統標準化,實現了計算機之間的可移植性。

早期,這些元件在單個組織(例如政府、大學、公司等)中使用,但是在組織之間共享軟體的願望很快就出現了。如果您有興趣瞭解從第一臺計算機到容器的程式碼可移植性歷史,請參閱“Fatherlinux 的”容器可移植性系列或編譯器構建歷史維基百科頁面。可以說,在任何人擁有軟體產品、開源甚至容器之前,程式碼必須是可移植的。

一旦程式碼變得可移植並可在組織之間共享,下一個合乎邏輯的步驟就是出售它。在早期,擁有可以做一些有用事情的軟體在市場上是與眾不同的。這是一個突破,因為如果您需要計算器、編譯器或文字處理軟體,購買它比編寫它更便宜、更容易。於是軟體產品誕生了。

這個模型真的只適用於解決很多人共有的通用問題——比如計算數字、編寫文件或編譯軟體,這些都是業務問題。通用軟體很棒,但它並不能很好地解決與單個行業或組織內的業務規則相關的特定問題,儘管您可以非常努力地使用Excel或Google表格。對於特定的業務問題,編寫自定義程式碼效率更高。這種需求導致了中介軟體的興起,例如Java、服務匯流排和資料庫。中介軟體的買賣是為了協助定製軟體的開發。

程式碼可移植性催生了軟體應用程式和中介軟體的市場。軟體公司開始提供具有差異化價值的解決方案。使用者可以根據功能選擇所需的編譯器或計算器。解決方案的存在對消費者來說是件好事,因為它促使軟體公司建立更專業的解決方案,每個解決方案都具有獨特的價值。無論產品是否基於開源構建,它都必須在市場上提供獨特的價值。

瞭解差異化價值

為了解釋差異化價值,我將使用一個關於汽車的類比。家庭需要汽車:SUV或者小型貨車。他們可能想要舒適的座椅、資訊娛樂系統或安全功能。他們通常對顏色有偏好。每個家庭都是不同的,都有特定的需求,所以完美的汽車應該是以家庭作為一個專案一起建造的。

大多數家庭沒有時間、慾望、金錢或信用來購買從頭開始製造完美汽車所需的所有元件,更不用說在汽車的生命週期內對其進行維護的時間了。對於一個家庭來說,這不是一項經濟的時間或金錢的投資。這將使他們花費更多,並且需要很長時間來構建。取而代之的是,家庭從現有供應商那裡購買汽車,作為解決他們交通問題的內建解決方案。雖然購買的汽車會不完美,但它會以更少的時間和金錢投入大致滿足他們的需求。

汽車供應商將解決方案與未差異化和差異化的元件結合在一起。這包括從發動機、燃油噴射器、輪胎和汽車座椅,到在經銷商處的購買體驗、融資和擁有汽車時的服務計劃的所有內容。所有這些功能和體驗都是家庭在尋找汽車時購買的解決方案的組成部分。所有這些東西的結合產生了不同的東西,並且有望在市場上變得更好。我們稱之為差異化。有競爭性的解決方案越多,市場上的差異化程度就越大,家庭找到更符合其需求的汽車的機會就越大。

開源的差異化

在傳統的製造產品或服務中,供應商提供的價值與直接銷售給消費者的公司提供的價值是有區別的。您可以進一步區分企業對消費者 (B2C) 或企業對企業 (B2B) 的產品和服務,但這超出了本系列的範圍。

精明的讀者可能已經在思考,“對於傳統產品,供應商也是銷售差異化產品的公司。”這是完全正確的,在這種情況下,開源專案也不例外。社群驅動的開源專案沒有昂貴的營銷活動、焦點小組和銷售團隊來教育客戶的優勢,但它們也有可能在市場中脫穎而出。

對於產品經理、開發人員,甚至系統管理員來說,差異化是一個重要的概念。即使在更廣泛的背景下,任何型別的知識工作的輸出——程式碼、寫作、音樂或藝術——差異化都是為我們的工作帶來價值和意義的東西。差異化創造價值,無論是軟體產品還是服務、勞動力,甚至音樂。