Ekinoderm
 

The Importance of the Side Project

Graphing Calculator: A Labor of Love

Graphing Calculator: A Labor of Love

For professional software developers and full-time computer science students, nearly all of your time 9-5 is spent working on programming or something similar, for someone else, to get paid money, to pay the rent/mortgage and send the kids to college some day.  I think a lot of software developers got into the industry because they really love to write software, despite all of the challenges, headaches, long sleepless nights and seemingly-intractable problems.  Because, really, there are few feelings in the world that compare to cracking a really tough problem that you’ve been banging your head against for ages.

I’ve sometimes joked that I would keep doing my job even if I wasn’t getting paid (although not to the person who signs my paycheck).  For the ultimate example of this, read the story of Apple’s Graphing Calculator application.  This gist is this: Ron Avitzur and Greg Robbins were former contractors at Apple in the early 90s, whose contracts were canceled and finished, respectively.  They made a cover story up that would allow them to keep their security badges, and continued to sneak into Apple for 6 months to complete the Graphing Calculator app (for no pay) that continues to ship with Mac OS to this day (edit: they stopped shipping this exact app with OS X and ship a similar app with OS X).

But at the same time, this irrational love of development can be worn down by all of the institutional BS that we have to deal with, and it can be rather, how you say, “soul-crushing.”  So, how to rekindle the love of coding and avoid the burnout that is the otherwise inevitable consequence of the software engineering process?  Start a side project!

Not a skunkworks project at your company like the Apple guys did, but your own project that you pursue in your spare time.  There are so many reasons to do this:

  • You get to learn new things in a risk-free environment. I would even go so far as to say the whole point of a side project is to try bleeding-edge new technologies and ideas without having to worry about staying late at work to fix all the things you broke with your “cleverness.”
  • It’s the best way to learn. A lot of people learn by reading books or websites, but you learn even more by coding your own side project from scratch.  You learn about the tools you’re using, as well as about all kinds of things related to your chosen project.
  • You get to do something totally different. Many software development companies are involved in writing custom software for very specific, niche markets.  Your side project can be in a totally different domain and greatly improve your breadth as a developer.
  • You get to have fun. We got into this stuff because it was cool and interesting.  Side projects can help remind us of that.
  • You can meet all kinds of interesting people on the interwebs. If you join or start an open-source project, you can meet all kinds of people online that you’d never meet otherwise.
  • You might get rich and famous. It could happen.  Although, see the important note below about intellectual property and your employer/university before you buy that yacht.

Some may compare the benefits of Google’s 20 percent time to the benefits of having your own side project.  I’m not too sure. Developers do get to do something totally different, but that’s about it.  20 percent time projects are restricted to using the Google-approved languages (C++, Java and Python), and they must be approved by management (edit: according to a commenter below, this may not be too strictly enforced).  And, of course, Google owns the work that you do in your 20 percent time.  I suppose you get paid for that time as part of your salary, but when you consider that Adsense for Content was a 20 percent time project and is now the source of a huge portion of Google’s revenue, well, an engineer’s salary looks pretty paltry in comparison.

I’m not really trying to rag on Google here, as their 20 percent time policy is way more progressive than most companies.  So here comes the big reason to be careful starting a side project:  your company/university might own your project. You need to carefully examine any contracts/papers you signed when you took your job and look for any restrictions on intellectual property ownership.  Oftentimes, such contracts will include a clause whose gist is basically:

We own all ideas you have during the time that you work here, even if you have them while you’re at home, or walking your dog or you dream them.

Now, I’m obviously not a lawyer, so nothing I write here should be construed as legal advice, but there are few ways of dealing with these kinds of restrictions:

Sides are good.

Sides are good.

  • Ignore them. If you’ve got a feel for your company and you don’t think that they will pursue any kind of legal action against you, get permission from your employer and go ahead with your project.  Many companies include these types of clauses as a sort of non-compete.  If your project is in a completely different area, your company may not care.  Talk to your employer about what you want to do.  Get it in writing.  Run with it.
  • Go open source. As far as most software companies are concerned, open-source is the opposite of profitability.  They may not want your code if it’s already been published as open-source, or if you’ve encumbered it with a license like the GPL.  Be very careful though, you really don’t want to get in a pissing match over this.
  • Get a new job. Seriously.  Honestly, I understand the reason why companies have these types of clauses in their contracts; I really do.  However, it just seems like having a policy of owning all side projects and aggressively seeking legal/financial remedies from violators has a very chilling effect on creativity and the professional development of programmers.  I think the real incentive this creates is for developers to hide their good ideas from their employer until they can leave and pursue them on their own.

Despite the troubled waters you could find yourself in if your side project is wildly successful, for most geeks, these side projects are just a hobby.  So relax, pick something completely crazy and run with it.

12 Responses to “The Importance of the Side Project”

  1. 1
    Geek thoughts » Blog Archive » Hello world (Rev. n)!:

    [...] The importance of side projects [...]

  2. 2
    Why Side Projects? - The Devver Blog:

    [...] just read a great post at Ekinoderm that nicely tied together two things Dan and I have been thinking and blogging about recently - the [...]

  3. 3
    Edward Keyes:

    Just a small correction about some of Google’s 20% time policies. Projects aren’t restricted to the big-3 languages: folks are definitely hacking on Ruby, Erlang, etc. as well. And manager approval is not normally required, so long as the project is at least potentially useful to Google, as opposed to a stamp-collecting hobby or something. Not to mention people volunteering their 20% time for various Google.org non-profit activities as well.

  4. 4
    IA Web, Startup and Technology News: Weekend Rebroadcast | September 6th | Internet Astronauts :: Bootstrap Startup Blog:

    [...] The Importance of the Side Project …this irrational love of development can be worn down by all of the institutional BS that we have to deal with, and it can be rather, how you say, “soul-crushing.” So, how to rekindle the love of coding and avoid the burnout that is the otherwise inevitable consequence of the software engineering process? Start a side project! [...]

  5. 5
    Adrian Tarau’s Blog » Blog Archive » What’s happening with IntelliJAF?:

    [...] Since my spare time is not what it used to be, between my family & my job I hardly find some time to work on my side project(s) - by the way here is a nice article about why to have a side project : http://www.ekinoderm.com/wordpress/2008/09/the-importance-of-the-side-project. [...]

  6. 6
    Garry:

    Just a note, if you’re employed in California, such a clause in an employment contract that states the employer owns everything the employee does on his/her own time and using his/her own equipment, is against the public policy of the state of California and is unenforceable.

    California Labor Code SECTION 2870: http://www.leginfo.ca.gov/cgi-bin/displaycode?section=lab&group=02001-03000&file=2870-2872

    I happen to work in Los Angeles, and I love it when this exclusion has to appear on every employment contract I’ve ever signed. :)

  7. 7
    What’s your side project? « I Built His Cage:

    [...] given my revelations in recent weeks. Then I stumbled upon a post by Nathan Anslie that lauds the importance of the side project. But at the same time, this irrational love of development can be worn down by all of the [...]

  8. 8
    Setting a Metric for Success « Ekinoderm:

    [...]   « The Importance of the Side Project Setting a Metric for [...]

  9. 9
    ken:

    “the Graphing Calculator app (for no pay) that continues to ship with Mac OS to this day.”

    Nit: Graphing Calculator (a.k.a. Pacific Tech’s “NuCalc”) was bundled with System 7 through Mac OS 9. Mac OS X 10.4 started bundling a different program, “Grapher” (a.k.a. Arizona Software’s “Curvus Pro X”).

    The former was the better program: more powerful, and easier to use. It’s too bad they don’t ship it today, but it had a phenomenal run, especially for an app that didn’t officially exist.

  10. 10
    How Much Does Experience Matter? | Ekinoderm:

    [...] a side project or join an open source [...]

  11. 11
    Going for the Easy Win | Ekinoderm:

    [...] to knock out a bunch of bugs quickly, which helps keep me from burning out (along with my side projects), and provides a positive start to the [...]

  12. 12
    Maria:

    There is no magic skill.

Leave a Reply

Search

Cool Jobs

Blogroll

Meta