Jul 22, 2008

Closed-Source and Incentives

One part about being a programmer is wanting to do cool things on the side. Maybe you get a fun idea for something and you want to whip up something to put that idea into practice.

Now think of yourself at your job as a programmer. One thing that's really nice on the job is having stuff to improve your productivity. So you think of something cool or some good idea to do that, you program it and then start using it. Maybe it's not the best right away, but you work with it a bit and iron out some of the flaws and it gets to be good.

Here comes the problem. Now you've got this software you've been using, and you want to use it on your own projects. But sometimes you'll be stopped by the deadly non-disclosure agreement (NDA). This is an agreement with your employer that any code you write while at work can only be used at work and you can't do anything you want with it.

I'm sure some of you have figured out that I am speaking from personal experience.

Anyway, here is my current dilemma: I don't want to come up with creative things at work, because I won't be able to use them the way I want to use them. If I do anything above-and-beyond the norm, what do I get from it? Maybe a raise, but the marginal utility of income is ever decreasing, so these raises really get to a point where I don't care anymore about raises, I just want to do cool shit. And be able to do what I want with the cool shit.
So then I end up doing the cool shit at home, where I can slap a big MIT or GPL on it and say, "this software is free!" But there's only a limited about of time at home. Each day there's probably two hours that I have free (after work, sleep, travel, eat, clean) to do what I want, and that needs to be split among other things besides coding: girlfriend, other friends, video games, guitar, reading, etc. So I don't really end up spending that much time doing what I want, rather what I have to do in order to pay bills and all that. Which I don't find to be a very satisfying career.

What do others think of this?

6 comments:

Guillaume Theoret said...

That's exactly why one of the "perks" now being included in some places include 4-day work weeks.

To help with gas consumption the american government is either going to soon or already has implemented tax cuts for companies that operate on 4-day work weeks. (Mostly to help reduce gas consumption.)

I've also read that some places are reporting little-to-no loss in actual productivity. (Though that might just be a spin the reporter is trying to add.) I guess it could make sense though. The most productive days are definitely the middle of the week and so many places do nothing on fridays (at my last job I got to the point of almost wondering why anyone bothered coming in on a friday) that it could very well be warranted. Give friday off and if people work seriously on a thursday because of it and come in more refreshed and do more work on a monday it all works out in the end...

I expect this 4-day work week thing might get somewhat popular.

IllegalCharacter said...

Where did you hear that? I would love to have 4 day work weeks. It'd be great for programmers...I wonder if they'd want you to work 10 hours a day instead of 8 though, that wouldn't be so cool.

So if the American government does it, I wonder if the Canadian one will follow suit soon. That would be really nice.

Guillaume Theoret said...

Well here are a couple of examples:

http://www.msnbc.msn.com/id/25518225/

http://www.37signals.com/svn/posts/893-workplace-experiments

IllegalCharacter said...

Nice. Yeah I think programming is still one job where people are still iffy about how to make the best use of time during the week. I personally find the 9-5 (or in my case 10-6) Monday to Friday schedule doesn't really correspond with my programming "in-the-zone" times.

Tony said...

At VMware we can usually get permission to create a new open source project and work on it on company time if it'll help improve either our products or our workflow.

Rob Britton said...

Nice, well that's one way to keep employees happy. I wonder how many companies do that kind of thing.