開源項目是如何被搞砸的?
搞砸開源項目的法子有很多,要指責的地方也有很多。 GitHub 的一位官員則認為,項目維護者和用戶都應受到責備。
在近日一場題為《搞砸開源項目的 99 種法子》的警示性報告中, GitHub 主管開源項目的 Brandon Keepers 列舉了開源項目因用戶或維護者采取了錯誤步驟而出岔子的無數方式。 Keepers 在俄勒崗州波特蘭召開的 O'Reilly 開源大會( OSCON )大會上作了那場報告,他列舉了如何搞砸開源項目的 N 種法子。
Keepers 表示,項目參與者可能會干些避免給予建設性反饋之類的事件,這讓維護者頓無動機。“我們不報告錯誤,我們遇到問題后說‘這一定是我的問題 …… 別人會報告這個問題的。’”
參與者還可能很懶,提些未經深思熟慮的問題,或者不細讀說明文檔。 Keeper 表示,那樣一來,要是維護者沒有足夠迅速地回答用戶提出的問題,用戶就會沖他們發火。“我們忘了一點,就是維護者是在閑余時間自愿做這份工作的。”
Keepers 表示,反過來,至于項目維護者,他們會讓用戶很難“明白項 目的用途何在”,而這會打擊用戶的信心。他們可能讓用戶甚至很難上手。“最簡單的就是我們不告訴用戶如何使用它。”相反,維護者可能覺得最懂行的用戶應該 自個能搞清楚。維護者還可能讓項目無法配置,或者需要過多的配置。
發行不可靠的版本以及避免公布版本路線圖也會導致問題。 Keeper 說:“眾所周知,我們其實并不喜歡規劃新軟件,不是嗎?實際上我覺得,我們許多人卻稱之為敏捷開發”,他對沒有事先規劃整個項目的敏捷開發方法頗有微詞。“但其實,要是根本就沒有計劃,再敏捷有啥用?”
其他問題包括:因重大修正版而拖延發布版本,在次要版本中做一些破壞性變化,版本與版本之間不提供升級路徑。不提到軟件項目的已知局限性也是個問題。
Keepers 表示,如果維護者引入模棱兩可的法律用語,沒有采用適當的開源許可證,還會毀了代碼的完整性。侵犯專利權、版權和商標也是些問題。
如果維護者在項目還沒有準備好之前吸引使用者,或者給項目選取令人不快或難以正確發音的名字,會搞砸項目的聲譽。 Keepers 說表示,“無法通過谷歌搜索引擎在網上找到的名字”也是個問題,他提到了備受關注的兩個項目: Rust 語言和 Go 語言。他認為,這些項目雖然很優秀,但是很難找到關于它們的信息。 Keepers 表示,避免大力推銷項目也是個錯誤。
Keepers 表示,要是施加過多的控制權,忽視對項目的擔憂,或者對貢獻代碼管理不善,也會徹底打擊社區的信任。另一個障礙因素就是沒有向代碼貢獻者表示感謝。
另一個問題就是,維護者對網上討論出現不適當的行為沒有進行制止。 Keepers 說:“互聯網其實是個可怕的地方”,許多人排斥女性和少數派,嘲笑不是以英語為母語的人。項目新來者也常常發現自己成為嘲笑的對象。
搞砸項目的大多數類別都是不顯眼的小問題,比如缺乏信息。雖然這些行為無傷大雅,但日積月累會破壞圍繞項目建立起來的社區,并且讓維護者身心疲憊。 Keepers 強調,維護者需要為軟件項目樹立好的榜樣。
原文標題: How to ruin an open source project: Let us count the ways