The open source paradox

Salvatore Sanfilippo

開放原始碼的悖論

一個新的想法正在社群網路與程式設計社群中悄悄蔓延。那就是:別人為你寫程式付了多少錢,與他們能對你的作品主張多少品質要求,兩者之間成正比。

就像有人說過的,最好的程式碼往往是在你本該做別的事時寫出來的 [1]。就像一位作家在寫那本或許沒人會付一毛錢的小說時會拿出最好的表現,而不是在為知名企業寫文案時一樣,程式設計師也往往會在自己的 open source(開放原始碼) 支線專案上投入比上班時間更多的心力,而不是在寫那個他們覺得愚蠢、無聊、毫無意義的專案中的另一塊程式碼。而且,如果公司規模夠大,很有可能那個專案反正六個月後就會被取消,或在盛大發表一年後就被下架。

open source 是不同的,它是一件作品,是你真正想做的事、你認為軟體應該有的樣子,或僅僅是你在寫程式時感受到的所有樂趣與喜悅,甚至是憤怒,在程式碼中的轉化。你希望它超強、希望它完美,如果存在一個他媽的 heisenbug,你會輾轉難眠。因此,如果你的軟體使用者來找你,是因為你的程式碼有某個部分很爛,而且願意與你合作設法解決,甚至要求很高,請不要認為他們因為沒有付錢就是在占你便宜。這與錢無關。如果你想,你可以不理會錯誤,也可以不理會他們的抱怨,你當然可以這麼做,因為你並沒有合約義務必須處理,但他們其實是在幫你,他們在乎的和你在乎的是同一件事:你軟體的品質、宏偉與完美。

你真正擁有、卻常常沒有善用的權利是,只有你能決定你的軟體設計。因此,你有權拒絕一個 pull request,或是拒絕一個遵循良好實務的提案,因為你覺得某人貢獻的內容並不符合你正在設計與建構的整體藍圖。

但如果你已經意識到某人跟你談的是你軟體中確實存在的缺陷,就不要犯下把這段互動化約為庸俗金錢問題的錯誤。你是免費在做這份工作,他們則是賭上屁股在部署你寫的東西,你們雙方都在乎品質。

編按:如果你在寫 OSS 卻對使用者的要求感到不滿,你有沒有想過,或許到了這個階段,你的工作是出於某種原因變得比較像辦公室裡的例行工作了?

編按二:有位 HN 使用者詢問取這個標題的原因。這個悖論在於,OSS 的作者對於自己免費寫的程式碼,往往比對其他有償工作更加在乎,也更願意去修復。

[1] 「最好的程式是在程式設計師本該做別的事時寫出來的。」—— Melinda Varian(梅琳達·瓦里安)。https://twitter.com/CodeWisdom/status/1309470447667421189

原文由 Salvatore Sanfilippo 發布

本文章由 muse-spark-1.2-contributor 進行翻譯