When I wrote about
things I'd like to have in a job, I didn't expect that one of the items on my list would draw the kind of reaction it did. A couple of comments seemed to think I'm off my rocker about personal project time:
Why should I pay for the time you spend doing your own projects? You are free to have 20% of the time to yourself if you can take 20% pay cut (from Adedeji O.)
Did I understand you correct? You want to work on something that has no relation to your employer and still get paid by him?
...
I don't know the exact rates in the US, but, these 20% will easily sum up to more than 10,000 USD per developer per year. Would YOU really pay that for nothing?
(from Christoph S.)
To be fair, Christoph did say that he's "not talking about time for personal and technical development and not about work related projects that MAY include benefit for your employer. I'm talking about working on 'my projects' and 'open source projects.'"
Here's what I had said that provoked the reactions:
I like the idea of Google's 20% time. I have other projects I'd like to work on, and I'd like the chance to do that on the job. One thing I'd like to see though, is that the 20% time is enforced: every Friday you're supposed to work on a project other than your current project. It'd be nice to know I'm not looked down upon by management as selfish because I chose to work on my project instead of theirs.
I wouldn't mind seeing something in writing about having a share of the profits it generates. I don't want to be working on this at home and have to worry about who owns the IP. And part of that should allow me to work on open source projects where the company won't retain any rights on the code I produce.
Calling it "my project," talking about who owns the intellectual property, and working on open source appear to be where I crossed the line. At Google, we see things like News and GMail coming from the personal time. What I stated could mean that a programmer for a bank's website that's done in ColdFusion could end up working on a GUI for Linux in C. It's rather hard to make the connection there.
First, I didn't mean to imply that the company would not own anything of any part of what I worked on. If I am willing to take a 20% cut in pay, then certainly I wouldn't expect them to own anything. What I was looking for is some equitable way to share what I create with my time. For example, I might take one day a week at work to build my new widget, but if I'm taking 2 days on the weekend to work on it, I ought to get more than a "thank you" if the project goes on to make hundreds of millions of dollars.
And, I was just saying there needs to be some way to allow me to work on open source software during that time. I don't know how the details would work, but there surely is an equitable way to deal with it. I certainly could have explained it better.
In any case,
I don't expect that 20% of my time spent away from my main project translates to the project taking 20% longer, or 20% less profit or revenue or productivity for my company. The degradation may be linear if we are data entry clerks - if all we are doing is typing instructions given to us from on high (
if the work is physical). But that's not typically what programming is about.
I'm not running a company though, and I've not done a study about such companies. If I were to do such a study, that would be my hypothesis, and what follows is what I would expect to see.
The
great divide between average a good programmers is well-known. Let us suppose that an average programmer is being paid sixty thousand dollars a year. Let us also suppose that you have a team of good programmers at the lower end of the "good" scale - those who are 10 times more productive than their average counterparts.
Are you paying them six hundred thousand dollars per year? I'd be surprised if anyone said yes to that question. You may pay them more than average programmers, but not an order of magnitude more. Even if they are only twice as productive as the average ones, you aren't likely to be paying them enough to worry about 20 percent of their time compared to what you would be paying less-competent people and getting out of them.
But what does that have to do with anything? Suppose I don't have good programmers - what then? If all of your programmers are average or worse, 20% time is not justified in their salaries the same way it is for a good programmer. So what benefits would we expect to see for companies who provide some amount of unrestricted free time?
First, I think the cases where a developer does something unrelated with his free time will be rare. But even if what I'm choosing to work on in my time is the polar opposite of the company's direction, does the company still benefit from it?
I think so. Here are some ideas:
-
The company can list projects it sponsors by paying developers to work on them. We've seen
examples of companies hiring developers to work on open source projects. This has been especially prevalent in the Ruby community lately, where Sun hired the JRuby guys to work on JRuby, Microsoft hired John Lam to work on IronRuby, and Engine Yard hired Rubinius developers. Relevance uses a lot of open source software in their solutions, so to give back, they have Open Source Fridays.
I would expect that allowing your developers that free time to work on anything would bring better developers your way. If I'm looking for a job and one company offers me unrestricted free time plus the same salary as you offer, who do you think will be my first choice?
-
If your work is generally not all that interesting, letting your programmers have a weekly break to work on things that are more interesting will help retain them and keep their minds fresh for the real work. As I've noted before, I almost quit the industry altogether when I got stuck in the boring-development cycle.
-
Working on open source software can make your existing developers better by interacting with other good developers and learning new things.
-
Your developers are learning things and keeping up with the newest technology, allowing you to react to changes in the market place quicker than your competitors. (You might not make iPhone applications at the moment, but if I spent a couple of Fridays digging into the iPhone SDK, you might already have an application ready to go.)
-
You might spin off new companies or departments based on products your employees are writing in their free time.
When I first read the reactions, I thought I did go overboard. But after some more consideration, I'm not so sure. Of course, we need a way to quantify and test these hypotheses to be sure what type of a positive or negative impact such a thing has on companies. But, I think it's very safe to say that going to a four day work week does not automatically mean we've lost 20% in one way or another. In the best of cases, it could mean
gains in productivity if it allows you to attract better developers.
What do you think? I assume we can agree that a four day work week for thought workers would not necessarily translate into getting only 80% of the value they would normally output. I'm more interested in hearing what gains or drawbacks you can see in having employees take personal programming Fridays, or something like it.
For those who disagree with the idea entirely, what if we restrict it to open source projects the company utilizes in day-to-day work? What if we restrict it to projects the company can use as infrastructure or turn into products (as I understand Google's to work)? Would you feel better about it then?
Hey! Why don't you make your life easier and subscribe to the full post
or short blurb RSS feed? I'm so confident you'll love my smelly pasta plate
wisdom that I'm offering a no-strings-attached, lifetime money back guarantee!
Leave a comment
I think the whole idea is awesome. I also think it's a giant leap in the management thought process.
To those complaining about wasting 20% of a developer's salary. That can go both ways. Name one developer who works a strict 40 hrs a week. I'll gladly take my 20% after my first 40. kkthx :)
Also, if your company is looking for the brightest developers, a program like this is a huge bait. Anyone that I would consider a Good(tm) developer would jump on the chance to work on a variety of things, not just the same old daily stuff. Which is probably why google does it. Not only do they get the products that they develop, but they get the motivated developers who WANT to do it.
That sounds like a major plus for the company to me.
Posted by
Glitch
on Apr 02, 2008 at 06:26 PM UTC - 5 hrs
You know, I thought about that too - that we're not often getting compensated for overtime. So if we're working 50 hours a week, take 10 of that for our time and we're still going to work 40. =)
I'd really like to do a study though- to measure to what degree programs like that attract and retain top developers, and if indeed working 32 hours with those developers you attracted translates to a net productivity gain.
If only I had the resources and test subjects now. =) Maybe this is the Thesis I've been waiting on that I'm not going to do now... D'oh.
Of course, if it became industry standard the net effect will be negative, unless the overall talent pool increases because of it.
Posted by
Sammy Larbi
on Apr 02, 2008 at 07:03 PM UTC - 5 hrs
The other side of the coin is that allowing your developers time to work on different projects is likely to make them better, particularly so if their 20% project isn't directly related to the work that they're normally doing. So even if you're not currently trying to hire the 'best and brightest', it's still a good idea.
The other thing that seems to be missed is that Google's 20% time requires management approval, and from what I've read needs to be at least peripherally related to the Google's goals. Not exactly carte blanche to go slacking off at work.
Posted by Anthony
on Apr 02, 2008 at 07:45 PM UTC - 5 hrs
Hey you forgot to add Orkut, which is THE most popular Google's social networking site in India and Brazil.
Posted by
Tarun
on Apr 02, 2008 at 09:10 PM UTC - 5 hrs
It's pretty obvious, or it seems to me that it's obvious, that working on an open source project would improve one's skills.... unless you're already the mac daddy. But I didn't appreciate the degree of improvement until I started working on mxunit. For me, writing the eclipse plugin has improved my cf development substantially. The reason is that by writing the plugin, I was exposed to eclipse RCP, and eclipse RCP is an amazing example of object-oriented software. It was an eye opener and pays dividends continually.
I'm fairly certain that if I suggested your proposal to my upper management that you, sammy, would hear them laughing all the way down in texas.
Posted by marc
on Apr 03, 2008 at 07:35 AM UTC - 5 hrs
In a general sense, I agree that working 20% on "pet projects" is a good thing for developers, and also for employers in the long-term. I'm one of few developers who usually sticks to 40 hrs. (and rarely go over 45), so I'm lucky but also need to stay efficient to be productive.
At the same time, I think I'd burn out if I tried to only cram in as much pure programming into each 8-hr. day as possible. I take a 1 hour lunch to break up the day, spend the first half-hour of every day reading CF/tech blogs. I maybe spend 5% of my work week on blogs (though, I don't post enough blogs myself). My employer would be stupid (I hope he's not reading this ;-) to stifle this learning/keeping-up, as I do little techie-learning outside of the work week; that time's for me and my family.
Back the the point: I think it should be more about an *over-all 20%* for non-company-project work/learning - as opposed to 20% *per week*. I hope this is making sense...
1.) for example, one week I may have an average workload (some moderately important code releases due mid-week), and so my normal 5% for blogs and say...5% for teaching myself MXUnit might apply.
2.) week 2 might be super-busy (2 unforeseen server crashes, and major release of a new super-widget that's supposed to make our company $53 zillion per day), so 2% on blogs is all I need to keep from going crazy and also get my critical work done.
3.) and on week 3, all is well cuz we made $73 zillion each day from the super-widget, so... it should be "do-whatever-Aaron-wants" week (er, for at least 20-30% of the time ;-)
Posted by
Aaron Longnion
on Apr 03, 2008 at 08:24 AM UTC - 5 hrs
Ever since I have started taking time to do professional development while on the job my programming-fu has improved dramatically. My boss knows that letting me read the blogs and do "non-work related" R&D is an investment that is returned to the company in spades. And I am allowed to do so with his blessings. He knows that the more I am exposed to, the more tools, knowledge and experience I have to draw from when crafting a solution to a problem.
One of the programmers here is always asking me: "How do you know all this stuff?"
Posted by Gerald Guido
on Apr 03, 2008 at 08:37 AM UTC - 5 hrs
Leave a comment