在寻找合适的开源项目吗?

还没有读者喜欢这篇文章。
Dinosaur skeleton red

Opensource.com

今年我从 OSCON 大会回来后,燃起了为开源项目做贡献的新热情。我参与开源项目多年了,但最近我更多的是作为一个爱好者和布道者,而不是一个亲身参与开源社区的贡献者。因此,我开始思考下一步该做什么。当我之前参与项目时,那是因为从用户到论坛专家再到贡献者的明确发展路径。这是一条很好的道路,但如果你只是想直接参与其中,该怎么办呢?

撒网要广

灵感并没有立即从天而降,所以我开始在网上搜索关于如何开始参与开源的资源。我找到了来自 Opensource.comGitHubSmart Bear 等网站的资源。令人惊讶的是,除了编写和记录代码之外,还有如此多 不同的方式可以为项目做贡献

在您对各种为各种开源项目做贡献的方式进行初步研究之后,花时间评估哪些项目可能适合您。 OpenHatch 是一个很好的资源——就像一个为您技能和目标量身定制的配对服务。

在查看各种项目时,首先要仔细观察围绕它的社区。确保它是 健康且活跃的。没有什么比选择投入时间和精力,却发现 项目在您眼皮底下停滞不前 更糟糕的了。社区有多活跃?仓库是否发布提交统计信息?只要他们活跃,一个小团队也可以是一个非常可行的项目。他们是如何跟踪问题的?他们是否标记了初学者可以修复的问题?他们是否记录了如何做出贡献?如果一个社区正在努力吸引人们,您可能会作为新手找到更多支持。是否有邮件列表?IRC 频道?Google 论坛?论坛?在您加入之前,如何感受社区的氛围?

与社区取得联系并进行测试。看看事情如何发展,问题如何得到解答。开始可能会很尴尬和可怕,如果您跳入一个指导方法不太周到或采用“Perkele 管理法”的社区,您可能会遇到一段艰难的时光。一份关于社区和项目健康状况的良好报告卡将帮助您保持兴趣并获得个人发展。

墙上的镜子,墙上的镜子

既然我已经掌握了如何评估一个社区,我就需要评估自己。我放下自我,反思我有哪些技能可以提供,我真正想从项目中获得什么,以及我愿意投入多少时间。尽可能诚实地回答这三个问题,您很可能会找到更好的匹配。这些是在投入到一个活跃且健康的社区之前必须回答的三个开放性问题。

就时间而言,成为一个成功且活跃的贡献者很容易消耗大量的空闲时间。因此,请确保您清楚地了解自己可以花多少时间。贡献您的空闲时间也可能是一种精神消耗,因为您可能会开始觉得您总是“在工作”,尤其是在您使用与工作中相同的技能时。尝试将这样的项目视为一种新的爱好:它可以像您希望的那样包罗万象,也可以不包罗万象,但您需要承诺每周花费几个小时,否则可能不值得。您还需要对您的新爱好需要花费多少时间做出合理的估计。如果您预算每周 4 小时,但您需要每周花费 6-8 小时才能在 IRC 上潜水赶上进度,那么您就会有时间上的赤字。这种不匹配会削弱动力和乐趣。

贡献与您的 $DAYJOB

如果您希望在工作时间参与开源项目,请首先与您的经理交谈。您需要确保与您当前的雇主没有利益冲突,并且您希望让他们了解您正在做的工作,以学习新技能和/或练习您正在磨练的技能。让您的雇主同意花费他们宝贵的时间(记住,他们付钱让您为他们工作)来为开源项目做贡献并不难,您只需要提出正确的论点。这对他们有什么好处?良好的媒体报道?员工技能的提升?从大局着眼,但要知道这里存在权衡,您需要正确地构建这个提议。

在我的公司,我的老板和我设定了我将花费在该项目上的时间。我的老板提出了为项目贡献设定优先级的想法,因为我为公司做的很多工作都是由中断驱动和工作量突增的。将我对项目的贡献作为我工作的一个明确部分,使我和我的雇主不仅可以了解花费的时间,还可以了解产生的影响。这也意味着如果我有截止日期,我可以灵活地暂时提高优先级。如果我必须暂时保持无线电静默一段时间,而不会消失得无影无踪,我也可以使用这些标准与我正在合作的团队沟通。 

在我们确定了我的期望之后,我的老板询问了我将承担什么项目。我具体会做什么?我对项目的贡献将如何帮助公司的战略方向和使命?我在开源社区中的行为可能会如何反映公司形象?将您的商业形象与您的个人在线生活分开可能很困难,因此雇主可能会对您可能反映他们的形象很敏感。详细讨论这些问题,然后讨论知识产权。

释放代码

通常,作为雇佣条款,公司拥有您在工作时间和/或使用公司设备所做的任何事情的权利。另一方面,一些开源项目需要通过某种协议将版权从贡献者重新分配给项目。您需要讨论这一点,以了解免除该权利的过程可能是什么样的。要记住的问题是:是否有已知的开源代码审查流程?您是开拓者吗?您的经理可以做到这一点,还是需要由总法律顾问审查该项目?电子邮件是否足够,还是需要将某些内容放入您的人力资源文件中,以便在有人不了解该协议的情况下说些什么时,您不会惹上麻烦?如果您在政府机构工作,可能会有处理此类发布的政策和办公室。

技能

在我的日常工作中,我处理企业系统架构,使用云、配置和系统管理、操作系统等——所有这些都处于熟练的用户级别,而不是开发人员级别。因此,我可能会在基础设施设计和维护方面为项目提供帮助。我每天都使用 Linux,并且仍然做大量的脚本编写,所以我的 bash 技能非常熟练——我不是 bash 超级巨星,但还不错。从更“正常”的编程角度来看,我的 Perl 和 TCL 生疏了,可能都生锈了。我对 Python 还行,可能只是中等水平,当我需要 bash 以外的东西时,Python 一直是我的首选。因此,也许是一些使用 Python 或基于 Python 的东西。我也写很多东西。我做演示、教学课程、博客、咆哮、带有工作流程指南的参考架构。文档和操作指南是为项目做贡献的好方法,而且常常被忽视。

目标

开源项目给人的印象是“挠痒痒”,这在某种程度上是正确的。挠痒痒的看法来自于开源项目的志愿性质。为了保持贡献,您需要保持兴趣。个人在一个项目中的这种动力水平是关键,因此我为什么要贡献与如何贡献同样重要。贡献的明显原因是为了成为摇滚明星!我想成为在会议大厅里走来走去,每个人都在谈论的那个人。好吧,也许不是。但获得认可是一件好事。因提交补丁而获得大家的赞扬感觉很好。而且,我只是想贡献力量并提供帮助。我相信开源,支持开源信息的最好方法就是做一些事情。我站在观众面前传递信息,但贡献是关键。尤其是当您找到一个您相信的项目时。项目依靠贡献者的支持生存,无论有多少用户和多少媒体报道。我也参与其中是为了学习和磨练一些技能。我通过实践来学习,如果我想润色一个信息,我就需要传递它。如果我想提高 Python 水平,我就必须编写更多的 Python 代码。

自我检查

希望您对如何开始寻找要加入的开源项目有了更好的了解。在某种程度上,这与一个活跃的社区有关,但同样重要的是要清楚您可以并且愿意贡献什么。接下来,我将研究如何将这种评估过程应用于一些开源项目。请继续关注,了解它运作得如何以及我选择了什么!

标签
User profile image.
Matt Micene 是 Red Hat 的 Linux 和容器布道师。他在信息技术领域拥有超过 15 年的经验,范围从架构和系统设计到数据中心设计。他对容器、云计算和虚拟化等关键技术有着深刻的理解。

8 条评论

Matt,很棒的文章,我期待看到您将选择哪个项目。

一些搜索开源项目的网站
http://tuxdiary.com/2013/08/02/find-opensource-projects/

Arun,我之前没有见过 antepedia,谢谢你的提示。

好文章。也期待更新。定期系列文章会很酷——也许每季度一篇?

谢谢 Ross,后续文章应该很快就会发布。定期系列文章?我们拭目以待。

回复 ,作者:Ross Reedstrom (未验证)

嘿,不错,谢谢……我的情况和您类似,掌握了 Python、bash 和 ruby + 系统管理……我也在寻找一些开源的东西开始,实际上对学习编码感兴趣……只是想弄清楚如何在工作之余抽出时间来学习和贡献……我只是为“PULP”(一个软件包管理系统)做了一些贡献。

任何指导都将不胜感激……

此致,
DJ

为开源做贡献的最佳方式是使用开源。在您的计算机上运行开源操作系统并使用免费软件应用程序。当您发现问题时——您肯定会发现——请参与到项目周围的社区中。提交错误报告,与 IRC 和邮件列表中的人员交谈,看看是否达成共识,认为您发现的问题是需要解决的问题。只有这样,您才应该开始编写解决方案。

这是最好的入门方式,因为您知道您的代码贡献会受到欢迎,并且当您遇到困难时,您还可以获得社区其他成员的支持。您可以通过阅读您感兴趣的项目的错误报告来节省一些时间。在那里您可以找到人们关心的哪些问题,并开始帮助寻找解决方案。

挠痒痒确实就是它的本质。找到一个对您有意义的项目,一个您重视的项目,并找到一种方法使其对您更有意义、更有价值。这是正确的方式。这就是成功人士的做法。这就是他们成为摇滚明星的原因。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.