開源的悖論
原文由 Salvatore Sanfilippo 于 發布,訂閱此部落格
最近在社群網路和程式設計社群裡,有個觀念正悄悄蔓延開來。那就是:別人付你多少錢請你寫程式,就能對你的作品主張相應程度的品質要求。
就像有人說過的,最好的程式碼,往往是在你本來該做別的事的時候寫出來的 [1]。就像作家是在寫那本或許根本沒人會付一毛錢的小說時,才會拿出最好的表現,而不是在幫知名企業寫文案的時候一樣,程式設計師往往也是在自己的開源 side project 上投注更多心力,而不是在上班時間,為那個自己覺得愚蠢、無聊、毫無意義的專案再多寫一段程式。而且,如果公司夠大,那個專案很可能半年後就會被取消,或是在盛大上線一年後就被下架。
開源不一樣,它是一件作品,是你真正想做的事在程式碼上的轉化,是你心中軟體應該有的樣子,或只是你寫程式時感受到的所有樂趣、喜悅,甚至憤怒的投射。你會希望它很厲害、希望它完美,遇到一個他媽的 heisenbug 會讓你徹夜難眠。所以,如果你的軟體使用者來找你,告訴你某段程式碼很爛,而且願意跟你一起想辦法解決,甚至要求很高,請不要覺得他們因為沒付錢就是在占你便宜。這不是錢的問題。你當然可以選擇不理會 bug,不理會他們的抱怨,反正你又沒有合約非做不可,但他們其實是在幫你,他們在乎的跟你在乎的是同一件事:你的軟體的品質、它的宏偉、它的完美。
你真正擁有、卻常常沒有好好運用的權利,是只有你能決定自己軟體的設計。所以你當然有權拒絕一個 pull request,或是拒絕某個遵循最佳實踐的提議,只因為你覺得對方的貢獻不符合你正在設計、打造的整體藍圖。
但如果你也認同,對方指出的的確是你軟體中一個真正的缺陷,那就別犯下把這段互動貶低為庸俗金錢問題的錯誤。你是免費在做,而他們是押上自己的屁股冒險部署你寫出來的東西,你們雙方在乎的都是同一件事:品質。
編輯註:如果你在寫 OSS,卻對使用者的要求感到不滿,有沒有想過,或許在這個時間點,你的工作不知為何已經變得比較像在上班了?
編輯註 2:有位 HN 使用者問了這個標題的由來。這個悖論在於,寫 OSS 的人往往更在乎自己免費寫的程式碼,也更願意去修復它,勝過那些領錢做的工作。
[1] 「最好的程式,就是在程式設計師本來該做別的事時寫出來的。」—— Melinda Varian。https://twitter.com/CodeWisdom/status/1309470447667421189
隨機一篇部落格
留言
登入後參與討論