Open ... and Shut Open source has long had a strong corporate element to it, perhaps starting in earnest when IBM pledged to spend $1bn on Linux back in 2000. Despite the benefits of corporate funding of open-source software - more money, more source code written - some question whether open source has become too corporate. For those who worry about the commercialisation of open source, I'd like to introduce you to Pedro Algarvio, contributor to the SaltStack project.
Algarvio is interesting because he fits the original mold of the open-source developer: he writes code because he loves it, and not because he gets paid to do so. It's easy to overlook such developers, given years of analysis (by me and others) highlighting how GNOME, Linux, Apache, Mozilla and others are fueled by developers paid to contribute open-source code.
But Algarvio plays an important role with Salt, an open-source tool used to manage one's infrastructure. In some ways similar to Puppet or Chef, Salt distinguishes itself by being lightning fast and super easy-to-use. Black Duck named Salt one of its 2011 Open Source Rookies. Dave Gruber highlighted its rapid adoption.
None of which explains why Algarvio got involved. He's a core contributor to the project, despite having no commercial or other affiliation with the Salt developers. Or even with configuration management or infrastructure management.
Algarvio is a sound technician with Portugese National Radio (RTP) in Portugal since 2004, having worked his way toward a music career by handling the sound for a local pub that featured live gigs twice each week, among other things. He doesn't use infrastructure management tools in his day job, per se. I therefore asked him how he came upon Salt, and why he contributes.
His answer is classic old-school open source, and very telling as to why open source can be powerful. I'm going to quote him at length:
A few years ago I was searching for encrypted ZMQ communication, and Salt came up in a Google search. When I first got acquainted with Salt, my idea was to "fork" its communication layer.
Back then, I was trying to create a project that would make my life easier at RTP. My job sometimes includes monitoring the 5 RF (radio frequency) stations we have, their satellite uplink/downlink and web streams. On top of that, we also had about 6 web radio streams (we now have 15). Of course we have problem detection systems, but not all problems are solved by our current system, eg, phase problems, specially on the web streams front.
I had already coded a basic the monitoring system using GStreamer, but it was attached to a desktop (PyGTK). I needed to pursue a client/server communication approach: one server doing the monitoring with several clients getting notified of the problems.
When I was taking Salt for a spin to see if I could fork its communication layer, by then Thomas [Hatch, Salt's founder] was pretty busy hacking Salt's internals, I found some bugs that I was able to solve and saw that it had a limited logging support. My first contribution was to be able to install Salt without being root.
I contributed what I could at that stage and reached the conclusion that just forking Salt's communication layer was going to be cumbersome and hard to maintain as a separate project as it evolved. On top of that, the project that I was working on at that time was also getting cold and I was getting less enthusiastic with it. It was something I was doing without being asked for, on my free time, and sometimes you just need someone to give you a little push.
Pedro's contributions to Salt
I ended [up] dropping out of the Salt community for about a year, if not more. I returned because I reached to the same dead end. I needed a fast, encrypted, messaging system for yet another project idea. Salt had it! This time I wasn't going to fork Salt, I was going to make it work for me :) So, I got my hands dirty again.
I ended up adding some more stuff to the logging work I had previously done and adding a basic shell parser which should show Salt's dependencies versions to help on bug reports. Afterwards I added its current parser system, then I got in touch with its testing suite. I hated unit testing at this stage. Yes, it it was very useful but creating test cases was a pain. I now love getting a bug reproduced in a test case, which is my first step when I get to a bug, afterwards, I hack until it's fixed. (It's still a pain to create test cases, I just have more fun at it now.)
When I first contributed to Salt, I wasn't aware of what Salt could really do. Now, I have a bigger idea, and I see a really bright future ahead….The more I get into Salt's code, the more I grasp what it can do, the more things I want it to do, the more hooked I get into it. It's like a sugar rush, once you start hacking, you just can't stop!
Algarvio had a need for Salt, but his use case doesn't neatly fit into "configuration management" or any of the other industry definitions we could give to Salt. There is no way that a product manager at some proprietary software company would ever have thought to reach out to Algarvio. Frankly, there's no way that Salt's Thomas Hatch would have, either. But being open source, the code is hosted on GitHub and invites the Pedro Algarvios of the world to discover, download, fork, and use the code, however they want. And to contribute back if they see fit.
In Algarvio's case, he definitely "sees fit." As he told me, "I prefer and tend to only use open source software. If I'm able to contribute back to the open source projects I use, hell yes, I'll contribute back, the world will be a better place!" He's right. And he's not getting paid to say that, either.
For years I've focused on the IBMs to the exclusion of the Pedro Algarvios of open source. That's a mistake. It takes both kinds of contributions to make open source work: the corporate suit and the hacker enthusiast. ®
Matt Asay is vice president of corporate strategy at 10gen, the MongoDB company. Previously he was SVP of business development at Nodeable, which was acquired in October 2012. He was formerly SVP of biz dev at HTML5 start-up Strobe (now part of Facebook) and chief operating officer of Ubuntu commercial operation Canonical. With more than a decade spent in open source, Asay served as Alfresco's general manager for the Americas and vice president of business development, and he helped put Novell on its open source track. Asay is an emeritus board member of the Open Source Initiative (OSI). His column, Open...and Shut, appears three times a week on The Register. You can follow him on Twitter @mjasay.