搞砸开源项目的法子有很多,要指责的地方也有很多。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