Why You Should Give Away (Some) of Your Work

I am an ardent supporter of the open-source philosophy – but who isn’t? It is a safe assumption to make that just about anyone working on the web in some capacity (developer, designer, information architect, marketer, etc.) is taking advantage of free/open-source work in one way or another. The internet would not be the internet that we know without free and open-source projects moving it forward. With that in mind, I consider it the obligation of those who make a living on the internet to carry their share of the weight and offer up something in return.

As web-based bread-winners, we work in one of the few, if only, professions where it is common place for our peers to give away their hard work. Not only do many release their work, but tremendous effort is put forth to make it easy for others to use. When I try to explain this to friends/family who are unfamiliar to this environment, they think we are crazy. Honestly though, could you imagine what it would be without this reality? I think most web developers and designers want to release some of their work, if not for altruistic means then for promotional. The problem is the time and the effort it takes to actually release it can be substantial. I could lie and say that the effort is always immediately worth it and that it will always be appreciated – but we know better. There will be times where no one even seems to notice or care. That said, the web landscape depends on the contribution of publicly released projects to keep innovation chugging.

If you want to accomplish something in the world, idealism is not enough – you need to choose a method that works to achieve the goal.

So here’s the deal. I suggest you take something you have been tinkering with in your spare time and release it. Do you have something you have used or currently use which speeds up your workflow? Release it. However, simply releasing something for free is not good enough – license it under a GNU-related license or under Creative Commons. If you work on the web, you do having something that someone else could use. Whatever that is, release it. We are all beneficiaries of an individual or a group of individuals taking the time to do the same thing – why not do the same in return? There are plenty of obvious reasons to release your work which I do not feel the need to dwell on in this article. Rather, I want to spend some paragraphs discussing other reasons to offer up your work.

Your job exists on the fact that other people gave work away for free

The idea may be somewhat basic, but it is a point many overlook or take for granted. This site, along with many others, runs on WordPress and is being served by a LAMP-stack server. In addition, you are most likely viewing this site with Firefox or a WebKit-based browser. All the Javascript on this site is built on top of jQuery. This specific experience is more common than it is not and is almost entirely based on open source projects. If we did not have projects like Linux, Apache, WordPress, jQuery, Rails, Eclipse, Blueprint, etc., the process of creating quality websites would be more costly, less reliable and take more time. The fact that we rely so heavily on the hard work of others dictates the need to return the favor. Our aggregate effort really does make a difference.

Due to this open source platform, the software overhead of creating many websites is essentially nothing. If ramping up a web project necessitated buying licenses for Windows Server, an Oracle database, and commercial IDEs to develop in, the costs just to get started would prove too high for small businesses, hobbyists, young entrepreneurs or any other entity unable to absorb the initial investment. Just imagine if you had to pay for each instance of Rails or WordPress you ran on your server. The web would be a very different place and we would likely not see things like free email or small bootstrap startups. This low cost environment of building on the web allowed early and rapid adoption by entrepreneurs, developers and creators. Almost all the titans of the internet started as small startups with non-existant budgets but great concepts. Ideas drove innovation, not capital. Without that free and open foundation, this likely would not have happened. We would not have seen the anything close to the volume and diversity of sites. All web entities would have been much more business focused and likely more business-centric. It would have been horrible.

Commercial products fit an important purpose, make no mistake. However, I have observed that my suite of tools is moving more and more towards open-source projects. Not because of any idealistic preferences, but because they are simply better. Support is community driven and (for large products) both voluminous and granular. My experience is that finding specific solutions, work-arounds, tutorials and other informational documentation is generally easier for a strong open-source product than its commercial counterpart. Additionally, third-party development in the form of add-ons, plugins, etc. can easily dwarf that of closed-source/commercial competitors. The community-driven development of a product allows for individuals to build solutions for their niche needs that would otherwise may be passed up in the traditional commercial model. In the end, I find strong public projects to offer more features and have a better support platform due to the product’s community. I rely so heavily on public products nowadays that my workflow would essentially have to start from scratch if I could no longer use them.

Open source helps close the digital divide

As hardware costs decline, commercial software costs are becoming the major impediment for lower-income households. Access to technology is not enough – the technology needs to be fit in their budget. Free and open software helps ensure that individuals across all income levels, ages and geographical regions have the same access as those more privileged. This has left an indelible mark on the internet since there is little to no monetary overhead for developing web applications, publishing information or creating media. The rich ecosystem of the internet would otherwise be stagnant if we strictly relied on commercial solutions. Yes, free software which is not open source achieves the same goals in the short term. However, free but closed-source projects can many times die on the vine if the creator(s) stop working on it or stop supporting it. Open source ensures that products continue to live as long as the public feels it serves a need.

Closing the digital divide is not just some charity-case; it is beneficial for everyone. By giving a larger swath of the population access to open and accessible technology/content, we are all able to reap the rewards of millions more potential developers, publishers and content-creators. You may end up using something that one of those people helped release to the public. We all benefit by a more open and inclusive environment.

The effort it takes to get your work ready for public consumption will make it a better product

Make no mistake whatsoever, the creation a good product can be significantly easier than the process of publishing it. For instance, by the time I released coordy, I ended up spending more time getting it ready for public use than I did actually coding it. For code-based projects, you need to spend time commenting your code, writing documentation, cleaning up poorly-written or unused code, creating examples, unit-testing (if you are hardcore), installation notes, I could go on… These are all crucial to a public release, but they are rarely done for oneself. Additionally, when you need to take other people’s use-cases into consideration, it forces you to think about new features, functionality and overall improvements that may currently be unimportant to yourself, but immediately vital to others. By taking the time to make a project usable for the public, you are inherently making the project better for yourself.

The very process of publishing your work is a learning process

Prior to coordy, there was no need for me to write documentation as the code I wrote was primarily for myself. Like many other people, I tend to learn things on a need-to-know basis, therefore documentation was not something I had any experience with. While I cannot attest to being someone who writes exceptional documentation, it is something I am working on and hope to improve at. Besides the obvious tasks for publishing work, even things such as clearly describing what your project is and how it works can be something that we do not necessarily have experience in. How about creating workflows and tools to make the process of packaging up the final product more efficient? These are all invaluable skills that we otherwise may pass on if our project never sees the light of day.

There’s a good chance it is not worth selling

Despite what music companies would like to you believe, just because someone is interested in your work, it does not necessarily mean they are willing to buy it. This does not mean that it is worthless but rather due to the fact that many products are valuable due entirely to the fact that they are free. Open source projects succeed when a large developer community exists around it to provide support, improvements and add-ons to the codebase. I am a firm believer that most web-based products are not worth the time, effort and support it would take to properly sell it. Can you imagine anyone paying for a PHP framework, an Actionscript library or a pixel icon set? Outliers do exist, yes, but they seem to be few and far between. For many, there is far more karma to be gained by offering up work for free than dollars to be gained by selling it.

Open source is not just about code

I firmly believe the notion of open source needs to move beyond source and into other sectors. It is happening, but very slowly. Designers on the web medium will soon not have the luxury of ignorance when it comes to development. As this happens and our future designers have a more intimate relationship with code, development and all that comes with it. I predict that due to this progression, we will see a stronger embrace of the idea of open source among the design community, culminating with a growth in open source fonts, design templates, assets, etc. Open source, when boiled down, has never been about code – it has simply been about sharing ones work to make the larger community a little richer. It sure, seems like something worthwhile, wouldn’t you think?

16 thoughts on “Why You Should Give Away (Some) of Your Work”

  1. Hi
    im really interested in making some of my stuff available..
    Any links or tips on the best or most common workflow to prepare your work for open source?
    thanks

  2. How do we get designers (defined as people who don’t code) to participate more deeply in open source? We’re seeing more and more designers release their templates, diagrams and processes into the public, but these artifacts often stand alone. They are not part of a larger effort to create a “thing”. Designers have a hard time joining larger open source projects due to deep seated antagonism between themselves and developers. I’m curious how this can change so that designers are welcomed into the open source software fold and that developers have appreciation for designers on their projects.

  3. esko – It really depends on what type of project you’re talking about. For Actionscript projects, specifically when building in Flex, ASDoc is an amazing help and would be the first place to start. My workflow for releasing something to the public begins with trying to think about what the majority of users would want from what I am going to publish. I then try to meet as many of those wants/needs as possible. From there, I try to package up the product so that it is as easy to use and ready out-of-the-box as possible. Lastly, I try to spend as much time as I can explaining what the product is, how it is meant to be used and how to get started with it. This may include examples, documentation or even tutorials. Lastly, do not underestimate the value of being able to explain you product in one sentence. None of these examples I give are specific, but that is because each project will differ in how you go about achieving these goals.

  4. Dan – I completely agree, and it is a very large challenge. My hope is that as there is more fusing of the designer and developer roles, this animosity will begin to subside. I like what WordPress is trying to do in terms of the design process, but you’re right – many of the typical things designers do can be relatively specific to a project and not have a universality that code-based projects can have.

    Some examples of open source design succeeding have been in the areas of font design and icon design. Specifically with typographic design, if the paths for each letterform are available plus legal to alter and disseminate, this could be an area where designers could create and publish and universal “thing”. I could and should add the grid system (as primitive as it may be) that I used to design the Iconic set so that others could work from the same foundation that I did. Perhaps some of the things designers can share are the tools they create for themselves to help foster the design process.

    One interesting thing that just dawned on me is that many aspects of design on the web have already been ‘open source’, just not advertised as such. When a UI designer comes up with a new system for organizing content in an efficient manner, it is immediately seen by the public and, in a sense, open for others to learn from.

  5. Agreed, thanks for this post. Most of your argument deserve more blg posts and buzz around the web. I am myself in my way to prepare some of my projects so they can be released, and yeah it takes time. In addition to this, you have to continue to do some business and so on.
    This topic is definitely one of my prefered one ;), I’ll focus on it when I could blog again.

  6. awesome post. It really gets you thinking in a sense that so many people are out to make a quick buck but I totally agree with you, without wordpress or firefox or alot of things for that matter these people trying to make a quick buck would never be able to.

    I made some blackberry themes for the heck of it a few weeks back and I was thinking of selling them but I decided not to because I realized I still have more to learn but also that I myself take use of free stuff because I dont always have the money to purchase.

    Again great article it was very thought provoking.

  7. Some ideas that I had while reading through the comments that designers could do would be create tutorials with example files that they could release under creative commons licenses. This way others can learn from them and benefit everyone.

    Another idea that’s a bit more difficult cause it’d break workflow would be to try out some of the alternative programs that are open source and see how well they could do with those programs. Programs like The Gimp and Inkscape are often touted as potential replacements for Photoshop and Illustrator, for those people on a very tight budget. If people could better see the potential of the free and open source alternatives, everyone could also benefit.

  8. I think this is a great post. I am a regular user of open source materials, and I’m working on a free extension for Magento right now actually.

    But one thing I’d like to point out is…its not as peachy as it seems to be.

    These companies (WordPress, jQuery, Mozilla etc.,) are just using a different monetizing model than what we are used to.

    They trade their code for market penetration (its easier when your product costs nothing) and future partnerships that of course, make them great amounts of money.

    Of course their work is brilliant, and I am forever grateful to all of them for open-sourcing it, but I just wanted to point out that there are still great amounts of money being earned from the way they are doing things.

  9. definitelty the first reson is ONE OF THE BEST – thismwas just another topic during mindless search that I would skip it 99.99 percent, but everything happens with a reason – and I had to commented on this. Great stuff guys

  10. After benefiting greatly from open source projects to transition to AS3, I decided that starting in 2010 I would provide the source for all my personal project and experiments. It’s not much of a contribution, but if that can help someone…

    Cheers,

    J.

  11. You know, I get so close to giving up on humanity completely and then I go and stumble across something like this post of yours and it forces me – against both my will and better judgment – to have a little more faith. (Perhaps I should have given up cynicism for Lent instead of Diet Coke.)

    Do you know about Sal Kahn & khanacademy.org? I’m fairly certain that together, the two of you might be able to fix the universe. Let me know if I can help.

  12. I absolutely agree with your post and wish we those of us on the net would spend more time looking for ways to help each other. You have certainly inspired me to do my part to help my fellow web based bread winners. I love your quote “For many, there is far more karma to be gained by offering up work for free than dollars to be gained by selling it.”

    Thanks for all you do for those of us that follow your work.

  13. Shameless self promotion but also relevant…

    I’ve just released my first project for the design / development community and I’m really happy about it! I studied print design at university and over the last year or so I’ve been teaching myself web design, I feel privileged to be able to make a living off something that was taught to me for free, from various blogs and resources across the internet, and it’s the least I can do to try and give something back.

    It’s a little web app called http://www.wpfill.me …Instead of being *another* lorem ipsum generator, it generates all the HTML mark up it’s possible for clients to create using WordPress’s Tiny MCE editor. Allowing for quick, full and accurate theme testing. I hope it’s of use to somebody!

Leave a Reply

Your email address will not be published. Required fields are marked *