敏捷开发 开源软件

现在该回馈那些使您能够使用Internet的人! (It is high time to give back to the people who enable you to use the Internet!)

Many developers are fond of open source projects, and for good reason: they use them every day to speed up their work. There are a lot of successful examples of open source software solutions, such as Linux (an operating system) or React (a JavaScript library). These solutions are often well-crafted, and it is a pleasure to work with that kind of high-quality code.

许多开发人员都喜欢开源项目,并且有充分的理由:他们每天都使用它们来加快工作速度。 开源软件解决方案有很多成功的例子,例如Linux(操作系统)或React (JavaScript库)。 这些解决方案通常是精心设计的,使用这种高质量的代码很高兴。

So, let’s have a closer look at what open source means and what the pros and cons are for working with open source projects.

因此,让我们仔细研究一下开源的含义以及使用开源项目的利弊。

什么是开源? (What Is Open Source?)

The term “open source” was coined within the software development industry and refers to something that anyone can inspect, modify, and share. It represents a specific approach to creating computer programs which celebrates the values of collaboration, transparency, and community-oriented development.

“开源”一词是在软件开发行业中创造的,指的是任何人都可以检查,修改和共享的东西。 它代表了一种创建计算机程序的特殊方法,该程序庆祝协作,透明性和面向社区的开发的价值。

Open source code is written by developers and for developers.

开源代码是由开发人员和为开发人员编写的。

To protect all the parties engaged in open source, the project owner can use a Creative Commons license. A Creative Commons (CC) license enables everyone to share, use, and build upon your work.

为了保护所有从事开源活动的各方,项目所有者可以使用知识共享许可。 创用CC(CC)许可证使每个人都可以共享,使用和建立您的作品。

Open source software is usually a free software product, where developers have access to the source code. They can enhance the program’s performance, add some features, and fix errors. Some examples of such software are LibreOffice, Mozilla Firefox, and Chromium.

开源软件通常是一种免费软件产品,开发人员可以在其中访问源代码。 它们可以增强程序的性能,添加一些功能并修复错误。 此类软件的一些示例是LibreOffice,Mozilla Firefox和Chromium。

By contrast, there is proprietary software, also called “closed source software”. The source code of such a program can be inspected or altered only by its owners. Some examples of proprietary software include some products of Microsoft, Adobe, or Apple.

相反,有专有软件 ,也称为“封闭源软件”。 此类程序的源代码只能由其所有者检查或更改。 专有软件的一些示例包括Microsoft,Adobe或Apple的某些产品。

Some companies see open source software as the norm, while others prefer developing closed source software. And to be sure, the open source model has its pros and cons.

一些公司将开放源代码软件视为规范,而其他公司则更喜欢开发封闭源代码软件。 可以肯定的是,开源模型有其优缺点。

开发开源软件有什么好处? (What Is Great About Developing Open Source Software?)

个人利益 (Personal benefits)

If I say that open source developers are driven by altruism and the desire to help others, a lot of people reading this article may smile in disbelief. But this intrinsic motivation is the primary reason most people work on open source projects.

如果我说开源开发人员是由利他主义和帮助他人的愿望所驱动,那么许多阅读本文的人可能会难以置信地微笑。 但是这种内在动力是大多数人从事开源项目的主要原因。

Don't underestimate the importance of personal benefits – those feelings of being helpful and self-accomplished.

不要低估个人利益的重要性-那些乐于助人和自我实现的感觉。

社区认可 (Community recognition)

Scientists and doctors share their experience by writing scholarly articles and participating in scientific conferences. UI/UX designers share their experience on Behance or Dribbble. Writers print their books or share them via online platforms. Musicians and moviemakers share their work with the world via different streaming services. Why would software developers be any different and want to miss their opportunity to get recognition?

科学家和医生通过撰写学术文章和参加科学会议来分享他们的经验。 UI / UX设计师分享他们在BehanceDribbble上的经验。 作家印刷书籍或通过在线平台分享。 音乐家和电影制片人通过不同的流媒体服务与世界分享他们的作品。 为什么软件开发人员会有所不同,并想错过获得认可的机会?

When working on or running open source projects, you can get recognition from the developer community in a number of ways, such as creating a great GitHub-profile and participating in events like Hacktoberfest.

在处理或运行开源项目时,您可以通过多种方式获得开发人员社区的认可,例如创建出色的GitHub档案以及参加诸如Hacktoberfest之类的活动

You might also get discounts, free admissions to events, and a well-developed infrastructure to run your projects. Not only does working on open source projects save you money, but also it inspires you to use all the greatest tools available to you in your own projects.

您还可能会获得折扣,活动的免费入场以及运行项目的完善基础架构。 在开源项目上工作不仅可以为您节省金钱,而且可以激发您在自己的项目中使用所有可用的最佳工具。

自我广告 (Self-advertising)

If you or your company actively participate in the open source community, you can earn a great reputation. This way, if you are an individual or self-employed developer, it will be easier for you to find a job as a freelancer or a full-time employee. If you represent a software development company, it will be easier for you to find people willing to work for you, partners willing to cooperate, and clients willing to request your professional services.

如果您或您的公司积极参与开源社区,则可以赢得很高的声誉。 这样,如果您是个人或个体经营的开发人员,那么您将更容易找到自由职业者或全职员工的工作。 如果您代表一家软件开发公司,则可以更轻松地找到愿意为您工作的人,愿意合作的合作伙伴以及愿意要求您提供专业服务的客户。

This is why developing open source software creates a perfect advertising opportunity – a win-win situation both for developers and development agencies.

这就是为什么开发开源软件可以创造完美的广告机会的原因-对于开发人员和开发机构而言都是双赢的局面。

价值感 (Sense of value)

No need to hide the truth: job burnout plagues developers’ work and software vendors’ HR strategies. If you are a company owner, by motivating your employees to participate in open source development, you show them that their work has value. Not only will they be working on your commercial projects but they will also be providing value to the wider developer community by working on open source projects.

无需掩盖事实:工作倦怠困扰着开发人员的工作和软件供应商的人力资源策略。 如果您是公司所有者,则可以通过激励您的员工参与开源开发,向他们表明他们的工作具有价值。 他们不仅将从事您的商业项目,而且还将通过从事开源项目为更广泛的开发人员社区提供价值。

By helping your developers achieve these feelings of purpose and value, you keep them interested in working with you.

通过帮助您的开发人员实现目标和价值的感觉,您可以保持他们对与您合作的兴趣。

The same is true if you are a self-employed developer. Engaging in open source software development will make your work meaningful, and you will not grow to hate it as time passes.

如果您是自雇开发人员,则同样如此。 从事开源软件开发将使您的工作有意义,并且随着时间的流逝您将不会讨厌它。

软件质量 (Software quality)

Open source code is often higher quality. A piece of software created by a team of developers can be lower quality than that developed by thousands of developers from all over the world with experience in different technologies, industries, and projects. And bugs in open source software are identified very quickly as the code is being constantly reviewed by multiple developers.

开源代码通常质量更高。 由一组开发人员创建的软件,其质量可能低于来自世界各地具有不同技术,行业和项目经验的数千名开发人员所开发的软件。 随着多个开发人员不断审查代码,可以很快地识别出开源软件中的错误。

Even code written by a single developer is often higher quality if it is open sourced. If you write code that only you or your close colleagues will see, you may not care much about code style. But if you write code that everyone can see, you will do all you can not to look like a code monkey. Reviews, contributions, and refactoring from the community are all helpful here.

如果是开源的,即使是由单个开发人员编写的代码也通常具有更高的质量。 如果编写的代码只有您或您的亲密同事可以看到,则您可能不太在乎代码样式。 但是,如果您编写了所有人都可以看到的代码,那么您将尽一切努力使自己看起来不像代码猴子。 社区的评论,贡献和重构在这里都是有帮助的。

数据安全 (Data security)

You should use open source software for application development because it is more secure. The community promptly finds and reports security flaws which the software owner usually fixes right away.

您应该使用开源软件进行应用程序开发,因为它更安全。 社区会立即发现并报告软件所有者通常立即修复的安全漏洞。

In turn, if there is a security flaw in a proprietary software product, nobody is going to know until someone falls victim to the threat it poses.

反过来,如果专有软件产品存在安全漏洞,那么除非有人成为它所构成的威胁的受害者,否则没人会知道。

Also, open sourced products cannot misuse and abuse users’ data intentionally like some proprietary software companies do. The community would discover this abuse, and the reputation of the software and its owner would be ruined.

而且,开源产品不会像某些专有软件公司那样故意滥用和滥用用户数据。 社区将发现这种滥用,并且该软件及其所有者的声誉将被破坏。

客制化 (Customization)

Developing open source software usually means you are developing an easily customizable software. Since the source code is open, a developer can easily add changes to the functionality of the interface.

开发开源软件通常意味着您正在开发易于定制的软件。 由于源代码是开放的,因此开发人员可以轻松地对界面的功能进行更改。

For instance, Apache CloudStack is an open source software that facilitates cloud computing. Another example is the open sourced platform Botpress, which allows developers to easily create custom chatbots. KeenEthics developers who are Botpress contributors feel delighted when they're able to make somebody else’s life simpler.

例如,Apache CloudStack是促进云计算的开源软件。 另一个例子是开源平台Botpress ,它使开发人员可以轻松创建自定义聊天机器人。 Botpress贡献者的KeenEthics开发人员能够使别人的生活变得更简单,他们对​​此感到高兴。

Open source is about gaining and sharing experience. Sometimes, you see that an open source software project is lacking something and you fill this gap by contributing your code. Other times, you understand that you could do something better. Open source helps you deal with boredom and earn recognition from peers.

开源是关于获得和分享经验。 有时,您会看到一个开源软件项目缺少某些东西,并且通过贡献代码来填补了这一空白。 其他时候,您知道您可以做得更好。 开源可以帮助您应对无聊并赢得同行的认可。

开发开源软件有什么不好? (What Is NOT Great About Developing Open Source Software?)

沟通错误和误解 (Miscommunication and misunderstandings)

You can expect requests to improve your product or to help with something, but you might have to deal with different kinds of people. Some may expect you to react to their requests 24/7. Others might open PRs improving your product, but you will have to explain the rules on how things should be prepared and how they get merged into the mainline.

您可以期望有改进产品或提供帮助的请求,但是您可能必须与不同种类的人打交道。 有些人可能希望您对他们的要求进行24/7响应。 其他人可能会打开PR来改善您的产品,但是您将必须解释有关应如何准备以及如何将它们合并到主线中的规则。

In the end, there is no guarantee that the community contributions will not turn out to be of lower quality. This is why there is a high chance that you end up refactoring someone's code and leaving people disappointed by not merging their changes.

最后,不能保证社区的捐款不会变成低质量的。 这就是为什么您极有可能最终重构某人的代码,并且由于不合并他们的更改而使人们失望的原因。

对核心业务价值的威胁 (The threat to the core business value)

You should never open source anything that has a core value to your business. If there is a trade secret – an idea or a way of its implementation that makes your business unique, you should not open source it so that it does not become available for your competitors. Yet, if you have ideas and tools that can be used by the public without any loss for your business – open source them.

您绝不应该开源任何对您的业务具有核心价值的东西。 如果存在商业秘密–一种使您的企业与众不同的想法或实现方式,则不应开源,以免竞争对手使用。 但是,如果您有可以让公众使用的想法和工具,但又不会给您的业务造成任何损失,请开源。

为什么开源是正确的选择 (Why Open Source Is the Right Thing to Do)

If you are an Internet user (and you definitely are), you inevitably use an unbelievable amount of free software open source. The Internet inventors designed a huge share of it as open source projects, and anyone using it today reaps the fruits of their effort. For instance, cloud computing is largely based on open source contributions.

如果您是Internet用户(并且确实是),那么您不可避免地会使用数量惊人的免费软件开源。 互联网发明者在开源项目中设计了很大一部分,如今使用它的任何人都收获了他们的努力成果。 例如,云计算主要基于开源贡献。

Besides, a survey by Tidelift and The New Stack states that 84 percent of software developers use open source in their professional routine. Making use of somebody else’s experience and knowledge, why don’t you share yours?

此外,由Tidelift和The New Stack进行的一项调查表明,有84%的软件开发人员在其专业程序中使用开源。 利用别人的经验和知识,您为什么不分享自己的经验和知识?

If we enjoy the benefits of open source, giving back to the community is the right thing to do.

如果我们享受开源的好处,那么回馈社区是正确的选择。

参与开源开发! (Participate in Open Source Development!)

How to start? Open your GitHub repository to the public and tell the world about it via your blog, social media, or developer forums. Register on Hacker News as there are a lot of open source contributors hanging out.

如何开始? 向公众开放您的GitHub存储库,并通过您的博客,社交媒体或开发人员论坛向全世界介绍它。 在Hacker News上注册,因为有很多开源贡献者在闲逛。

Open sourcing makes you grow faster as a developer and brings a useful result to the entire community. At the same time, you should try not to harm the community that gives you all these great open source things. Contribute wisely and help others by answering questions you can help with.

开放源代码使您成为开发人员的速度更快,并为整个社区带来有用的结果。 同时,您应该尽量避免损害给您带来所有这些伟大开源事物的社区。 回答您可以帮助的问题,做出明智的贡献并帮助他人。

你有一个项目的主意吗? (Do you have an idea for a project?)

My company KeenEthics has a lot of experience with open source web development and mobile app deveopment. If you are ready to change the game and start your project, feel free to get in touch.

我的公司KeenEthics在开源Web开发和移动应用 开发方面拥有丰富的经验。 如果您准备改变游戏规则并开始您的项目,请随时与我们联系

If you have enjoyed the article, you should definitely read another one: Agile Testing: How to Ensure High Quality Software.

如果您喜欢这篇文章,则绝对应该阅读另一篇文章: 敏捷测试:如何确保高质量的软件 。

聚苯乙烯 (P.S.)

I would also like to say thank you to Alex Pletnov, CTO @ KeenEthics, for inspiring and contributing to the article.

我还要对KeenEthics首席技术官Alex Pletnov的启发和贡献表示感谢。

The original article posted on KeenEthics blog can be found here: What Is Great About Developing Open Source and What Is Not?

可以在以下网址找到发布在KeenEthics博客上的原始文章: 关于开发开放源码的最大优点是什么?

翻译自: https://www.freecodecamp.org/news/what-is-great-about-developing-open-source-and-what-is-not/

敏捷开发 开源软件

敏捷开发 开源软件_开源软件开发的利与弊相关推荐

  1. 开源系统_二次开发(转)

    转自http://www.phpchina.com/portal.php?mod=view&aid=40204, 更多详细资料请参看原文 最好最实用的二次开发教程 ◆二次开发 什么是二次开发? ...

  2. 开源做账软件_开源软件应该做广告吗?

    开源做账软件 鉴于我们对开源软件的依赖程度,人们会认为我们会有很多选择来支持编写代码的开发人员,但我们没有. 哦,可以肯定的是,如果这是一个涉及巨额资金的大型项目, 例如Kubernetes ,那么筹 ...

  3. er图用什么软件_从软件开发生命周期看商业智能 BI 数据仓库建模

    关于商业智能 BI 的介绍面对不同的企业客户可以从很多不同的角度展开,比如从业务角度.管理角度.数据架构角度.IT 信息化建设角度.BI 实施方法论角度等,不同的视角可以帮助企业更加全面的了解商业智能 ...

  4. access制作封装软件_用Access开发《社工服务管理系统》

    2018年初结缘盟威软件,了解其Access快速开发平台,特别惊喜,这不就是自己一直想要苦苦寻觅的平台吗?但那时候刚毕业工作,对于工作业务流程不是特别的了解,没有进一步深入了解,而且需要代码,所以只能 ...

  5. 485串口测试工具软件_探索者 STM32F407 开发板资料连载第三十一章 485 实验

    1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第三十一章 485 实验 ...

  6. 安卓zip解压软件_压缩软件哪家强?

    有什么好用的解压缩软件吗?这个问题实在是青菜萝卜,各有所爱,今天就来盘点一下. 首先排除国产流氓软件吧. 不得不说,国产软件确实用户体验一流,比如压缩包里看图,但是流氓本性难改.3XX压缩和H压.K压 ...

  7. 文献综述 笔记软件_论坛软件综述

    文献综述 笔记软件 The 'forum' or 'discussion board' plays a major part on most successful Websites, providin ...

  8. 开源经济_开源的(很棒的)经济学

    开源经济 变化越多,它们保持不变的可能性就越大. 考虑一下当<经济学人>公开质疑资本家作为邪恶的官僚寻租者的行为时,我们今天生活的世界是如何改变的,并暗示也许卡尔·马克思毕竟可以教些东西 ...

  9. 开源规则_开源项目的10条规则

    开源规则 1.不完整总比没有好 (1. Something incomplete is better than nothing at all) If you have a piece of code ...

  10. 开发web前端_移动前端开发和web前端开发的区别?

    如果说非要有区别的话应该就是开发的软件和方式不同,因为他们本来就不属于一端的东西,具体来看看下面: web前端开发 用最简单粗暴的方式来讲,就是用html + css + javascript来构建一 ...

最新文章

  1. 一蹴而就的解释是什么_聪明的孩子喜欢问“为什么”,还是喜欢问“为什么”让孩子聪明?...
  2. 中国锂电池行业运营态势分析与投资前景研究报告2022-2028年版
  3. WIn server 2012 Install
  4. 查看表的记录最多的sqll
  5. C/C++教程 第十四章 —— MFC控件详解
  6. css环形进度条clip,clip实现圆环进度条
  7. 笔记:Reliable Patch Trackers
  8. 从排序数组中删除重复项-Python-LeetCode
  9. NmapToExcel 批量nmap写入xlsx
  10. IT痴汉的工作现状28-刀客许三爷(上)
  11. 前端HTML5视频_HTML5核心-张晓飞-专题视频课程
  12. 设计没灵感,一定要逛这5个网站。
  13. AndroidQ(九)Android Q隐私权:权限变更
  14. HyperMesh生成Flac3D的剖分网格
  15. github 私有化部署_用GitLab搭建自己的私有GitHub
  16. 西瓜书 数据集3.0α
  17. Spring框架自学笔记
  18. Android定位基础
  19. 天津一汽丰田召回18万余辆卡罗拉、花冠EX汽车
  20. 测试光照软件,太阳能电池IV测试软件

热门文章

  1. 高德地图根据经纬度生成位置定位图片(发送位置)
  2. 城市公交、地铁站点和线路数据纠偏与矢量化
  3. 使用 .reg 文件操作注册表
  4. STM32网络通信之DM9000了解
  5. 车牌识别算法实现及其代码实现之三:车牌识别
  6. vue + pdf.js实现浏览器查看pdf文件
  7. 程序员自我介绍如何出彩?面试「万能模板」快拿走!
  8. QQ群排名霸屏:快速上排名方法
  9. 【机器学习】21个机器学习面试问答
  10. python实现单例模式的几种方法实例详解