【问题标题】:What are the common pitfalls when starting a new open-source project? [closed]开始一个新的开源项目时常见的陷阱是什么? [关闭]
【发布时间】:2009-12-04 09:45:12
【问题描述】:

producing open-source software book 是有关启动开源项目的信息的金矿。然而,我希望从 stackoverflow 用户的经验中学到更多,并且想知道您在开始一个新的开源项目时犯了哪些错误(或者您在尝试为新项目做出贡献时遇到的困难),以及您将如何避免这些陷阱如何成为一个成功的项目*?

**成功的松散定义为被使用并吸引积极贡献者的项目。*

【问题讨论】:

    标签: open-source project


    【解决方案1】:

    我最大的两个错误是:

    1. 我希望全世界都会爱上我的项目,只要我将它发布到任何地方。如果我没有立即得到反馈,我有多棒,我很快就会失去兴趣。

    2. 当我得到快速反馈时,我经常不会及时回复,因为我有很多项目。

    【讨论】:

    • +1 很有可能没有人关心你的想法。
    • 您将什么定义为及时?小时?天?周?尝试在几天内回复是否就足够了,您如何评价这段时间? 1 小时响应反馈是否等于 1 小时开发?
    • 及时是在潜在用户/粉丝/客户失去兴趣之前。我的收件箱充满了有用的反馈,我似乎无法回复:(
    • @Aaron - 你的项目是什么?
    • @Thomas Jung:AROS、ePen、PyScan、upcscan、博客、我的 SciFi 书,还有一些我忘记或没有发表的东西。
    【解决方案2】:

    “吃你自己的狗粮。”

    成为您的第一个用户。这很好:

    • 知道你在做什么
    • 激励自己
    • 获得早期反馈

    我认为编写自己不使用的开源软件几乎是不可能的。

    “吃你自己的狗粮”试图打破恶性循环:没有人使用该软件,因为它不可用;它不可用,因为没有用户反馈。尝试开发一些对你有用的东西,看看它是否能坚持下去并获得一些牵引力。

    除了自己使用软件“经常发布,尽早发布”。对于发布,我并不是指在某处发布一些源 zip,而是真正的端到端发布。

    【讨论】:

    • 成为您的第一个用户意味着在许多情况下您是唯一的用户。很有可能该程序非常适合您自己的需求,以至于其他人都看不到它的任何价值。
    • 我认为没关系。你不能计划成为下一个大型开源项目。 (我希望项目遵循帕累托分布:用户数量多的项目很少,用户数量接近 0 的项目很多。)
    • 假设我们希望这个项目的用户数多于 0,您可以使用哪些技术来避免创建一个项目,使其仅限于您自己的需求?你怎么能成为你的第一个用户,并且仍然可以产生可以推广到其他人需求的东西?
    • 是的,Jeff 今天发了一篇很棒(而且及时)的帖子。对于封闭或开源项目,我必须同意开发方法。
    【解决方案3】:

    选择错误的许可证(对于不同的“错误”值)是一个常见的陷阱。两个例子:

    1.) 如果您使用的许可不允许以不同的条款进行重新许可并且您接受贡献者代码,您需要记住代码突然不是 你的了。这对于一些爱好项目来说很好,但以后可能会限制您的商业选择。当然,这也限制了其他人的商业选择。

    GPL 就是一个例子。包含此许可下的贡献代码,并且您自己绑定到 GPL,以后不能决定双重许可(除非您为每个贡献者确定这一点)。即使将许可证简单地更改为类似的开源许可证也是不可能的:请参阅 linux 内核 - 它绑定到 GPL V2,无法更新到 GPL V3。

    2.) 如果您使用的是许可许可证(例如 Apache、MIT、BSD),您需要记住,您不仅可以在以后商业化并关闭代码,其他任何人也可以这样做。

    不要误会我的意思:我喜欢 GPL,我很高兴为 GPL 项目做出贡献,并且很高兴这些项目的存在。我也喜欢 BSD、Apache、MIT(允许的),并且正在为其他人在商业上利用的项目做出贡献,例如。通过我获得开源软件的“企业版”。这都是公平的游戏——你只需要确定你以后想要什么选择。没有更好,它们只是不同。

    【讨论】:

    • 很好的答案,这听起来可能是一个新的开源项目可能犯的“最大”错误。
    【解决方案4】:

    第一个陷阱是当已经有很多现有项目计划做同样的事情时开始一个新项目。

    【讨论】:

    • 但是……但是……重新发明方轮很有趣!
    【解决方案5】:

    目前,我正在根据我在德国的 FrOSCon 上发表的演讲创建一个博客。 First article: There shall be light – things to keep in mind when starting a project

    也许这会有所帮助。不知道写下面19篇博文需要多长时间。

    我会在这里回答克林顿:

    对于新用户来说不太明显的是:

    对于以用户为中心的软件:

    • 入门指南(让软件快速运行)
    • 截图!用户喜欢截图,但提供截图的项目太少

    对于以开发者为中心的软件:

    • 入门指南(“快速编写代码”,例如解释依赖关系、结构、编译和启动过程)
    • 行为准则

    我会考虑更多并在此处添加。

    【讨论】:

    • 有趣的博文; “想想你想拥有什么样的用户,并为他们提供有针对性的信息……”听起来像是明智的建议,在过去,你会为一个项目编写的第一条信息是什么?
    • 我不确定你的意思。这句话上面的文字中有例子。
    • 我在考虑文档文章:您的工具的安装和基本使用是显而易见的。您是否有关于不太明显但对您的项目的新手同样有帮助的想法?
    【解决方案6】:

    绝对超级棒的文档是必须的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多