187 lines
8.6 KiB
HTML
187 lines
8.6 KiB
HTML
|
<!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 don’t call myself an “expert” or something like that,but I’d 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 don’t call myself an “expert” or something like that,
|
|||
|
but I’d like to share my opinion and experience on contributing to, and maintaining open-source code.</p>
|
|||
|
|
|||
|
<p>So, I’ve 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, it’s never a heaven, never a hell. I’ve 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 I’m going to share my experiences and what I’ve 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, it’s awesome how people share their efforts with others, and others give feedback to
|
|||
|
the maintainer to make the software better. It’s an always-growing system, even if a maintainer stops maintaining,
|
|||
|
it’s 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 can’t 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 can’t 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 they’ve 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 don’t 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 (I’m looking at you, maintainers) think
|
|||
|
that contributors are jobless bored people who don’t 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 I’m not making a Pull-request because I’m 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, I’m 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 don’t want x, y or even z. Closing.”</p>
|
|||
|
|
|||
|
<p>and I’m 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 don’t want your valuable time wasted.</p>
|
|||
|
|
|||
|
<p>How to avoid it you ask, there is a sign that I’ve found which leads to this problem most of the time and that’s <strong>lack of clear specification</strong>, just like with clients, if the maintainer doesn’t specify what should be done, you should stop.</p>
|
|||
|
|
|||
|
<p>It happened to me, just like the past discussion, except he didn’t 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 doesn’t 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 “don’t like it”. Do not get trapped in these time-wasting situations, I wish maintainers understood how valuable people’s 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 isn’t 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 I’ve made, I’ll abandon it, I will try to guide new users through but I usually
|
|||
|
don’t offer as much support, I have more important things to do, it’s 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>That’s it, please note that everything you read here is my opinion, it’s not a rule, not a judgment, it’s 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>
|