65.9K
CodeProject 正在变化。 阅读更多。
Home

开源项目的生命周期

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013年8月30日

CPOL

8分钟阅读

viewsIcon

20437

开源项目的生命周期

DNN 为 Code Project 读者提供其内容管理系统 (CMS) Evoq Content 的免费试用。访问他们的注册页面激活您的试用

 

在过去的 10 年里,我有幸亲历了微软技术栈上领先的开源项目之一。在此过程中,我学到了很多关于构建社区、构建产品和构建公司的事情。在参与 DotNetNuke 之前,我没有完全意识到一个操作系统项目并非是一个在代码首次发布时就已经完全成形的静态实体。相反,我发现操作系统项目是活生生的实体。它们诞生、成长,甚至可以实现财务独立。

一个明星的诞生

像任何新生婴儿一样,大多数开源项目最初的能力都非常有限。新生儿不会走路、不会说话,也无法做他们哥哥姐姐能做的许多事情。同样,一个新的开源项目通常只具备足够的功能,足以满足一小部分人(有时只是一人团队)的需求。人们通常被一个新的操作系统项目吸引,不是因为它所拥有的所有特性和功能,而是因为它所蕴含的巨大潜力。

这就是最初吸引我加入 DotNetNuke 的原因。它能构建简单的网页(如果你能忽略丑陋的 UI),它有一个基本的安全模型,而且如果我不介意亲自动手,我可以打开代码编辑器来扩展项目以满足我的需求。

一个操作系统项目的早期阶段完全是关于愿景的。创始人想把项目带向何方?在 DotNetNuke 的那几千行代码中,我看到了真正非凡的潜力,我也在 Shaun Walker 身上看到了他如何释放这种潜力并构建一个真正令人惊叹的产品的愿景。

对于婴儿,父母对每一个新的里程碑都感到兴奋:婴儿的第一句话、第一步、第一颗牙齿。对于父母来说,这是一个非常激动人心的时期,也是一项繁重的工作。有许多个深夜,睡眠很少。开源项目也是如此。团队对每一个新功能都感到非常兴奋:新的皮肤引擎、扩展的打包模型,甚至是恢复已删除模块和内容的能力。在新的开源项目上,那些日子里常常充满深夜编码和长时间的周末守在电脑前。团队成员常常在晚上几乎没睡的情况下出现在日常工作中。但他们乐在其中。这是新鲜和令人兴奋的,他们可以看到他们的小项目正在成长。

每位父母的首要职责之一是为孩子提供他们成长为社会有用成员所需的指导和管教。在此期间,父母保护孩子免受伤害,并提供孩子无法自行获取的食物和住所。同样,开源项目背后的团队有责任成为平台的良好管理者:为项目提供指导和关怀,使其能够满足围绕其成长的社区的需求。

像父母一样,一个 OS 项目的管理者很快就会发现,当项目刚启动时有效的流程和程序,一旦建立起一个相当规模的社区后就不再适用了。随着项目和社区的发展,管理项目的方式也必须随之改变。像新父母一样,OS 项目的领导者常常发现没有一成不变的规则。适用于一个项目或社区的流程不一定适合另一个项目。在项目管理者寻求在社区的需求和愿望与 OS 团队的需求和愿望之间找到平衡时,会有大量的试错。当听到有人说“真正”的 OS 项目以某种方式行事时,我常常感到惊讶。现实情况是,每个 OS 项目都是不同的,就像每个孩子都是不同的,一个好的 OS 项目管理者会认识到他们需要找出适合他们和他们的社区的方法。

财务安全

孩子们长大后,会达到一个需要经济独立的阶段。他们需要弄清楚如何成为社会的有用成员,并找出他们将如何谋生。一些年轻人成为医生、律师、银行家、程序员或教师。他们每个人都以不同的方式为社会做出贡献。

同样,当开源项目达到一定成熟度时,它们需要找到一种自给自足的方式。Eran Galperin 在 Sitepoint 上发表了一篇题为“这不是你祖父的开源”的文章,讨论了许多开源项目演变为商业开源实体的一些常见原因。这篇文章得出了与 Shaun、Scott、我和其他一些人在 2005 年得出的相同结论——为了保持活力并继续增长,我们必须找到一种方法来支付账单,同时全身心投入将 DotNetNuke 打造成为一个更棒的平台。CMS 市场正处于爆发式增长的中心,如果我们不解决这个根本性问题,DotNetNuke 团队将很难跟上。

虽然 Eran Galperin 很好地描述了项目为什么通常会走商业开源路线,但他没有深入探讨这最终如何转化为商业业务。当一个年轻人选择从事某个职业时,他们被迫做出选择。我选择服务社会的哪一部分?我帮助那些生病需要医生的人吗?我帮助那些需要法律援助的人吗?我通过创建使企业运行更高效的计算机应用程序来帮助企业吗?即使在这些更广泛的选择中,也常常有进一步的专业化,并缩小技能范围,以解决整体市场的一个非常小的细分市场。一个人不能有效地既是心脏外科医生,又是刑事辩护律师和网络程序员。

就像个人一样,小型企业也需要选择他们的目标市场。即使对于商业开源企业也是如此。当有人问我为什么 DotNetNuke 公司不为这个价格或这个市场提供产品时,我听到的实际上是他们在问我为什么除了我的编程工作之外,不进行心脏手术。同样,我们的业务选择服务特定市场中的某些商业客户。这就是我们选择创造必要收入来维持和发展开源项目的方式。这些选择并非一成不变,随着项目和公司的发展,我们可能会选择服务更大或不同的客户群体。这就是发展中企业的伟大之处——对年轻企业的限制会随着它们的成长而改变。作为一家小公司无法同时瞄准多个市场,这并不一定适用于公司和产品的整个生命周期。

成熟

随着人们步入中年,他们的人生经历了多次变化。他们对自己在这个世界上的位置有了更深的认识,并在所选择的职业中成长和进步。在这个人生阶段,OS 项目也已成熟和成长。它们通常服务于非常庞大的社区。它们的流程已经成熟,并且通常看起来与它们年轻时大不相同。

如今,DotNetNuke 项目拥有一支专业的市场管理团队、一支国际工程团队、多位质量保证工程师、一支支持团队,甚至还有一支市场营销团队。多年来,随着组织的成长和成熟,项目与社区的互动方式也发生了变化。今天,我们比生命中任何时候都更加开放和透明。我们的项目比以往任何时候都更加活跃,您可以看到这个潜力无限的项目正在成为我们多年前梦寐以求的真正卓越的产品。

就像没有人过着同样的生活一样,没有两个开源项目会做出同样的选择,开发出相同的产品或相同的社区。当我回顾在 DotNetNuke 的过去 10 年时,我为项目所取得的成就感到自豪。就像任何父母一样,作为开源项目的管理者之一,我经历了欢乐、失望、巨大成长和怀疑的时刻。过去的十年对我来说确实是一个激动人心的时期,我期待着在未来与我们结识的所有优秀朋友一起,共同参与这个令人惊叹的开源项目的生命周期。

本文最初发布于 The Accidental Geek

© . All rights reserved.