Slashdot Mirror


Software Development Practices At Google

prostoalex writes "It's widely known that Google allows its engineers to spend 20% of paid work time on personal projects (that are nevertheless considered property of the company). But how does the practice actually work? Joe Beda provides a helpful insight in his blog, pointing out other interesting software development practices at Google. The code database is open for everyone, the snippets and pieces are documented and one is encouraged to re-use existing code. The intranet is transparent to the max and the company accepts the fact that there's more than way to accomplish something, so a better method is always welcomed. Interesting to note that just like Hawaiian shirt days in Office Space, the 20% per projects are "actively encouraged" - Joe suspects his review ratings might slip if he doesn't have one soon."

21 of 246 comments (clear)

  1. Personal projects? by thundercatslair · · Score: 5, Interesting

    So you work on your personal project then google owns it? It seems like it would be more worthwhile to do them on your own time then.

    1. Re:Personal projects? by El+Pollo+Loco · · Score: 2, Interesting

      For real. Google's got the advantage here. Give employees 20% of their time to put on random personal projects. It makes them happy, and makes people want to work for Google. And by retaining ownership, Google will make all the profits off it. I'm not sure I would do it if I was at google.

      At least, I'd rather see them leave 20% ownership of the product to the employee. Then, the employee that created it/built it can still sell the rest to google, or to the highest bidder, etc.

    2. Re:Personal projects? by winkydink · · Score: 4, Interesting

      Unless you're extremely careful about documenting how & when you spent time on your personal project that you're working on in your own time, chances are Google owns that too (based on the IP agreements I've read in the Valley).

      --

      "I'd rather be a lightning rod than a seismometer." -Ken Kesey

    3. Re:Personal projects? by aldoman · · Score: 2, Interesting

      Google is not a 'relatively small corp'. It is worth more than both Ford and GM.

      I think people do forget that Google is not a little project from two students. It's a huge business. I think it says a lot about our culture and society that Google, essentially nothing more than an advanced information filter, is worth more than the manufacturers of the thing that changed transportation and human contact forever. It just really does show how much information is worth these days.

    4. Re:Personal projects? by cduffy · · Score: 3, Interesting

      Where do you work?

      I ask because I work at a startup, and it's *very* well understood how the company's financial wellbeing will contribute to our own. My stock options are such that ((current_share_price - strike_price) * (number_of_options)) is well over 50% the price of my house, and anything that can be done to boost that share price a bit more... well, the benefit is obvious.

      So, see, I don't mind giving good ideas to the company, because they boost that share price, and thus my potential future earnings. Not only that, but ignoring the company's benefit in exchange for focusing on my own cheats not only me and the company -- but the folks I've worked with over the last few years as well. So from where I stand, trying to keep good ideas for oneself is shortsighted (I can probably make more off these ideas w/ the company backing them) and selfish (sharing the ideas w/ the company means it's not just my own benefit but that of my cohorts as well).

      Google may not really be a startup anymore -- but from what I can gather, they do their very best to stay an engineering shop -- and a good chunk of the company is in the hands of their employees. If you want to see the worst when you look at them, you're welcome to do so -- but those of us who are a bit less cynical (and who have worked in environments closer to the ideal they strive for -- my last employer was also a startup engineering shop with a damn-near-elite engineering team [and is, incidentally, still in business]) can see a far less tainted side of things.

  2. My 20% time by Steven+Edwards · · Score: 5, Interesting

    If I was at google I would spend my time working on

    1. Voice to search features
    2. Image searching features for iPaqs and the like to take images and search google.
    3. A better AI for being able to understand end user questions.

    My father in law is a farmer and lost most of his crop last year because the local university took 6 weeks to get back with him and tell him what was eating his crops. If instead he has a iPaq hooked up to google with a camra and speach search software he could have said "Hey google what the hell is this yellow stuff in the picture eating my plants"

    --
    Why clone Unix when I can clone Windows instead. http://www.reactos.org
  3. freedom of expression, a positive initiative! by v3xt0r · · Score: 2, Interesting

    I personally think that it should be encouraged to continue to break the monotony of repetitive processes, and continue the learning/experimentation process, in between projects, if at all possible.

    The development process can never be fully mastered, as it continuosly changes with technology, time, as well as creativity.

    To hinder the development process to 'work with what we have now, and ignore what else is available', is obviously limiting to the potential growth of the company.

    --
    the only permanence in existence, is the impermanence of existence.
  4. Re:What if you only did 19%? by bonniot · · Score: 2, Interesting

    The idea of 20% is 1 day per week (1/5). Not sure if one specific day is recommended (friday?).

  5. Like this is new.. by Anonymous Coward · · Score: 3, Interesting
    Pre-Carly HP had similar requirements in the division I worked at. You were not just encouraged, you were expected to do experiment and perform pet projects and report the results.

    In fact, EVERY Place I have worked my 25 year professional career (3 companies) had this same policy. One place the number was 10%, the other two, including HP, it was 20%.

    Nothing to see here. Move along. Google is not innovating in this case.

  6. My employer funds my open src development... by tcopeland · · Score: 4, Interesting

    ...on this.

    It's already paid off - I've gotten some good input from outside folks, and our company can use it however because it's under a BSD license. Everybody wins!

  7. Re:You Do Want to Express Yourself, Don't You? by killjoe · · Score: 4, Interesting

    It's a joke but...

    Most companies start out this way. Friendly, open, honest, exciting. Then the company start growing and soon you no longer know the name of everybody who works there. Soon after that the management will turn over and they will bring in the CPAs. The CPAs will start talking about shareholder value and write vision statements. About six months to a year after that somebody will pull you aside and start talking about your flair.

    The insane thing is that all the smart people will leave as soon as the vision statement gets written. Those people can get jobs anywhere. The mediocre people will run the company from that point on but by now the company is so large it won't matter. Everything will take ten times longer, customer service will suffer, employees won't give a damn and yet the company will still somehow survive.

    I can't explain it but I have seen it a few times now.

    --
    evil is as evil does
  8. I wonder... by dghcasp · · Score: 3, Interesting
    I wonder if this would be as effective at the "Average" company...

    Google is well known for their Ph.D. hiring fetish; generally, people with Ph.D's have experience with doing directed research and projects. Would a company staffed with average programmers get the same benefit from having them "play?"

    1. Re:I wonder... by glinden · · Score: 3, Interesting

      There's some a good pile of business research that says that treating people well and giving them autonomy easily pays off in higher productivity at all companies, not just companies staffed with PhDs.

      If you're interested enough in the details to want to dive on in, "The Human Equation" is a light read with a good summary of the evidence.

    2. Re:I wonder... by happyduckworks · · Score: 2, Interesting

      Yes, I agree that having PhDs is a key to making this work. At Bell Labs Research, where almost everyone has a PhD, people are expected to self-direct their research to a large extent. The goal is that about 50% of their time should be spent on conference quality research/breakhrough ideas/long term groundwork stuff. They aren't getting the best use of their PhDs unless they do this. Google's 20% has never been very impressive to me.

  9. Bees by Viking+Coder · · Score: 4, Interesting

    This topic somewhat reminds me of this:

    http://www.infobear.com/howswdie.shtml

    Windows Made Me This Way

    How Software Companies Die

    Windows Sources, March 1995, p. 208

    By: Orson Scott Card

    You can domesticate programmers the way beekeepers tame bees.

    The environment that nutures creative programmers kills management and marketing types - and vice versa. Programming is the Great Game. It consumes you, body and soul. When you're caught up in it, nothing else matters. When you emerge into daylight, you might well discover that you're a hundred pounds overweight, your underwear is older than the average first grader, and judging from the number of pizza boxes lying around, it must be spring already. But you don't care, because your program runs, and the code is fast and clever and tight. You won. You're aware that some people think you're a nerd. So what? They're not players. They've never jousted with Windows or gone hand to hand with DOS. To them C++ is a decent grade, almost a B - not a language. They barely exist. Like soldiers or artists, you don't care about the opinions of civilians. You're building something intricate and fine. They'll never understand it.

    Beekeeping

    Here's the secret that every successful software company is based on: You can domesticate programmers the way beekeepers tame bees. You can't exactly communicate with them, but you can get them to swarm in one place and when they're not looking, you can carry off the honey. You keep these bees from stinging by paying them money. More money than they know what to do with. But that's less than you might think. You see, all these programmers keep hearing their fathers' voices in their heads saying "When are you going to join the real world?" All you have to pay them is enough money that they can answer (also in their heads) "Geez, Dad, I'm making more than you." On average, this is cheap. And you get them to stay in the hive by giving them other coders to swarm with. The only person whose praise matters is another programmer. Less-talented programmers will idolize them; evenly matched ones will challenge and goad one another; and if you want to get a good swarm, you make sure that you have at least one certified genius coder that they can all look up to, even if he glances at other people's code only long enough to sneer at it. He's a Player, thinks the junior programmer. He looked at my code. That is enough. If a software company provides such a hive, the coders will give up sleep, love, health, and clean laundry, while the company keeps the bulk of the money.

    Out Of Control

    Here's the problem that ends up killing company after company. All successful software companies had, as their dominant personality, a leader who nurtured programmers. But no company can keep such a leader forever. Either he cashes out, or he brings in management types who end up driving him out, or he changes and becomes a management type himself. One way or another, marketers get control. But...control of what? Instead of finding assembly lines of productive workers, they quickly discover that their product is produced by utterly unpredictable, uncooperative, disobedient, and worst of all, unattractive people who resist all attempts at management. Put them on a time clock, dress them in suits, and they become sullen and start sabotaging the product. Worst of all, you can sense that they are making fun of you with every word they say.

    Smoked Out

    The shock is greater for the coder, though. He suddenly finds that alien creatures control his life. Meetings, Schedules, Reports. And now someone demands that he PLAN all his programming and then stick to the plan, never improving, never tweaking, and never, never touching some other team's code. The lousy young programmer who once worshiped him is now his tyrannical boss, a position he got because he played golf with some sphincter i

    --
    Education is the silver bullet.
  10. Re:One Fine Day At Google by sisukapalli1 · · Score: 2, Interesting

    Funny? It is more like insightful... I was talking to a colleague (a part-time student researcher) about why he should be full time (he spends all the time at the university anyway), and his logic was that "I don't need the money now, and if I get more money, I wouldn't know what to do with it, so I may go crazy with wanting more and more money." Coming from an early twenties kid, is is surely quite thought provoking.

    I am sure there would be the opposites of this kid, who will always be bitter irrespective of how much they get.

    S

  11. Re:Todays management techniques by MrScience · · Score: 2, Interesting

    I don't know... the 40 hour work week was created as the maximum you could push a worker before defects started cropping up. I think this 20% thing would put Google more in line with the rest of the world, with the added benefit that the workers or their "spare" day are actually contributing to Google's bottom line and having increased morale.

    --

    You quitting proves that the karma kap worked. The most annoying of the whores shut up. --CmdrTaco

  12. I've been there by fireman+sam · · Score: 3, Interesting

    I worked in a place that allowed me to work on whatever I wanted (as long as it was related to what the company did). I could get whatever I needed like set top boxes, ipaqs, dvd players. What I developed, they were marketted.

    First thing I did was port Mozilla to Nano-X, then get it running on an iPAQ. It was fun. The company however closed the Australian office (R&D) and I had to work elsewhere.

    --
    it is only after a long journey that you know the strength of the horse.
  13. Re:Heard this idea from Fred Brooks at GDC by Anonymous Coward · · Score: 1, Interesting

    But does the 20% rule work in all situations, e.g., when you don't have the top-20% (or even top-50%) developers in your organization?

  14. Ah, the "Indepence" in ISV by wannabgeek · · Score: 3, Interesting

    From TFA
    The intranet in Google is super transparent. Teams are actively encouraged to share the most intimate details of their projects with the rest of the company. This happens through tech talks, design docs, lunch table conversations, etc.

    That is the advantage of being an ISV. In companies where you work under non-disclosure agreements with some other software provider, liberties are limited. (I know, that would not be the case if everyone in the world uses open-source, but that is not the case, yet). Yes, there will still be opportunities to share good ideas in the form of utilities and stuff, but there certainly are limits to what you can share with other teams without infringing on NDA.

    Hell, a few companies I know (in particular software contract-companies), have different access cards for different groups - preventing physical access. Sometimes it is imposed by client. But many times it's just the wisdom(!) of the PHBs who impose policies like, everything will be shared on a "need-to-know" basis!

    --
    I'm much more funny, interesting and insightful than the moderators think
  15. Progress since VA and Redhat? by heroine · · Score: 3, Interesting

    So the latest crop of CS graduates is now worshipping Google, Apple, and Pixar the same way the previous group worshipped VA Research, Redhat, and Cobalt.

    Given all the things these current hot companies do right and the previous hot companies did right, is anything about the current batch of hot companies a net improvement over the previous batch of hot companies or is this a different patch of the same ground being retreadded?

    Salaries are a fraction of what they were in 2000 but maybe software development processes have improved. Pensions and health benefits are gone but now the company intranet is transparent. Dot com parties are gone but there's 20% time for personal projects. Is this round of companies really better than the last iteration?