開源專案是如何被搞砸的?

Paul Krill發表於2015-08-01

搞砸開源專案的法子有很多,要指責的地方也有很多。GitHub的一位負責人則認為,專案維護者和使用者都應受到責備。

在近日一場題為《搞砸開源專案的99種法子》的警示性報告中,GitHub主管開源專案的Brandon Keepers列舉了開源專案因使用者或維護者採取了錯誤步驟而出岔子的無數方式。Keepers在俄勒崗州波特蘭召開的O'Reilly開源大會(OSCON)大會上作了那場報告,他列舉了如何搞砸開源專案的N種法子。

Keepers表示,專案參與者可能會幹些避免給予建設性反饋之類的事件,這讓維護者頓無動機。“我們不報告錯誤,我們遇到問題後說‘這一定是我的問題……別人會報告這個問題的。’”

參與者還可能很懶,提些未經深思熟慮的問題,或者不細讀說明文件。Keeper表示,那樣一來,要是維護者沒有足夠迅速地回答使用者提出的問題,使用者就會衝他們發火。“我們忘了一點,就是維護者是在閒餘時間自願做這份工作的。”

Keepers表示,反過來,至於專案維護者,他們會讓使用者很難“明白專案的用途何在”,而這會打擊使用者的信心。他們可能讓使用者甚至很難上手。“最簡單的就是我們不告訴使用者如何使用它。”相反,維護者可能覺得最懂行的使用者應該自個能搞清楚。維護者還可能讓專案無法配置,或者需要過多的配置。

發行不可靠的版本以及避免公佈版本路線圖也會導致問題。Keeper說:“眾所周知,我們其實並不喜歡規劃新軟體,不是嗎?實際上我覺得,我們許多人卻稱之為敏捷開發”,他對沒有事先規劃整個專案的敏捷開發方法頗有微詞。“但其實,要是根本就沒有計劃,再敏捷有啥用?”

其他問題包括:因重大修正版而拖延發布版本,在次要版本中做一些破壞性變化,版本與版本之間不提供升級路徑。不提到軟體專案的已知侷限性也是個問題。

Keepers表示,如果維護者引入模稜兩可的法律用語,沒有采用適當的開源許可證,還會毀了程式碼的完整性。侵犯專利權、版權和商標也是些問題。

如果維護者在專案還沒有準備好之前吸引使用者,或者給專案選取令人不快或難以正確發音的名字,會搞砸專案的聲譽。Keepers說表示,“無法透過谷歌搜尋引擎在網上找到的名字”也是個問題,他提到了備受關注的兩個專案:Rust語言和Go語言。他認為,這些專案雖然很優秀,但是很難找到關於它們的資訊。Keepers表示,避免大力推銷專案也是個錯誤。

Keepers表示,要是施加過多的控制權,忽視對專案的擔憂,或者對貢獻程式碼管理不善,也會徹底打擊社群的信任。另一個障礙因素就是沒有向程式碼貢獻者表示感謝。

另一個問題就是,維護者對網上討論出現不適當的行為沒有進行制止。Keepers說:“網際網路其實是個可怕的地方”,許多人排斥女性和少數派,嘲笑不是以英語為母語的人。專案新來者也常常發現自己成為嘲笑的物件。

搞砸專案的大多數類別都是不顯眼的小問題,比如缺乏資訊。雖然這些行為無傷大雅,但日積月累會破壞圍繞專案建立起來的社群,並且讓維護者身心疲憊。Keepers強調,維護者需要為軟體專案樹立好的榜樣。

相關文章