为什么开源社区胜过技术支持

还没有读者喜欢这篇文章。
Hands together around the word trust

Opensource.com

我已经使用 Drupal,一个开源内容管理系统 (CMS),来管理我的网站超过四年了。虽然使用开源产品可能会有一些怪癖,但我无法想象用其他方式来做这件事。

人们在考虑是否使用开源产品时,可能会犹豫的原因包括,当您遇到问题时,不能像使用专有系统那样提交服务台工单,并期望在两个工作日内得到回复。大多数时候,开源项目背后没有像专有系统那样的单一公司或实体。相反,开源拥有社区。

当您内部构建自己的定制系统,或者您正在使用另一家公司的专有软件时,只有有限数量的开发人员(您的内部开发人员或该公司开发人员)在开发系统的功能。另一方面,当您使用开源项目时,作为项目社区的一部分,有更多的贡献者。例如,drupal.org 最近达到了 100 万个帐户。在撰写本文时,Drupal.org 统计的开发人员数量为 32,468 人,但是,许多用户在不提交补丁的情况下为社区做出贡献,因此贡献者的数量要大得多。

这个单一的事实是开源的最大优势。一旦出现网络趋势,客户注意到它并要求我将其添加到网站上,那么很可能 Drupal 社区中的其他人(或多人的组合)已经为该功能编写了一个模块。例如,当社交分享链接开始流行,并且客户希望将其包含在他们的网页上时,已经有各种 Drupal 模块提供了该功能。我测试了它们,选择了我喜欢的一个,并轻松地将该功能包含在网站上,而无需编写一行代码。

social media bar

同样,创建集群地图一度成为网站上的新功能。当我们需要绘制北卡罗来纳州生物科技公司的地图时,我再次找到了两个稳定的模块,它们可以完成我们想要的大部分工作(作为免责声明,我确实不得不修补其中一个模块才能使其完全满足我们的需求,但这比我自己编写一个模块要好得多)。

mapping open source

当新的 HTML 5 标准出现时,Drupal 社区立即开始创建新的主题并改进现有主题,以输出 HTML 5 并利用这些改进。

简而言之,当出现一些与网络相关的新功能或改进时,Drupal 社区的积极参与者会立即行动。我所要做的就是四处搜索,找到几乎所有网络相关需求的解决方案。最常见的是,我所要做的就是下载一个提供我需要的功能的模块,或者更新一个现有的模块,因为社区贡献者不断扩展和改进它们。这就是开源社区的真正力量。

为社区做贡献

当然,不建议您袖手旁观,让其他人完成所有工作。如果我们都抱有这种态度,就不会有开源项目了。有很多方法可以参与帮助您使用的开源项目。我编写过补丁来删除错误或扩展模块的功能,我测试过其他人需要测试的补丁,甚至只是为在线文档做出了贡献,而在线文档也是社区生成的。即使您不编写代码,也可以进行测试他人编写的补丁和改进文档。

假设我以上述多种方式为 20 个模块做出了贡献。这听起来可能很多,但请考虑一下:在我的访问量最大的 Drupal 站点上,我使用了多达 97 个模块(除了核心模块)。因此,您可以看到如果我们每个人都贡献一点,我们都可以获得多少收益。

我在社区中的能力或活跃程度并不重要。从头开始编写我想要使用的每个网络功能将花费我无数时间:拥有评论功能、为登录用户定制帐户、社交媒体分享按钮、下拉菜单、集群地图、可定制的搜索界面、新闻通讯订阅等等。如果不能利用成千上万的开发人员来提高 Drupal 的安全性、功能和视觉外观,我靠自己能完成的事情就会少得多。

注意这些差异

成本

使用专有系统时,您需要付费才能使用该系统以及获得相关的技术支持,而当您选择使用开源软件系统时,您可以免费获得系统本身。您的成本来自于您是否选择聘请一位管理员和/或开发人员,他们可以为您定制系统,并且知道如何在开源社区中有效地工作。特别是如果您的需求需要大量的复杂性和定制,这很可能是一项必要的开支(而且可能不便宜)。

灵活性

与向您正在使用的系统的公司请求全新功能相比,在开源社区中拥有内部开发人员可能意味着您将更快、更可靠地获得您的定制。外部公司可能有很多客户,因此有很多请求,而您的请求可能会在队列中长时间等待。

决策是社区决策

有时您希望将系统或特定模块朝着某个方向发展,但社区或模块维护者可能不同意。大多数时候,大多数人的意见是正确的。但是,社区模式也可能存在问题。例如,模块可能会被其原始作者和维护者放弃,而不是像拥有专有产品的公司那样,以计划好的、周全的方式“此功能将被弃用”,让您有机会随着时间的推移停止使用该功能。由于各种原因,模块可能会被直接放弃。对于拥有许多用户的活跃模块来说,这种情况不太可能发生,因为社区中的其他人可能会介入并提供帮助,但我已经在不止一次的情况下在较小的模块中看到过这种情况。

此外,社区或模块维护者可能不同意您关于模块应如何发展或演变的看法。我见过一些模块问题,这些问题已经存在两年了,并且有近 100 名参与者进行了长时间的讨论,讨论的不是应该解决特定的技术错误,而是如何甚至是否应该解决它。有时不同的用户希望以不同的方式使用相同的功能,在这些情况下,模块维护者(志愿者职位)或资深的 Drupal 贡献者可能会有很大的影响力,而不管大多数人的立场如何。

然而,在 Drupal 中,即使社区对模块的发展方向与您想要的不同,您也可以编写自己的自定义模块供您单独使用,并且与社区贡献模块的存储库分开。

这些只是使用开源软件项目的一些细微之处。您必须学习社区如何运作,如何做出贡献,如何报告问题、测试解决方案并自己贡献解决方案,以及获得修复和改进的限制可能是什么。每个社区都有不同的活跃程度和不同数量的用户,这两者都会影响产品修复和改进的生成速度。

无论如何,您将免费使用大量代码,这些代码是成千上万,甚至可能是数千人的工作成果——您可能负担不起在您的工资单上拥有这么多的人。然而,通过开源项目,您可以获得所有好处。

 

User profile image.
Boriana 是北卡罗来纳州达勒姆市 NC 生物技术中心的网络开发总监。自 2009 年以来,她一直从事基于 Drupal 的网站和各种网络技术工作。她喜欢使用开源技术,并每天从开源社区的慷慨和贡献中受益。在 LinkedIn 和 Twitter 上与她联系。

3 条评论

Hippo 的 CTO Arje Cahn 在我们的博客上对此做出了回应:http://www.onehippo.com/en/resources/blogs/facet/open-source-community-and-tech-support---why-not-have-the-best-of-both-worlds.html

您好 Arje,

感谢您加入对话!我认为我们在很多方面都达成了一致(就像您提到的那样)。事实上,我确实在我的文章中试图论证,开源社区并没有真正满足技术支持的需求:这完全是一种不同的做事方式。

我真正比较的是专有系统(它是封闭的,但使用它使您可以向相应的公司请求功能并获得技术支持)与使用开源系统。

您提出了一个完全不同的模型,这个模型越来越受欢迎,并且确实为您提供了这两个世界的最佳部分——使用开源系统,但与提供商合作,通过托管、咨询、技术支持等方式帮助您使用它。这是一个很棒的模型,感谢您提出它!我可以看到一篇关于这两个社区如何互动的全新博文。 :-)

我的名字是 Yandisa Ncombo,是 2014 学年斯泰伦博斯大学社会科学方法研究生文凭的注册学生。我已经申请了该大学 2015/16 学年的国际政治学硕士学位。我对加入我在大学网站上读到的社区发展论坛非常感兴趣。在 2005 年至 2014 年期间,我一直参与沃尔特·西苏鲁大学和维耶斯维尔社区的社区发展项目,我迫不及待地想成为该小组或论坛的一员。请就 2015 年到达之前如何加入论坛提供建议。

感谢您的支持

Yandisa Ncombo

073 205 1498

© . All rights reserved.