Open Sauce

Wednesday October 18thBeing in the Industry, Software Development Category

Open Source (OSI) LogoI’ve been interested in Open Source Software (OSS) for quite some time now but I’ve never really attempted to find out much about it, nor how I can contribute. Of course, being a professional developer, the immediate thought is “I make a living off writing software, so how does that work with Open Source?”.

After reading all the news about Vista and it’s attempts to completely revoke my rights as a user, my interest in the OSS movement in general has increased, and I do feel it’s time for me to not only get a better understanding of what it is and how it works, but how I can contribute to it.

What is it about OSS that makes it work? Is it possible to support yourself and a family off the fruits of your labours if you’re working in the OSS community? Is it going to provide the challenges I want from my job? Is it a valid model for writing bespoke software as per a client’s request?

If you ask The Inquirer they’ll tell you that:

Getting your head around Open Source is a bit easier, and according to Bernard Dalle, from VC firm Index Ventures the movement, if you can still call it a movement, is accelerating like there’s no tomorrow.

He said there are around 120,000 Open Source projects up and running. “We’re not asking ourselves whether we can make money out of open source any more,” he said.

And better than that, it’s “a billion dollar market, going at a 40 or 50 per cent rate”.

I don’t know about you but that sounds pretty darned impressive to me! So how do you get involved?

Looks like there are a few ways :)

1. SourceForge

Point you browser at SourceForge, have a browse through the plethora of OSS projects that are running (trust me, there’s a shitload), and join in! Most of the time the developers are keen to get help whenever they can. If you find that you’re stills aren’t up to date, then you’re going to have to make an effort to get up to speed before you can contribute.

If you can’t find a project that you’re interested in, or people aren’t necessarily interested in having you join in, then you can always start your own. You don’t have to find something that noone else is doing, all you have to do is come up with something you’d be interested in working on, and ask the guys at SF.net to set up a project for you. Then you’re in full control, and you can begin work straight away.

2. Just go it Alone

This is always a viable option, but people tend to “die out” when doing things this way. Get your own web space, and set up the development project yourself. It takes a pretty dedicated person to go through this kind of development task by themselves and see it through to the end without getting any help along the way. I think that if you want to make sure you keep on track, it’s probably a good idea to try to get a few people to work with you, otherwise you may find that your motivation starts to drop and you don’t end up finishing (which is the bane of many programmers).

3. Sign up for Contract OSS Work

I stumbled across this idea via the Larkware Site (see “Sites for Geeks” on the right) and thought it was pretty neat. There’s a site currently being built which, by the looks of it, is designed to be a hub and a resource for employers and developers writing OSS. The site is called Assembla, and is currently in the throws of being set up properly, though it looks like there is at least some form of collaboration and linking mechanism up there. This could well be a way for potential OSS developers to get involved with a company anywhere in the world and aid them in building OSS. What a great idea!! To pouch a snippet from the site:

We take the best practices from open source and agile methodologies, and distributed teams and adapt them for commercial software development. It’s not typical contracting or outsourcing, but a third way that gets you the best talent available in the world, exactly when you need it, as part of a single global team. So, take advantage of our free development workspaces for distributed teams, advertise yourself as a developer, apply to work on Assembla projects, or get fast, full-service development and launch.

4. Use your Imagination

The point here is, the concept of OSS is pretty simple, so you could create software, zip up the source and send it to people through spam if you really wanted to :) The limit is your imagination, so use it! There are a stack of other ways you can get involved, and there’s really nothing stopping you.

A Common Misconception

OSS doesn’t necessarily mean free, and free doesn’t necessarily mean OSS. It’s important to get an understanding of the difference between the two. Also, it’s fairly common for naive devs to think that you can’t write OSS on a Windows platform due to the nature of MS - again, that’s wrong. The software you create you can do whatever the hell you want with - if that includes releasing the source to the masses, then so be it. Be careful though, if you’re writing software for a client and they’re paying you to write it for them, make sure that you own the IP or there is a clause in your contract that states that you’re able to release the source if you want to before you actually do it. The last thing you want is to have a law suit on your hands.

Conclusion

My knowledge of OSS is pretty limited, but from reading around the web and speaking to some mates who are in on it, I’m finding that I’m getting quite excited about it. It not only sounds interesting, but it looks like fun as well! A good start would be to get familiar with some of the licencing models such as GPL, LGPL and APL.

So, if there are devs out there wasting time by reading blogs such as this ;) Get off ya butts and start contributing, you never know where it may take you! I for one will be scouting the options for something to contribute to.

3 Comments

  1. Tom
    October 18, 2006

    My contributions to Open Source have been sporadic at best, but they have nearly always been for projects which I have been *using*.

    For example, I love Python. The biggest problem I had with it six months ago was its shitty exception handling syntax: you could use “try” and “finally” together, or “try” and “except” together, but you could never combine the two. This resulted in ridiculous nesting just to ensure all cases were properly taken care of. So, eventually I wrote the try-except-finally syntax for Python 2.5.

    So that’s another way to get into Open Source too: find a project you love and use on a regular basis. Something in which you have an emotional investment. When something annoys you, learn the code base and contribute the code necessary to fix the annoyance. I can guarantee that your first contribution will be your most painful, but your most rewarding.

    Personally, next on my list is layer folders for the GIMP, but I’ve been told that any such changes will be blocked from the core until GEGL is finished. *sniff*

    Cool post OJ, but I’d recommend people to look around: quality open source software projects are few and far between on Source Forge. Find something you love and show it some TLC. :)

  2. OJ
    October 18, 2006

    Awesome comment Tommy :)

  3. OJ
    October 20, 2006

    A quick newsflash — I stumbled across this over breakfast this morning, and I thought it was an interesting little read with regards to Open Source. It covers a few things from a bit of a Java perspective. Check it out.

Leave a comment

Size

Colors