`
whoisjackychen
  • 浏览: 13190 次
文章分类
社区版块
存档分类
最新评论

What does it mean to be an Open Source author? A story from the inside

 
阅读更多

http://www.jroller.com/jppf/

The Java Parallel Processing Framework (JPPF) is a grid computing toolkit for Java that makes it easy to run applications in parallel, and speed up their execution by orders of magnitude. Write once, deploy once, execute everywhere!


What does it mean to be an Open Source author? A story from the inside


I hear daily about open source projects, the open source business model, what it means in terms of freedom, choice, risks, investment, etc... What I rarely hear about is what is life like for those who actually contribute and dedicate a part of their life to open source?

I do not pretend to understand how it is for most open source contributors, or even that there are patterns to understand. However I do believe that there are stories worth telling. Here is mine, I'll let you appreciate ... or not :)

First, the project is called JPPF (Java Parallel Processing Framework) and that's all I'm going to say about it. This article is not about the project itself, but about the difference it makes and the impact it has in people's lives, including mine.

The creation

Once upon a time, there was a geek with an idea and a piece of code. He was thinking, "gee, this looks cool, why don't I make it publicly available for free?".
It's one of these "what the heck" ideas that pops in our head for no reason.

Thus, the project was borne and dully registered on SourceForge. It seemed so exciting at the time, and you know what? After over 3 years of (sometimes) gruesome work, it's more exciting than ever.

The lonely work

For a long time, there was only one guy, working by himself, doing basically whatever he wanted to, a free electron with a vague sense of purpose and a particular view of what his free time was about.
This was a time of long hours, early mornings, late nights, week-ends that passed without my noticing, lots of cigarettes and coffee. Although I have since expanded my horizons and I also do jasmine tea.
Yep, that was me. I loved coding, I still do, and I always will.

From 0 to more than 1 user

There came a time of coding, releasing, coding, releasing. The project started gathering some momentum, as a small community of users started to use it, but why was it not working in this case, or why did it not have this feature, or how could I do this, etc...? You get the drift.
Oh my, now I had to start interacting with other folks! What was I to do?

That started a (thankfully short) period of intense existential self-questioning. What was the purpose of this project? Why did I actually open-source it?
I resolved this by deciding unilaterally that it would be a free contribution, for whomever would be interested enough to look into it. I also decided that it was my personal responsibility to support these brave folks into using the project, and to make it, as much as possible, a happy experience for them.

Users as contributors

Hence I started communicating with others, and really got a blast out of it. These people are great! I can't tell enough how much of a difference they have made to the project. Here's a summary of how:

  • they are from all over the world, isn't that cool? I have had questions, comments and criticism from people on 5 continents
  • every question they ask is a potential feature, and has often become a real feature
  • every bug discovered contributes to the quality of the project
  • most requests for clarification have generated an entry in the documentation
  • many users were so kind, they actually thanked me and encouraged me! Every time it happens, this makes my day
Beloved Users, you are the only reason why this project is still present. If this project made a difference in your life, you undoubtedly made a huge one in mine. I love you.

From 1 guy to a team

Another wonderful effect of interacting with the users, is that some of them made the jump from contributors to active project members.
Therefore, it was no longer a one-man-show. I was no more free to do anything I wanted, and was accountable to not only myself, but also everyone in the team. It also generated additional work: we had to setup some processes, share ideas about architecture, design and implementation, ramp-up the newcomers and so forth.

Almost immediately, the flow of ideas transformed what was possible for the project, not only in the future, but right then and there. The project expanded, along with the vision we had of it. As a consequence, the team also expanded, which in turn generated its own set of issues and interrogations...

Leadership

The notion of team and community is intricately tied to that of leadership. What is a leader? Here is the definition I go by: "a leader is someone who gets others into action by enrolling them into a possibility, such that they are touched, moved and inspired by that possibility".

By that definition, I can honestly tell I have had many successes and many failures. There are two huge failures that I have not yet overcome:

  • I failed to keep the team excited and inspired. I'm currently the only active contributor and have not heard from the others in months. Whatever the reason, I accept this at it is. Each team member will always have a place in the project, and I thank you guys for everything you've done, thank you a thousand times
  • I failed to find a leader for the project. Or is it that I failed to let go of my perceived importance? In any case, I find it dreadful that the project could just end if, for instance, I suffered a brain attack that would eradicate my last (and only) remaining neuron.
I am present to the fact that the project can only reach its full potential when these issues have been resolved.

Presenting a front to the world

The project is hosted and lives on the net. It implies that there has to be a web site to present it, explain what it does, document it, support the users, etc. Also, to attract new users and retain the existing ones, it has to be sexy, interesting, comfortable, and easy to navigate.

I'm a programmer, for goodness sake, not a web designer! Yes, I know HTML, CSS, some PHP. Yes I developed my own templating system that makes the web site maintenance so much easier. How is it that the various versions of the web site I developed always came out as ugly, crappy, boring or often all 3 at once? Hum, I definitely do not have the vision of an artist, and I need professional assistance in that area.

I didn't have to look far: my sister is a professional graphics designer, and in a couple hours came up with a design that is light years better than anything I could do in weeks (or months or years for that matter, I just don't have that talent). Isa: thank you for your generosity and for sharing your talent!

Promoting, Marketing, PR-ing, Publishing

All right! the project is working, there's a great looking web site, a lot of documentation, support forums. But what is the point, if no one knows about it?

This is where the concept of promoting the project comes into play. How does that work? I don't think it's a secret: one has to learn what the content publishers love to read. It takes time, trials and errors, finding the appropriate channels, and sometimes ... being bold and audacious. You'll never know whether the great news you have about your project can be published, unless you actually submit it to those whose job is to publish it.

Some of the channels I have been successful with in that area:

  • online magazines
  • blogs sites
  • related technology sites
  • online presentations (webinars)
  • in-person presentations

I cannot emphasize enough how this promotion work allows a project to take off and make a difference at any kind of scale.

Beloved online publishers and journalists, thank you for the astonishing job you are doing at publishing about people, technology and open source. I love you.

Acknowledgments

I want to thank:
  • you, beloved reader, for reading this far :)
  • all those who work on and contribute to open source software. Keep the spirit alive!
  • everyone who uses open source. Without you guys, there'd be nothing to use

Stay in tune...

分享到:
评论

相关推荐

    SSD7 选择题。Multiple-Choice

    (a) filling in skeleton tables of the database with examples of what is to be retrieved (b) placing SQL keywords, such as select, under the column names they want to retrieve (c) typing a ...

    Batch,Batch,Batch":What does it really mean?

    Batch,Batch,Batch":What does it really mean? 对渲染中dc的消耗的讲解

    Open Source Intelligence Methods and Tools

    Open Source Intelligence Methods and Tools focuses on building a deep understanding of how to exploit open source intelligence (OSINT) techniques, methods, and tools to acquire information from ...

    The Little Prover

    What does it mean for a statement to be true? Some statements can be verified directly. To determine whether a particular omelette is delicious, we merely have to taste the omelette. Our answer is ...

    构建数据科学团队

    does it really mean to be “data driven”? My definition is: A data-driven organization acquires, processes, and leverages data in a timely fashion to create efficiencies, iterate on and develop new ...

    How is logging implemented in OSS?

    Method: In this paper, we carried out an empirical study to explore the logging practice in open source software projects so as to establish a basic understanding on how logging practice is applied ...

    The_Inside_Threat_-_as_important_as_profits_.pdf

    What is the Inside Threat? Inside Threat vs. Insider Threat Inside Threat: is there a problem? Anatomy of an inside data loss incident Who: who lost the data from the organisation? What: what actually...

    A Guide to Complex Variables (Steven G. Krantz 2007).pdf

    Thus it is a bit difficult for the student to focus on what are the essential parts of this subject. What must one absolutely know for the qualifying exam? What will be asked? What techniques will be ...

    Packt.Python.Journey.from.Novice.to.Expert.2016

    thus making it a popular language among programing enthusiasts.This course will take you on a journey from basic programming practices to high-end tools and techniques giving you an edge over your ...

    Complete Guide to Open Source Big Data Stack

    In the Complete Guide to Open Source Big Data Stack, the author begins by creating a private cloud and then installs and examines Apache Brooklyn. After that, he uses each chapter to introduce one ...

    a project model for the FreeBSD Project.7z

    It contains information about where to fetch the source, what patches to apply and how, and how the package should be installed on the system. This allows automated tools to fetch, build and install ...

    A Practical Guide to Designing for the Web.pdf

    What does it really feel like to be a designer in this industry today? Well, let me ask you, what was the most rewarding aspect of the last project you finished? My guess is that the answers will ...

    计算机网络第六版答案

    Hence, it becomes possible for the attacker to issue a command to all the nodes, that target a single node (for example, all nodes in the botnet might be commanded by the attacker to send a TCP SYN ...

    Zotero-5.0.96.2_setup.zip

    As an open-source tool, The program is free in two senses of the word: you don’t need to pay to use it, and you’re free to make changes to its code to make it do what you want. The benefits of the ...

    Java邮件开发Fundamentals of the JavaMail API

    be an open relay, as authentication is supported, but it is your responsibility to ensure the SMTP server is configured properly. There is nothing in the JavaMail API for tasks like configuring a ...

    Universal-USB-Installer

    that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without ...

    A Guide for Migrating From Oracle to MySQL

    Both the business and technical sides of migrating to MySQL will be dealt with, so whether you are a manager or a seasoned DBA, you will find the needed answers to questions that revolve around ...

Global site tag (gtag.js) - Google Analytics