theread.me/site/open-source-good-bad-ugly/index.html

187 lines
8.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Open-source: The Good, The Bad and The Ugly</title>
<meta name="description" content="I have been doing Open-source for a while, I dont call myself an “expert” or something like that,but Id like to share my opinion and experience on contribu...">
<link href="https://fonts.googleapis.com/css?family=Secular+One|Nunito|Mononoki" rel="stylesheet">
<link rel="stylesheet" href="/css/main.css">
<link rel="canonical" href="http://localhost:4000/open-source-good-bad-ugly/">
<link rel="alternate" type="application/rss+xml" title="mahdi" href="http://localhost:4000/feed.xml" />
<!--<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>-->
<script>
var channel = new BroadcastChannel('egg');
channel.addEventListener('message', message => {
alert('Got a message from the other tab:\n' + message.data);
});
</script>
</head>
<body>
<header class="site-header">
<h1>
<a class='site-title' href='/'>
mahdi
</a>
</h1>
<nav>
<p>
<a href="/snippets">snippets</a>
<a href="/art">pictures</a>
</p>
<!--<p class='categories'>-->
<!---->
<!---->
<!--<a href="">art</a>-->
<!---->
<!---->
<!---->
<!---->
<!--</p>-->
<p>
<a href='mailto:mdibaiee@pm.me'>email</a>
<a href='https://git.mahdi.blog/mahdi'>git</a>
<a href='https://www.librarything.com/profile/mdibaiee'>librarything</a>
<a href="http://localhost:4000/feed.xml">feed</a>
</p>
</nav>
</header>
<div class="page-content">
<div class="wrapper">
<h1 class="page-heading"></h1>
<div class='post lang-en'>
<div class="post-header">
<h1 class="post-title"><p>Open-source: The Good, The Bad and The Ugly</p>
</h1>
<p class="post-meta">
<span>Oct 13, 2015</span>
<span>Reading time: 5 minutes</span>
</p>
</div>
<article class="post-content">
<p>I have been doing Open-source for a while, I dont call myself an “expert” or something like that,
but Id like to share my opinion and experience on contributing to, and maintaining open-source code.</p>
<p>So, Ive been following and contributing to open-source projects for quite a time,
and I have had different experiences every time. There are always good and bad experiences
along a road, its never a heaven, never a hell. Ive had contributions as small as fixing a typo in README, and as big
as adding a new feature to Firefox Developer Tools or refactoring a whole repository!</p>
<p>Here Im going to share my experiences and what Ive learned along the way that you should consider
if you want to take this road.</p>
<h2 id="the-good">The Good</h2>
<p>I love open-source, its awesome how people share their efforts with others, and others give feedback to
the maintainer to make the software better. Its an always-growing system, even if a maintainer stops maintaining,
its possible to <em>fork</em> a repository and continue it, although not as easy, but possible.</p>
<p>The best part of doing open-source, in my opinion, is building connections and learning from others.</p>
<p>Whether you are maintaining or contributing to a project, you are going to learn new things, it just happens.</p>
<p>If you are a maintainer of a repository with a countable amount of users, you are going to constantly learn your mistakes from others,
finding these mistakes by yourself is really hard, because you cant easily look at a subject <em>the other way</em>,
but users have this potential to look at your code with their eyes, seeing mistakes you cant see.</p>
<p>If you are contributing, following or just exploring projects, you are definitely going to learn, the solutions people suggest to a problem,
the way they communicate, etc.
Usually, not always, the maintainer has a better knowledge over the subject of project than you, so you are going to learn from him and other contributors
by reading their code or exploring the issues and how theyve been solved. I personally learned a lot this way. I would volunteer to fix a bug, then the maintainer and other contributors would show up to give their suggestions and ideas on the issue, which I would then learn from. I also subscribe to interesting issues that I dont know how to fix to see how they get solved.</p>
<h2 id="the-bad">The Bad</h2>
<p>First off, the most annoying thing about open-source contributions is that people (Im looking at you, maintainers) think
that contributors are jobless bored people who dont know how to spend their time and have come to waste some time on some random open-source project, NO, seriously.</p>
<p>I have a job, I totally care about my time and Im not making a Pull-request because Im bored.</p>
<p>Now, why is that important to know: it has happened to me a couple of times that I ask on an issue:</p>
<p><em>”- Okay, Im interested, what <strong>exactly</strong> has to be done?”</em></p>
<p><em>”- Great, please do x, y, z”</em></p>
<p><em>… some time later</em></p>
<p>_”- Here is x, y and z, please review and merge”</p>
<p>_”- Oh, thank you very much, but you know, now that I think of it, I dont want x, y or even z. Closing.”</p>
<p>and Im like:</p>
<!-- ![Are you kidding me?](/img/are-you-kidding-me.jpg) -->
<p><img alt="Are you kidding me?" src="/img/are-you-kidding-me.jpg" /></p>
<p><span class="image-caption">Are you kidding me?</span></p>
<p>This is the worst thing that can happen to you, try to avoid it, you dont want your valuable time wasted.</p>
<p>How to avoid it you ask, there is a sign that Ive found which leads to this problem most of the time and thats <strong>lack of clear specification</strong>, just like with clients, if the maintainer doesnt specify what should be done, you should stop.</p>
<p>It happened to me, just like the past discussion, except he didnt tell me <em>“Please do x, y, z”</em>, he made himself look
too busy and said: <em>“The title says it all”</em>, no, it doesnt say it all. “x, y and z” can be implemented in <code class="language-plaintext highlighter-rouge">2^9</code> ways, and sadly,
you are not going to accept the <code class="language-plaintext highlighter-rouge">192</code>th way, as you “dont like it”. Do not get trapped in these time-wasting situations, I wish maintainers understood how valuable peoples times are.</p>
<h2 id="the-ugly">The Ugly</h2>
<p>The sad part about open-source is, if the maintainer decides not to support the project anymore,
people will <em>kind of</em> suffer. If the maintainer abandons the project, the project is <em>almost</em> doomed, as forking and continuing is really hard, reading the code from bottom up and understanding it isnt easy, and as there is no outcome, people usually decide to abandon a project once they lose interest in the topic.</p>
<p>If I personally lose interest in a project Ive made, Ill abandon it, I will try to guide new users through but I usually
dont offer as much support, I have more important things to do, its really sad, but true.</p>
<p>To prevent this from happening, you must be able to make money out of your project, or your project must be really interesting
and challenging to keep you working on it.</p>
<hr />
<p>Thats it, please note that everything you read here is my opinion, its not a rule, not a judgment, its my opinion and experience. If you would like to discuss this further, put a comment below or reach me at <a href="https://twitter.com/mdibaiee">twitter</a>.</p>
</article>
<div class="share-page">
Share in
<a href="https://twitter.com/intent/tweet?text=Open-source: The Good, The Bad and The Ugly&url=http://localhost:4000/open-source-good-bad-ugly/&via=&related=" rel="nofollow" target="_blank" title="Share on Twitter">Twitter</a>
<a href="https://facebook.com/sharer.php?u=http://localhost:4000/open-source-good-bad-ugly/" rel="nofollow" target="_blank" title="Share on Facebook">Facebook</a>
<a href="https://plus.google.com/share?url=http://localhost:4000/open-source-good-bad-ugly/" rel="nofollow" target="_blank" title="Share on Google+">Google+</a>
</div>
<div id="commento"></div>
<script defer
src="//commento.mahdi.blog/js/commento.js">
</script>
<script src="/js/heading-links.js"></script>
</div>
</div>
</div>
</body>
</html>