分步指南你有这样的疑问:你已经权衡了开源代码的优缺点,并且你已经知道你的软件需要是一个开源项目,但是,你不知道如何做一个好的开源项目。当然,您可能已经知道如何创建Github帐户并开始使用,但这些实际上是进行开源的简单部分。而真正困难的部分是如何让足够多的人关注你的项目并为你的项目做出贡献。以下原则将指导您构建和发布其他人会关心的代码。可以出于多种原因选择开源。也许您想吸引一个社区来帮助您编写代码。也许,众所周知,您了解“开源-由小型开发团队在内部编写的代码的倍增器”。或者你只是认为这是必须要做的事情,就像英国政府一样。不管是什么原因,开源要想成功,就必须为将来使用该软件的人做很多规划。正如我在2005年所写,如果您“需要大量人员做出贡献(错误修复、扩展等)”,那么您需要“编写好的文档、使用易于访问的编程语言并使用模型架构”。顺便说一句,您还需要编写人们关心的软件。想一想你每天依赖的技术:操作系统、Web应用框架、数据库等。远离像航空航天这样特殊行业的小生态技术,让开源有更多的可能性让外部(人)产生兴趣并做出贡献。捐款。更广泛地应用技术并找到更多的贡献者和用户。一般来说,任何成功的开源项目都有以下共同点:1.完美的时机(满足市场的实际需求)2.强大的团队,包括开发人员和非开发人员3.易于参与的结构(更多详见下文)4.模块化编码,让新贡献者更容易找到项目的破烂部分来贡献,而不是强迫他们理解庞大代码的每个部分5.代码可以广泛应用(或达到狭窄的流行度比“弄巧成拙”的利基更有吸引力)6.良好的初始源代码(如果你把垃圾放在Github上,你得到的只会是垃圾)7.免费许可证——我个人更喜欢喜欢Apache风格的许可证,因为它为开发人员的采用创造了障碍***,当然,许多成功的项目(例如Linux和MySQL)都使用GPL许可证取得了很大的效果。以上几项是项目成功邀请参与者最难的部分。这是因为它们不是关于代码而是关于人。开源不仅仅是许可证我今年读到的最好的东西之一是来自得克萨斯州奥斯汀的UX交互设计师VitorioMiliano(@vitor_io)。Miliano指出,不参与您的项目的人是“局外人”,无论他们的技术能力水平如何(这很好),基本上都知道一点代码。因此,他认为,你的工作是让人们更容易加入并为你贡献你的代码。在解释如何让非程序员参与开源项目时,他指出了项目负责人应该需要做的一些事情,以便有效地让任何技术或非技术性质的人参与开源项目。1.一种理解项目价值的方法2.一种理解他们可以为项目提供的价值的方法3.一种理解他们可以从贡献代码中获得的价值的方法4.一种理解贡献过程的方法,结束-to-end5.贡献机制适合现有的工作流程通常,项目负责人希望专注于上面的第5步,而不提供理解1到4的途径。如果潜在的贡献者不理解“如何”共享就变得不重要了为什么”。请注意,至关重要的是,Miliano写道,构建具有易于理解的配置文件的项目以及通过配置文件始终向每个人展示可访问性和包容性是有价值的。他断言,这具有使文档和其他版本介绍更易于访问的额外好处。关于第二点,无论是程序员还是非程序员都需要能够准确理解你需要什么,这样他们才能认可他们的贡献(方向)。有时正如MongoDB的解决方案架构师HenrikIngo告诉我的那样,“一个聪明的人可以贡献伟大的代码,但项目成员无法理解它”,如果贡献在组织内得到认可并在研究后理解,那么这不是一个坏事问题。但它并不经常发生。你真的想领导一个开源项目吗?许多开源项目负责人提倡包容,但他们拥有一切,唯独没有包容。如果你不想让人们做出贡献,就不要假装开源。是的,有时这是陈词滥调。就像HackerNews最近报道了一位开发者的开发工作。小项目可以获得很多,基本不需要多人合作完成。我看到他们的进步,但我看不到自己的进步:如果我帮助他们,显然,如果我把有限的时间花在与那些计算机科学管理大师一起工作而不参与编码,这不是我想要的。所以我没理他们。这是保持理智的好方法,但这种态度对于项目被广泛共享并不是一个好兆头。如果您真的不太关心非程序员的设计贡献、文档或其他内容,那么请先了解这些。同样,如果是这种情况,您的项目就不能成为开源项目。当然,被排斥的感觉并不总是可靠的。正如ActiveState的副总裁BernardGolden告诉我的那样,“一些潜在的开发人员会被现有的‘小集团’开发社区吓倒,尽管这不一定是真的。”为什么要人贡献,请人开发,开源项目投入更多,生存时间更长。
