Independent Developer Projects in the Workplace?
An anonymous reader asks: "My company wants to increase creativity and innovation, we our thinking of implementing a Google like policy of 20% of your time for independent projects but I can't find any details on how Google actually implements this. I am curious how they divvy up their time (1 day a week or 1 week a month)? How do you keep your real project from impacting it? At what point are the projects reviewed? Has anybody experienced other successful ways to stimulate creativity at their workplace?"
Who doesn't spend at least 20% of their workday doing things other than work?
I don't see any major corporations thinking this is a good investment. I don't see many PHB's going along with this idea, regardless of how successful Google is with it.
Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
And then when they see the results they usually are quite happy.
That is a great idea and I think you will get a lot of brownie points from your employees that care about such things. But make sure you enforce what they can work on. Some people might use it as an oppurtunity to start another business that competes with your own, which might not be what you had in mind.
I think that if a lot of businesses had this kind of open mind it would surely help open source software.
I worked at a company in Quebec awhile back that had a similar policy. Each Friday, you were allowed to work on your own projects. About once each month, we had a small group presentation where we told other people in our group what we'd been working on, and how it's progressing. When the group decided that the idea was mature enough to tell others about, we gave a small presentation to the managers. They talked it over for a bit, and decided if it would be pursued further, or if we should find something else to work on. I found it quite nice to be able to work on my own things. I never made anything great, but a number of people had small teams put under them to help them work on their idea :)
I store my recipes online (the way nature intended)
Most people I have worked with can't get what they're supposed to get done with 100% of their workday.
If you have management that will actually allow you to do this, then it's real simple. The project manager will take projected timelines for your required projects, and add 20%. If you work efficiently, you'll end up with 20% of your time free to work on independent projects.
As for managing your own time, it's easy: The required projects always come first. If you slack on your required projects, or you badly underestimate your timeline, then you don't get any time to work on your independent stuff. On the other hand, if you bust your ass on your required project and end up ahead of schedule, then you may get more than 20% of your time to work on independent projects.
After that, the only difficult thing is to convince upper management that it's worthwhile to let people work on independent projects rather than just piling on more requirements when it looks like people are ahead of schedule. Depending on the upper management, this may range from easy to completely impossible to do.
My company wants to increase creativity and innovation
Two words: Massage Bunnies
Nothing much. They just rub your shoulders after you've been sitting there pondering on the problem at hand (no pun) for long. It relaxes you.
It helps if they are wearing a tutu.
Free XBox, PS2
Let me get this straight... Your company wants to increase creativity and innovation yet can't even decide for itself how to "implement" independent thinking time?
And you go as far as asking slashdot how to copy google's infrastructure... how original and creative!
The idea being it was time devoted to thinking outside the box, such as trying new ways to do old things. Billable projects still came first, so this wasn't a hard and fast rule, and for the most part I just used it to account for my time spent on /. :)
A steaming cup of soykaf would be real wiz right now.
Our company framed this concept a little differently so that it was more palatable to management. Each of us was to spend 20% of our time in "Process Improvement" initiatives. (Sounds very dry and corporate)
In reality it was a nice juicy chance to make great changes that would help the company in operations. We measured the time by hours per day. One hour per eight hour day was to be used independently. At our weekly meetings, ideas were discussed and progress was measured.
The nice thing about this was that it was voluntary. As there was no fincial incentive or reward for creativity, the time itself became the incentive. You could do whatever you wanted for that hour be it surf slashdot or play everquest.
At NASA, I was on a time-card system, and specified how much time I put in for each of the projects I was doing. The total time had to come to 80 hours for the fortnight. Overtime was prohibited, so if you worked over the 80 hours, you had to take a negative amount of vacation. (The total amount of vacation left went up as a result.) Also, if you left an hour early one day, you left an hour late sometime in the fortnight and simply "borrowed" that hour of vacation until you paid it back.
Projects also had a certain number of hours alloted to them, so if one project was running behind and another ran ahead, it was common practice to "borrow" time.
I imagine Google does something similar, where you have pools of time and can transfer between pools in order to obtain the time you need to do your independent project.
Such mechanisms are very primitive, largely because businesses have almost always operated on a very formal, rigid structure. Person A does task B for C hours a day, rain or shine. With no need for fancier time-management tools, nothing much has been developed. Flexi-time is probably the best system out there for this kind of thing, right now.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
Arbitrarily picked. You work on your current task. You get tired, nervous, stressed. You make yourself a coffee and switch to your pet project. You calm down. once you calmed down, you go back to your current work. Repeat twice a day, for a hour.
45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
..until the company shut off the bulk of the outbound network ports so now I can't do much more than browse /. to get my mind on other things to relax about the work I am doing.
This is one of the reasons that Google allows its employees to do the 20% on your own projects. It stimulates the mind subcociously to seek answers to the problems you are working on the other 80% of the time. I used to do this at work, primary by working on projects (My web site, new software ideas, etc) on my home system while I was at work if I got stuck or fustrated. They have pretty much deneied my ability to do this shutting off most outboand and inbound ports below 1024 (according to a friend in security there ar only 5 below 1024 now), and all ports above 1024.
Result huge drop in net productivity, and work quality. No one has really noticed yet since I am sort of a workaholic overachiver anyway. The net drop still puts me way above the average around here (Ie. I actually still turn in projects at least on time if not a bit early, though nowhere near as early as I used too(Bugs the hell out of me) There are people here that have not delivered a project in as far as I can remember, the project usually gets killed before they finish it because it has been languishing for so long. Comparitively if I ever turn a project in I look pretty good.
The reason I never get that release of switching to something else to take my mind of the problem.
Power Corrupts,Absolute Power Corrupts Absolutely, leaving one person(group)in charge is absolutely corrupt.
A company I consult with has a policy like that in place, but instead of enforcing it by separating the work like you suggested they have a flexible Tutos based system which provides time tracking capabilities, so developers are free to divide that time as they please. They modified Tutos to display the ratio between the time spent on company-based and volunteer work in a graphical way on every page. The work done for the company is shown as a green bar and volunteer work is shown as a blue bar which turns red if the ratio goes beyond what is expected. It works well, the managers do not even have to keep a close eye on things because most people are disciplined enough if they are made aware of how they are spending their time like that. Of course they could always lie and pretend to be working on a company-based project, but without any significant results to show they can't do it for long. It's a cool system if you have moderately disciplined and self-motivated people who enjoy that kind of freedom and know to appreciate it.
Just as a company can't give "creative time" to their people and expect dramatic results.
Dramatic results are quite rare. Why must every business pursue "dramatic" results? Why not pursue something more realistic, like plain results?
When farmers plant wheat, they don't call a meeting to announce they expect their new crop to conduct The Brandenburg Concertos in Vienna. But they do have bread for sandwiches.
Business isn't willing to pay for products, innovation and careers, so we get brands, mortgage commercials and layoffs.
Mandating something like this is counterproductive. People either have the drive to do things on thier own via personal projects or they don't. If having employees who have the drive to learn more and improve themselves via projects is important (and I believe it is), you need to make the cultural changes to enable it. Many people are likely to be doing things on thier own time as it is. You should start there and then begin accomodating "work time" to do it once you see people have the personal commitment not to abuse the freedom. Here's a few suggestions to encourage personal projects to start with:
1.) Provide a personal project server w/ CVS access from both inside and outside the company. Personally speaking, traffic sucks where I am. If I can crank on something out durring rush hour, then pick it up over the weekend or at night as well as tinker at luchtime w/o copying files around it would be a godsend.
2.) Sponsor weekly project lunch where the company pays for pizza around noon and people are encouraged to discuss, demo, or work on personal projects. Show, tell, talk, encourage.
3.)Work the project concept into the job itself. When doing performance reviews, ask what people have done in the way of personal projects and/or professional development since the last time. Let it become a cultural expectation and include the concept that "we encourage and support personal projects around here" part interview process.
If you do put these things in place, don't forget to include some Slack as well every now and then. Good developers write software in part because they love to, but even they need some downtime. Replace that show & tell pizza lunch w/ tickets to an afternoon geekfest type movie or something sometime.
*** Sigs are a stupid waste of bandwidth.
There are some caveats, but that's the broad strokes. News.google.com, Orkut and a bunch of stuff on labs came from 20% time.
Chris
Co-Editor, Open Sources
Open Source Program Manager, Google, Inc.
I have a friend who's an Uber Tech Lead (I am not making that up) at Google and he told me how it works in practice:
:)
Everyone gets their 1 day a week to work on whatever they want, *however*, in reality at Google you're slammed working on your project like anywhere else. Therefore, on Friday, you really need to finish patching that security hole in Gmail, so you 'bank' your time. Once your project lets up a bit, you withdraw your time and take n days to work on your personal project.
It seems like this is a fairly practical system for software development, which goes in waves of heavy work and then light times of regrouping and gathering requirements. The 20% gets used during those times when you'd otherwise be waiting for the next big thing to hit.
The interesting thing about Google is that people work to gather other 20%ers onto your 20% project, thereby increasing your project and hopefully eventually presenting it to mgmt for work as a real project (Orkut and Gmail started this way). If you can't gather others onto your 20% project, you're encouraged to find another project...
Anyway, I wish I could implement this system at my work, but my PHBs think it's "wasted time" and given our quarter-to-quarter existence, spending that 20% on customer issues is probably a better use of time, at least for the short-term.
At my company, we provide the research time between projects. This allows people to focus on the new activity and to not affect deliverables. Typically people get a one to two weeks of open time between projects.
The vast majority of people can't handle undirected activities, so we enforce some controls over junior people. We require them to learn foundation skills that they don't already know that will benefit both them and the company. For employees who are anywhere from an intern to a software engineer, there is a stock list of topics you can choose from, including langauges, techniques, coding standards, testing, new tools, etc. Unusual topics can be studied with approval. At the end, these employees have a discussion with a technical lead about what was learned (note: not a grilling, but a "fill in the gaps" kind of discussion.) This last bit also forces them to practice their communication and organizational skills.
More senior people, who have demonstrated innate initiative and curiousity, can choose their own research topics, but they have to present their findings to the rest of the senior staff. Therefore there's some peer pressure to pick relevant topics.
A very important additional benefit is that everyone has their own book budget, the size of which is dependent on experience. You can spend the money on any technical book you want without having to get prior approval.